References
-
Lua 5.4 Reference Manual, which is also the requirements document for this project.
-
"Lua Programming (4th Edition)", the official Lua tutorial. Although it is based on the Lua 5.3 version, it has little impact due to the not many changes of the 5.4 version.
-
Why is there no continue statement?, an explanation of why there is no continue statement in Lua.
-
《Rust Programming Language》, the official Rust tutorial.
-
Official Rust Documentation, mainly refer to the standard library part.
-
Designing a GC in Rust, introduces the design idea of implementing GC in Rust.
-
gc-crate, an implementation based on the above design ideas.
-
A Tour of Safe Tracing GC Designs in Rust , introducing a GC design implemented in Rust. I just remember one thing: implementing GC in Rust is hard.
-
Implementing a safe garbage collector in Rust, another project that uses Rust to implement GC.
-
When Zig is safer and faster than Rust, starting from Roc language using Zig instead of Rust to implement the GC part, to illustrate the use It is difficult to implement certain functions in unsafe Rust.
-
Luster, a Lua interpreter implemented in Rust, also uses GC instead of RC, but the project is not completed.
-
The Story of Tail Call Optimizations in Rust, a discussion of tail call support in the Rust language.
-
Lua bindings: lua, hlua or rlua?, there are three existing Lua crates on Reddit: lua, hlua and A simple comparison of rlua.
-
A Survey of Rust Embeddable Scripting Languages, for several that can be used in Rust A comparison of the usage of different scripting languages (including Lua).
-
Floating Point Arcade, an introduction to converting integer random numbers to floating point numbers.
-
《Lua设计与实现》, it feels like a source code reading note of Lua's official implementation. It directly talks about the details of the code implementation, and it is very difficult to read when you first get started.
-
《自己动手实现Lua》, which is very similar to this series of articles, also implements a Lua interpreter from scratch. But this book is based on the bytecode definition in the official implementation of Lua as the starting point. First implement the virtual machine to execute the bytecode, and then implement the compiler to generate the bytecode. And our series of articles is based on the Lua language manual, designing and implementing the compilation process, virtual machine, bytecode definition, etc.