- 自己動手實現Lua:虛擬機、編譯器和標準庫
- 張秀宏
- 2字
- 2019-01-03 15:00:02
前言
為什么編寫本書
Lua是一門強大、高效、輕量、可嵌入的腳本語言。Lua語言設計十分精巧,在一個很小的內核上可以支持函數式編程、面向對象編程、元編程等多種編程范式。以本書完稿時的最新版本Lua 5.3.4為例,全部代碼(包括Lua虛擬機、編譯器、標準庫等)僅有2萬多行,這其中還包括注釋和空行。
Lua語言大約于1993年誕生于巴西PUC-Rio大學,之后在游戲領域大放異彩,被很多游戲客戶端選為腳本語言,比如知名游戲《魔獸世界》《模擬城市4》《憤怒的小鳥》等。很多流行的游戲引擎也選擇Lua作為腳本語言,比如CryENGINE2、Cocos2d-x及Corona SDK等。另外,也有很多游戲服務端采用C/C++搭配Lua的開發模式。除了游戲領域,Lua語言在其他地方也有很多應用,例如被廣泛使用的NoSQL數據庫Redis就使用Lua作為腳本語言擴展其能力。
相信自己動手設計并實現一門編程語言是每個程序員都會有的一個夢想,目前國內也已經出版或引進了一些指導讀者自己實現編程語言的書籍。不過這些書籍要么只介紹了語言實現環節中的一小部分,無法縱觀全局;要么只討論某種大幅裁減后的簡化語言,離真正的工業語言還有一定距離。例如,我自己的《自己動手寫Java虛擬機》,只討論了Java虛擬機實現,沒有涉及Java編譯器和Java標準庫。
如上所述,之所以選擇Lua語言,就是因為它足夠小巧,并且有很好的流行度。麻雀雖小,五臟俱全,這使得我們可以在一本書的篇幅范圍內覆蓋虛擬機、編譯器、標準庫這三個方面的內容。希望讀者可以通過本書完整體驗一門編程語言的實現過程,為將來打造屬于自己的語言做好準備。這正是本書的與眾不同之處。
推薦閱讀
- Getting Started with Gulp(Second Edition)
- TypeScript入門與實戰
- 大學計算機應用基礎實踐教程
- INSTANT FreeMarker Starter
- Building a RESTful Web Service with Spring
- 程序員面試算法寶典
- Python 3網絡爬蟲實戰
- Blender 3D Incredible Machines
- C++編程兵書
- 軟件測試綜合技術
- 從零開始:UI圖標設計與制作(第3版)
- 軟件工程基礎與實訓教程
- OpenMP核心技術指南
- Get Your Hands Dirty on Clean Architecture
- Java多線程并發體系實戰(微課視頻版)