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