Lua Object-Oriented Programming
LOOP stands for Lua Object-Oriented Programming, and is a set of packages for supporting different models of object-oriented programming in the Lua language. In fact, Lua is not an object-oriented language nor it was intended to be, because one of the main goals of Lua is to remain simple and small. However, it provides facilities as syntactic sugar to partially support some sort of object-oriented programming style. Additionally, the extension mechanisms of Lua can be used to implement most of the traditional object-oriented concepts commonly available in other languages. This lack of a standard object-oriented model releases applications from the need to be bound to some peculiar object model and enables the use of models customized for particular needs, like simplicity, flexibility or performance.
The packages provided by LOOP are not intended to define a standard object-oriented model for the Lua language. Instead, the different models provided should be seen as examples of how to introduce more traditional object-oriented features into the language. Particularly, LOOP models are mainly concerned to dynamicity, although there is an attempt to keep them as simple and efficient as possible. Additionally, LOOP uses the fundamental Lua concepts like tables (objects) and meta-tables (classes), traditionally used to enable an object-oriented programming style, to provide a common ground for the interoperability of objects and classes from its different models.