- 自己動(dòng)手實(shí)現(xiàn)Lua:虛擬機(jī)、編譯器和標(biāo)準(zhǔn)庫(kù)
- 張秀宏
- 741字
- 2019-01-03 15:00:04
1.1 準(zhǔn)備開發(fā)環(huán)境
讀者跟隨本書編寫代碼所需的開發(fā)環(huán)境非常簡(jiǎn)單,只需要一臺(tái)安裝著現(xiàn)代操作系統(tǒng)(比如Windows、Linux、macOS等)的電腦,以及文本編輯器、Lua語(yǔ)言編譯器和Go語(yǔ)言編譯器。
1.1.1 操作系統(tǒng)
由于操作系統(tǒng)一般都自帶了簡(jiǎn)單的文本編輯器(比如Windows下的記事本),且Lua語(yǔ)言和Go語(yǔ)言也都是跨平臺(tái)的,所以讀者可以選擇自己喜歡的操作系統(tǒng)。不過(guò)由于筆者是使用MacBook筆記本編寫本書代碼和文字的,所以書中出現(xiàn)的命令和路徑等都是Unix形式。下面是一個(gè)例子。
$ ls /dev/*random /dev/random /dev/urandom
命令行以“$”開頭,后跟輸出結(jié)果;路徑分隔符是“/”。如果讀者使用Windows操作系統(tǒng)進(jìn)行編寫,需要對(duì)命令和路徑做出相應(yīng)的調(diào)整。另外,雖然任何文本編輯器都可以滿足我們的需要,但是最好選擇可以對(duì)Lua語(yǔ)言和Go語(yǔ)言進(jìn)行語(yǔ)法著色的編輯器,這里推薦使用Sublime Text。
1.1.2 安裝Lua
Lua雖然是解釋型語(yǔ)言,但實(shí)際上Lua解釋器會(huì)先把Lua腳本編譯成字節(jié)碼,然后在虛擬機(jī)中解釋執(zhí)行字節(jié)碼,這一點(diǎn)和Java語(yǔ)言很像。本書的第一部分(第2~13章)主要圍繞Lua字節(jié)碼的解釋執(zhí)行展開討論,并初步實(shí)現(xiàn)我們自己的Lua虛擬機(jī)。在這一部分,我們需要通過(guò)官方Lua編譯器來(lái)將Lua腳本編譯成字節(jié)碼,因此需要安裝Lua。在本書的第二部分(第14~17章),我們將實(shí)現(xiàn)自己的Lua編譯器。
Lua的安裝比較簡(jiǎn)單,讀者可以從http://www.lua.org/download.html下載最新版(本書編寫時(shí),Lua的最新版本是5.3.4)源代碼自行編譯,或者直接下載已經(jīng)編譯好的發(fā)行版。安裝完畢后,在命令行里執(zhí)行l(wèi)uac -v命令,如果看到類似下面的輸出,就表示安裝成功了。
$ luac -v Lua 5.3.4 Copyright (C) 1994-2017 Lua.org, PUC-Rio
1.1.3 安裝Go
本書將帶領(lǐng)讀者使用Go語(yǔ)言編寫Lua虛擬機(jī)、Lua編譯器以及Lua標(biāo)準(zhǔn)庫(kù),因此需要安裝Go。Go的安裝也比較簡(jiǎn)單,讀者可以從https://golang.google.cn/dl/下載最新版(本書編寫時(shí),Go的最新版本是1.10.2)安裝包進(jìn)行安裝。安裝完畢后,在命令行里執(zhí)行g(shù)o version命令,如果看到類似下面的輸出,就表示安裝成功了。
$ go version go version go1.10.2 darwin/amd64
- Visual Basic程序開發(fā)(學(xué)習(xí)筆記)
- 青少年美育趣味課堂:XMind思維導(dǎo)圖制作
- Java程序設(shè)計(jì)
- 用戶體驗(yàn)增長(zhǎng):數(shù)字化·智能化·綠色化
- Node.js全程實(shí)例
- Python之光:Python編程入門與實(shí)戰(zhàn)
- Java系統(tǒng)化項(xiàng)目開發(fā)教程
- 智能手機(jī)故障檢測(cè)與維修從入門到精通
- Fastdata Processing with Spark
- WebStorm Essentials
- Get Your Hands Dirty on Clean Architecture
- PHP+MySQL Web應(yīng)用開發(fā)教程
- Learning Google Apps Script
- Learning Azure DocumentDB
- Fast Data Processing with Spark 2(Third Edition)