Picoc C語言解釋器簡介,及STM32平台移植工程


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

STM32F10x_CLI_Picoc - v2.1.rar (461.39 KB, 下載次數: 797 )
 
 
原文鏈接:https://bbs.elecfans.com/jishu_419346_1_1.html


免責聲明!

本站轉載的文章為個人學習借鑒使用,本站對版權不負任何法律責任。如果侵犯了您的隱私權益,請聯系本站郵箱yoyou2525@163.com刪除。



 
粵ICP備18138465號   © 2018-2025 CODEPRJ.COM