author: Kevin Lynx email: zmhn320#163.com date: 3.6.2009
(相信我,這一節全是廢話。)
我不是標題黨,但是有必要解釋下這個標題。綜合來說我就是想與你分享我所學到的。
我會將我實現的這個簡單的腳本語言的實現細節展示給你。它將涵蓋:詞法分析、語法分析
、符號表管理、語法樹解釋執行、插件管理等內容。
我并不擅長傳授編譯原理知識。我沒有聽過編譯原理課,所以我也不會編譯原理(也許
即使我聽了也不會:D)。所以對于這方面的能手而言,我口中的‘DFA‘可能會貽笑大方。
顯然,CPPBLOG上有編譯原理上的大牛。如果你想學習更深入的知識,可以去請教他們。
vczh(http://www.shnenglu.com/vczh/) 看起來是我所說的這個人。在致謝名單里我將真誠地
寫上他的名字。他的’手把手xxx腳本‘系列多多少少還是給了我一些有用的信息。
其次是FOX,在詞法分析的DFA和NFA那里我請教了他一些問題。雖然我現在又忘了。如
你們所知,理論和實現之間總會隔著鴻溝。
推薦《編譯原理與實踐》(<Compiler Construction:Principles and Practice>
Kenneth C. Louden)這本書。在你將來閱讀我的腳本語言的實現代碼時,你會發現有很一些地
方同這本書里的TINY語言實現代碼有相似之處。建議你閱讀TINY的代碼。
感謝VIM、GCC、GDB、MingW,我用這些軟件在工作之余寫出了這個東西的幾千行C代碼。
很明顯我是個開源文化的愛好者。但是我不會告訴你unix有多么多么好,因為我也是個初學
者,我還不懂unix。開源在我看來更是一種分享知識的精神。讓這種精神如同GPL一樣病毒
式地傳染下去。
還有版權問題。但也許它不是個問題。我不會添加任何版權信息。我允許你任意傳播、
改動我所散播的東西,但是唯一的基本條件是:保留作者的信息---不要告訴別人,這東西
是你做的。
在所有的文章發布后,我都可能會再次修改。也許通過RSS或者日志日期之類你可以獲
得修改提醒。