Study - 從無到有開發 C 編譯器 - 1
隨手筆記, 按照閱讀順序
Hackpad
github: amacc
手把手教你構建 C 語言編譯器
---
C4 : C in 4 functions
說明
github
看到 C4 決定先在 mac 試試 :
$ clang -g -m32 c4.c -o c4
$ ./c4 hello.c
hello, world
exit(0) cycle = 9
真的可行.
回頭再看 手把手
--
github c-interpreter
clang -g -m32 xc-tutor.c -o xc-tutor
$ ./xc-tutor hello.c
===
第二章 : 虛擬器
製作一個 虛擬器 來計算 10+20
1. 主程式
|
2. 指令 :
(1) IMM <num> : 將 <num> 放到 ax 暫存器
(2) PUSH : 將 ax 值 放到 stack
(3) ADD : stack 值 + 目前 ax 暫存器值
...
看到這就想用 C++ 寫 virtual machine...
跳去讀 C++
===
Issue 1:
Mac : 升級了 mac 到 pre-release 的 16.0 .. 世界變了...
$ uname -a
Darwin neojous-MacBook-Pro.local 16.0.0 Darwin Kernel Version 16.0.0: Fri Aug 12 19:00:53 PDT 2016; root:xnu-3789.1.28~1/RELEASE_X86_64 x86_64
xcrun: error: invalid active developer path
(/Library/Developer/CommandLineTools), missing xcrun at:
/Library/Developer/CommandLineTools/usr/bin/xcrun
Solution:
xcode-select --install
===
Issue 2:
用 一般的 arm gcc , 找不到 memory.h,
Solution :
還是來裝 gcc linaro
./configure
make
make install
留言
張貼留言