# Introduction

**Lua** is multi-paradigm programing language that's very lightweight and was designed for embedded use in applications. It's cross-platform because Lua has a simple C API to embed it into applications and its interpreter of compiled bytecode is written in ANSI C.

It was designed for extending software applications to meet the demands for customization at the time. Domain-specific and more complicated features **weren't** included, but it provided basic of most procedural programming languages and it was built with mechanisms for extending the language.

It supports procedural programming, oop and functional programming, as well as data-driven programming and data description.

## Features

*   **Portable and super lightweight**

    Lua package is really small. You can run Lua code on every platform, Windows, macOS, and Linux.
*   **Dynamic datatypes**

    The dynamic data type accepts data from and sends data to the following data types, where the scalar data type is a Boolean value or a floating-point number.
*   **Extensible**

    Extensible programming language consists of a base language with elementary computing facilities and also the meta-language, with a capability of modifying base language.
*   **Efficient**

    If language works faster, it's more efficient.
*   **Suitable for using it as an embedded language**

    It means that Lua is written in C, it's the extension to the C language with additional header files.
