Aspect Oriented Programming in The Lua Language
AspectLua is a Lua extension that allows the declaration of aspects. It is based upon a meta- object protocol, LuaMOP, that unifies the introspective and reflective mechanisms provided by Lua. Aspects are defined in isolation using an Aspect class provided by AspectLua and then they are weaved through LuaMOP. The difference of AspectLua to other aspect-oriented languages is that it combines a range of powerful features.
Due to several limitations, a new version of AspectLua, RE-AspectLua, was developed. RE-AspectLua aims to improve reuse and heterogeneity of aspects in Lua.