Lua Tutorial

lua

Lua is a lightweight, compact scripting language written in standard C and open-sourced. Its design purpose is to be embedded in applications, providing flexible extension and customization capabilities for applications.

Lua was developed in 1993 by a research group at the Pontifical Catholic University of Rio de Janeiro in Brazil. The group members include: Roberto Ierusalimschy, Waldemar Celes, and Luiz Henrique de Figueiredo.


Design Purpose

Its design purpose is to be embedded in applications, providing flexible extension and customization capabilities for applications.


Lua Features

  • Lightweight: It is written in standard C and open-sourced. After compilation, it is only about 100K, making it very easy to embed into other programs.
  • Extensible: Lua provides very easy-to-use extension interfaces and mechanisms: these features are provided by the host language (usually C or C++), and Lua can use them as if they were built-in features.
  • Other Features:
    • Supports procedure-oriented programming and functional programming;
    • Automatic memory management; provides only one general-purpose table type, which can be used to implement arrays, hash tables, sets, and objects;
    • Built-in pattern matching in the language; closures; functions can also be treated as values; supports multithreading (coroutines, not threads supported by the operating system);
    • Through closures and tables, key mechanisms needed for object-oriented programming can be easily supported, such as data abstraction, virtual functions, inheritance, and overloading.

Lua Application Scenarios

  • Game development
  • Standalone application scripts
  • Web application scripts
  • Extensions and database plugins such as: MySQL Proxy and MySQL WorkBench
  • Security systems, such as intrusion detection systems

First Lua Program

The file extension of Lua code files is.lua。

Next, we use Lua to output "Hello World!"

Example (Lua 5.3)

print("Hello World!")

Run Example »

After running, Hello, world! will be displayed on the screen.

Other Extensions