1.1 准备开发环境
读者跟随本书编写代码所需的开发环境非常简单,只需要一台安装着现代操作系统(比如Windows、Linux、macOS等)的电脑,以及文本编辑器、Lua语言编译器和Go语言编译器。
1.1.1 操作系统
由于操作系统一般都自带了简单的文本编辑器(比如Windows下的记事本),且Lua语言和Go语言也都是跨平台的,所以读者可以选择自己喜欢的操作系统。不过由于笔者是使用MacBook笔记本编写本书代码和文字的,所以书中出现的命令和路径等都是Unix形式。下面是一个例子。
$ ls /dev/*random /dev/random /dev/urandom
命令行以“$”开头,后跟输出结果;路径分隔符是“/”。如果读者使用Windows操作系统进行编写,需要对命令和路径做出相应的调整。另外,虽然任何文本编辑器都可以满足我们的需要,但是最好选择可以对Lua语言和Go语言进行语法着色的编辑器,这里推荐使用Sublime Text。
1.1.2 安装Lua
Lua虽然是解释型语言,但实际上Lua解释器会先把Lua脚本编译成字节码,然后在虚拟机中解释执行字节码,这一点和Java语言很像。本书的第一部分(第2~13章)主要围绕Lua字节码的解释执行展开讨论,并初步实现我们自己的Lua虚拟机。在这一部分,我们需要通过官方Lua编译器来将Lua脚本编译成字节码,因此需要安装Lua。在本书的第二部分(第14~17章),我们将实现自己的Lua编译器。
Lua的安装比较简单,读者可以从http://www.lua.org/download.html下载最新版(本书编写时,Lua的最新版本是5.3.4)源代码自行编译,或者直接下载已经编译好的发行版。安装完毕后,在命令行里执行luac -v命令,如果看到类似下面的输出,就表示安装成功了。
$ luac -v Lua 5.3.4 Copyright (C) 1994-2017 Lua.org, PUC-Rio
1.1.3 安装Go
本书将带领读者使用Go语言编写Lua虚拟机、Lua编译器以及Lua标准库,因此需要安装Go。Go的安装也比较简单,读者可以从https://golang.google.cn/dl/下载最新版(本书编写时,Go的最新版本是1.10.2)安装包进行安装。安装完毕后,在命令行里执行go version命令,如果看到类似下面的输出,就表示安装成功了。
$ go version go version go1.10.2 darwin/amd64