腳本技術(shù)
描述跟腳本相關(guān)的各種技術(shù)
手把手教你寫腳本引擎(五)——簡單的高級語言(3,符號表)
摘要: 符號表的結(jié)構(gòu)的復(fù)雜度跟語言的語義規(guī)則的復(fù)雜度有關(guān)。對于C#來說,每一個符號都附帶了一大堆信息,譬如位置啦,所在的namespace啦,類型啦什么的。對于JavaScript來說,符號表幾乎是不需要的,因為東西都動態(tài)了,編譯時幾乎不檢查內(nèi)容。語義分析的輸出是符號表,代碼生成的輸入是符號表和語法樹。因此語法樹除了放語法相關(guān)的內(nèi)容,語義相關(guān)的內(nèi)容最好放到符號表里面(譬如說表達式的類型啦,語句的scope結(jié)果啦)。
閱讀全文
posted @
2009-05-10 18:48 陳梓瀚(vczh) 閱讀(7264) |
評論 (1) 編輯
手把手教你寫腳本引擎 PPT與Demo(一)
摘要:
華南理工大學(xué)微軟俱樂部程序設(shè)計語言特別興趣小組——手把手教你寫腳本引擎系列(一)
陳梓瀚
PPT內(nèi)容:
1、簡單指令集的設(shè)計方法(支持分支、循環(huán)、函數(shù)、遞歸)。
2、編譯控制流程(分支和循環(huán))的一般模式。
3、函數(shù)調(diào)用的詳細(xì)過程。
4、5個示例程序。
Demo內(nèi)容:
PPT中5個示例程序的運行過程(動畫),左邊是單步,右邊是堆棧內(nèi)容。
含下載,內(nèi)詳。
閱讀全文
posted @
2009-03-28 01:43 陳梓瀚(vczh) 閱讀(10640) |
評論 (11) 編輯
Kernel FP的圖形Demo實現(xiàn)!
摘要: 其實有了一整套的Kernel FP API之后,只需要插入幾個外部函數(shù)就可以讓Kernel FP繪圖了。現(xiàn)在我們看一看這個Demo的樣子。
閱讀全文
posted @
2008-12-29 10:41 陳梓瀚(vczh) 閱讀(2723) |
評論 (0) 編輯
Kernel FP編譯器工具實現(xiàn)
摘要: 這次終于實現(xiàn)了兩個exe,一個是編譯器,一個是提供控制臺API的虛擬機。等提供GUI的虛擬機出來之后就開放出來(內(nèi)有圖和代碼)。
閱讀全文
posted @
2008-12-26 08:07 陳梓瀚(vczh) 閱讀(2056) |
評論 (5) 編輯
Kernel FP 編譯器MakeFile開發(fā)完成
摘要: Kernel FP的MakeFile可以指定輸出文件、報告文件以及代碼文件,并且可以繼承其他的MakeFile。MakeFile的格式和分析器代碼如下:
閱讀全文
posted @
2008-12-24 05:20 陳梓瀚(vczh) 閱讀(1793) |
評論 (1) 編輯
Kernep FP實現(xiàn)虛擬機的序列化與反序列化
摘要: 由于Kernel FP的編譯結(jié)果是獨立的,執(zhí)行的時候不需要源代碼的符號的參與,因此可以將編譯結(jié)果進行序列化與反序列化。
閱讀全文
posted @
2008-12-23 00:50 陳梓瀚(vczh) 閱讀(1575) |
評論 (0) 編輯
Kernel FP添加反射API
摘要: 為了讓宿主程序可以更加清楚一份Kernel FP代碼的內(nèi)容,我今天為Kernel FP添加了反射的API。
閱讀全文
posted @
2008-12-20 06:10 陳梓瀚(vczh) 閱讀(1422) |
評論 (0) 編輯
使用Kernel FP的do-end語法糖添加自己的異常處理系統(tǒng)
摘要: 有的時候,IO的異常處理由于需要一個IOEnv類型的參數(shù)而顯得非常麻煩。這個時候我們可以定制自己的一套異常處理系統(tǒng),從而讓程序變得清晰起來。自己的異常處理系統(tǒng)不同于IO,是沒有副作用的函數(shù)集合。下面讓我們看一看如何使用自定義的異常處理系統(tǒng)來分析一個四則運算表達式。
閱讀全文
posted @
2008-12-18 21:23 陳梓瀚(vczh) 閱讀(1453) |
評論 (0) 編輯
使用Kernel FP API實現(xiàn)一個運行Kernel FP代碼的控制臺程序
摘要: 說到底Kernel FP是一個腳本引擎,所以是需要API的。接下來的代碼用來加載一些Kernel FP代碼文件,并執(zhí)行main函數(shù)。
閱讀全文
posted @
2008-12-17 19:15 陳梓瀚(vczh) 閱讀(1640) |
評論 (1) 編輯
在純函數(shù)式語言內(nèi)實現(xiàn)有關(guān)IO的循環(huán)
摘要: 我們知道,循環(huán)本身是沒有返回值的。所以在純函數(shù)式語言下,跟IO有關(guān)的循環(huán)才有足夠的副作用來產(chǎn)生價值。于是利用IO Monad,我們就可以實現(xiàn)循環(huán)了。循環(huán)是一個函數(shù):
閱讀全文
posted @
2008-12-15 07:56 陳梓瀚(vczh) 閱讀(2162) |
評論 (2) 編輯
Kernel FP的do-end IO語法糖實現(xiàn)!
摘要: 前面說過,需要一個語法糖來組織IO,并且在其中的一步產(chǎn)生錯誤的時候立刻返回錯誤。現(xiàn)在我們看一段代碼:
閱讀全文
posted @
2008-12-15 06:22 陳梓瀚(vczh) 閱讀(1480) |
評論 (0) 編輯
Kernel FP 的四則運算式子分析程序
摘要: 為了測試Kernel FP的健壯性以及進行一些bug的排除,一個四則運算式子的分析程序理所當(dāng)然地就被實現(xiàn)了。代碼如下:
閱讀全文
posted @
2008-12-13 07:13 陳梓瀚(vczh) 閱讀(3353) |
評論 (2) 編輯
Full 腳本技術(shù) Archive