Class Models for The Lua Language
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 support an 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 model avoids the use of a peculiar model instead of models customized for particular needs, like simplicity, flexibility or performance.
The models provided by LOOP are not intended to define a standard for the Lua language. Instead, they are examples of the introduction of 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 of its different models.