Lua2.4 程序分析 parser.c

這個版本的語法分析器是由工具 yacc 生成的,其相應的源文件爲 lua.stx。這個不是我關注的重點,略過。
這一節這樣結束有點兒寒酸,閒話幾句。
yacc 的歷史就不說了,yacc 類工具出現,使得程序語言分析相關的工做複雜度下降了不少。這也是以前面曾經提到過的,當時 UNIX 世界裏出現了很多小語言的緣由。
在語法沒有最終肯定下來以前,用 yacc 這類工具能夠快速的驗證本身的想法,做出一個程序原型出來。等語法穩定了,能夠手寫語法分析部分,這是爲了提升程序的定製性和程序運行的效率,好比 Lua 就是這麼作的。這也不排除 Lua 的語法比較精練,因爲其語法設計的小巧而正交,在必定程序上下降了手寫分析器的難度。手寫分析器的主要緣由仍是爲了效率,不然,對於接受過編譯原理訓練的人來講寫個分析器是沒有多大難度的。在不是特別要求效率和健壯性的狀況下,這基本至關於編譯原理課的一個大做業。

再說點題外話,語法只是爲了給人看的,腳本出現的緣由就是爲了下降編程的門檻。若是一個語言的語法作得像是 Lisp 那樣,直接就是抽象語法樹的樣式,根本就省了解析這一步了,上來就能夠執行則省了不少事兒了。不過,顯然,像這種抽象語法樹樣式的程序並非人人都喜歡和能輕易接受的。

閒話再也不多說,翻篇兒了。
----------------------------------------
到目前爲止的問題:
> do_dump 方法裏調的那幾個方法又分別是幹什麼的?
----------------------------------------編程

相關文章
相關標籤/搜索