lua本身作為非常優秀的語言,在遊戲和專案開發中占有舉足輕重的角色。因此,很多朋友都希望自己可以看看lua是怎麼設計的。網上關於lua的教程很多,不過我還是建議大家可以找一找低階版本的lua版本進行閱讀。只要掌握一點lex、bison和vm的知識,lua本身並不複雜。
1、選擇哪個版本?
我個人建議選擇lua-1.1.tar.gz版本,這個版本中少有的包含了詞法分析檔案lua.lex和語法分析檔案lua.stx。
2、怎麼編譯?
直接./domake就可以了,少量的編譯錯誤大家可以自己解決。
3、主要**怎麼分布?
專案主要包含了bin/clients/doc/include/lib/src/test等目錄。其中bin、lib用來儲存生成的檔案。doc為文件目錄。include為頭檔案目錄。clients和src為主要的**目錄,clients中包含了lib檔案、lua入口檔案,而src包含了主要的編譯檔案、虛擬機器執行檔案等等。test目錄包含了很多lua**,可以用來進行測試。
4、lua.lex & lua.stx做什麼用?
這兩個檔案主要用來生成對應的c檔案,做字元解析和語法解析使用。其中lua.lex生成的c檔案為lex.c,lua.stx生成的檔案為y.tab.c。
5、虛擬機器執行在那個檔案?
虛擬機器執行主要在lua_execute這個函式,在opcode.c檔案中。
6、lua執行的基本流程是什麼?
整個lua解析的流程不複雜,從main->lua_dofile->lua_parse->lua_execute,基本流程就是這樣的。
7、如果需要從c呼叫lua怎麼辦?
lua-1.1.tar.gz其實提供了lua_call這個函式來實現這一目標,但是好像沒有地方用到這個函式。
8、想學習lua呼叫c怎麼辦?
直接學習clients/lib/mathlib.c等函式,活學活用。
9、其他要注意什麼?
利用lua.lex和lua.stx掌握lua的基本規則,配合lua_execute學習,都可以學得會。大家不用有任何心理負擔。
隨想錄(zynq學習)
最近學習zynq較多,這裡做乙個筆記,供日後參考使用。zynq是xilinx公司出的一款soc,上面包含有雙核arm9 fpga,arm9可以執行裸機程式或者是linux,fpga可以做一些定製化的硬體開發,比如說10個以上的串列埠等等。1 開發板 目前學習zynq使用zedboard較多,上可以購...
軟體隨想錄
最近閱讀了由阮一峰翻譯的,有程式設計師部落酋長之稱的 joel 撰寫的 軟體隨想錄 精華摘抄如下 就如同所有行業最好的人才一樣,那些優秀的程式設計師是不會出現在招聘市場的。通常優秀的程式設計師在整個職業生涯中,可能會有4次求職。實習生制度創造了輸送優秀人才的管道,但是這個管道比較長,而且一路上損耗很...
專案隨想錄
發現自己不怎麼會起題目了。中午回去還沒走到寢室,就接到劉老師的 說要把程式調通,於是中午吃完飯立馬跑回去,把顯示問題解決了。其實那個無效數字問題是因為在hql語句中使用了cast pw as integer 將字串轉成integer型,可是資料庫中的內容程式設計了字母加數字,自然會轉換失敗了,唉,真...