关于 “Lua 程序设计”

我们将在这门课程中介绍 Lua 编程语言, 重点是 Lua 的设计理念 (简洁、灵活、可嵌入) 和一些基本的编程概念 (闭包, 表和元表等), 而不是 Lua 的具体实现.

关于 Lua 的具体实现

Lua 有两种常用实现:

  1. 官方的 PUC-Rio Lua (即参考实现), 它基于 C 语言;
  2. 第三方的 LuaJIT, 它基于 LLVM. 这个实现更复杂, 适合对性能要求较高的项目.

对于普通用户而言, 这两个实现的区别很小. 我们这门课主要使用官方实现.

教科书: Programming in Lua, 第四版.

前置知识

本课程默认读者已具备一些基本的编程知识: 变量, 程序控制结构, 函数, 递归, 文件和输入输出流, 等等.

由于学生此前都接触过 Python, 教师在教学过程中会不时引用 Python 程序示例, 来帮助学生更好地理解 Lua (以及 Python) 的运行机制.

大作业 (即 Final Project)

课程的最后会有一次大作业, 你可以使用 LPeg 编写解析器, 利用 Lua 元表实现一种新的科学计算类型, 或其它任何用到 Lua 的项目.

大作业的选题非常开放: 你只要用到了 Lua 即可. 实际操作中, 你其实可以使用任何语言 (如 Rust, C/C++ 甚至 Python) 来完成项目的核心功能, 将 Lua 作为用户接口即可.