隨想錄(lua原始碼學習)

2021-08-15 15:50:32 字數 1014 閱讀 1608

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型,可是資料庫中的內容程式設計了字母加數字,自然會轉換失敗了,唉,真...