- 自己動手實現(xiàn)Lua:虛擬機、編譯器和標(biāo)準(zhǔn)庫
- 張秀宏
- 576字
- 2019-01-03 15:00:05
1.2 準(zhǔn)備目錄結(jié)構(gòu)
如果讀者跟著本書一起編寫代碼,那么在每一章的最后,都會提供一份完整的源代碼,可以獨立編譯為可執(zhí)行程序。除第1章之外,每一章的代碼都以前一章代碼為基礎(chǔ),逐漸添加功能,最終實現(xiàn)一個完整的Lua解釋器。建議讀者跟隨本書的每一章,自己輸入代碼,循序漸進完成Lua解釋器的開發(fā)。當(dāng)然直接從GitHub上下載源代碼,只編寫自己感興趣的部分也是完全可以的。
作為開始,我們需要創(chuàng)建一個根目錄,然后在里面創(chuàng)建go和lua子目錄。其中g(shù)o目錄里存放每一章的Go語言源代碼,lua目錄里存放每一章的Lua語言示例和測試代碼。讀者可以在任何位置創(chuàng)建根目錄,在本書后面的內(nèi)容里,我們將使用“$LUAGO”來表示這個目錄,出現(xiàn)的路徑也都是相對于該目錄的相對路徑。$LUAGO的目錄結(jié)構(gòu)如下所示。
$LUAGO/ go/ ch01/src/ ch02/src/ ... lua/ ch01/ ch02/ ...
萬事開頭難。作為一本介紹編程語言實現(xiàn)的書,按照慣例,當(dāng)然也要從“Hello, World! ”程序開始。請讀者打開命令行窗口,執(zhí)行下面的命令。
$ cd $LUAGO/go/ $ mkdir -p ch01/src/luago $ export GOPATH=$PWD/ch01
上面的命令創(chuàng)建了本章的目錄結(jié)構(gòu),并且設(shè)置好了GOPATH環(huán)境變量(關(guān)于GOPATH的介紹,請參考https://golang.google.cn/doc/code.html)。請讀者在go/ch01/src/luago目錄下面創(chuàng)建main.go文件,現(xiàn)在完整的目錄結(jié)構(gòu)如下所示。
$LUAGO/ go/ch01/src/luago/main.go lua/
打開main.go文件,在里面輸入如下代碼。
package main func main() { println("Hello, World! ") }
在命令行里執(zhí)行下面的命令編譯“Hello, World! ”程序。
$ go install luago
命令執(zhí)行完畢,如果沒有看到任何輸出,那么就表示編譯成功了。go/ch01/bin目錄下會出現(xiàn)luago可執(zhí)行文件,直接運行就可以看到“Hello, World! ”輸出。
$ ./ch01/bin/luago Hello, World!
- 零基礎(chǔ)學(xué)Visual C++第3版
- 深入淺出Java虛擬機:JVM原理與實戰(zhàn)
- PaaS程序設(shè)計
- Mastering Concurrency in Go
- 華為HMS生態(tài)與應(yīng)用開發(fā)實戰(zhàn)
- Java 11 Cookbook
- 程序員修煉之道:通向務(wù)實的最高境界(第2版)
- 零基礎(chǔ)學(xué)單片機C語言程序設(shè)計
- SQL Server數(shù)據(jù)庫管理與開發(fā)兵書
- Visual Basic程序設(shè)計習(xí)題與上機實踐
- FPGA嵌入式項目開發(fā)實戰(zhàn)
- Apache Solr PHP Integration
- Clojure Web Development Essentials
- 軟件設(shè)計模式(Java版)
- Building a Media Center with Raspberry Pi