Picoc是google開源代碼項目中看到的一個項目,其初衷貌似是要做一個在小的嵌入設備上的C解釋器。它的核心代碼只有3500行左右,可讀性不錯,雖然沒有實現完整的ISO C標准,基本的C運行庫還是具備了。
picoc代碼上看,基本有如下幾塊:lex詞法解析,table一個基本數據結構(用於存放變量),是個字符串hash表,heap管理內存分配(包括了stack frame的實現), type做類型管理(基本型別和程序自定義的struct,typedef等),expression做表達式解析,variable變量管理分配釋放棧幀。
picoc的定位是一個解釋器,它的解析和代碼運行是在同一塊代碼塊里做
- PicoC是一個非常小的C解釋器的腳本。它最初是作為一個無人機的飛行系統板上的腳本語言。它也非常適合於其他機器人,嵌入式和非嵌入式應用。
- 核心的C源代碼是大約4500行代碼。它並不打算成為一個完整的ISO C實現的,但它擁有所有的必需品。在編譯時,只需要幾K的代碼空間也很不遺余力的數據空間。這意味着,在小型嵌入式設備,它可以很好地工作。這也是一個有趣的例子,如何創建一個非常小的語言實現,同時仍保持代碼的可讀性。
- picoc已經過測試的x86-32,x86-64的的PowerPC,ARM,以UltraSPARC,HP-PA和Blackfin處理器上,並很容易地移植到新的目標。
項目地址,有文檔和源碼:
GOOGLE https://code.google.com/p/picoc/
GitHub https://github.com/larryhe/tiny-c-interpreter和https://github.com/jpoirier/picoc
gitlab:https://gitlab.com/zsaleeba/picoc 這個是最新的
SVN 地址,貌似還有人在開發當中,但是只有 win32版本可以編譯過去,變化比較大...
# Non-members may check out a read-only working copy anonymously over HTTP.
svn checkout http://picoc.googlecode.com/svn/trunk/ picoc-read-only
