Programming Languages Research with emphasis on the Lua language

LabLua is a research lab at the Catholic University of Rio de Janeiro (PUC-Rio), affiliated with its Computer Science Department. It is dedicated to research on programming languages, with emphasis on the Lua language and reactive programming. It was founded on May 2004 by Prof. Roberto Ierusalimschy, the chief architect of the Lua language.

LabLua consists of people from a wide range of backgrounds, including PhD candidates, professors and alumni who are the developers and maintainers of projects that are used by the Lua community at large.

What is Lua?

Lua is a powerful, efficient, lightweight, embeddable scripting language. It supports procedural programming, object-oriented programming, functional programming, data-driven programming, and data description.

Lua has been used in many industrial applications (e.g., Adobe's Photoshop Lightroom), with an emphasis on embedded systems (e.g., the Ginga middleware for digital TV in Brazil) and games (e.g., World of Warcraft and Angry Birds). Several versions of Lua have been released and used in real applications since its creation in 1993.

What is Céu?

Céu provides "Structured Synchronous Reactive Programming", a safe and deterministic concurrency model with side effects. Reactive applications interact continuously with the environment and are mostly guided through input events from it. Céu can be described as a reactive, imperative, concurrent, synchronous, and deterministic language, which easily integrates with C and Lua.

lightbulb_outline View ideas list


  • lua
  • céu
  • lunatik
  • pallene


email Mailing list
mail_outline Contact email

LabLua 2020 Projects

  • Gustavo Castellanos
    A Parser Generator with Automatic Error Recovery on LPeg(Label)
    The goal is to build a parser generator on top of the library LPegLabel that will automatically support error recovery and (optionally) white spaces...
  • Maged Rifaat
    Extending the support of Céu in the Céu-Arduino IDE
    This project will involve further modification of the Arduino IDE to support more features of the céu language. This will include support for another...
  • Ankit Karan
    Lazy Configuration validator for LuaFormatter
    Every Project's code seems good if it is in proper style. LuaFormatter is a code formatter which helps to style a code in Lua scripts which will also...
  • Xinzhe Wang
    Lua Hook on kTLS
    Lunatik is a kernel-level Lua interpreter version for scripting the Linux kernel. For example, it allows users to filter packets using Lua scripts....
  • Matheus Silva Rodrigues
    Lua states management for Lunatik
    Currently, the creation and management of Lua States in Lunatik bindings are made by the binding itself, which can difficult the interoperability of...
  • Samuel Rowe
    Module Statement and Automatic Pallene to Lua Translator
    Pallene is a statically typed, ahead-of-time-compiled sister language to Lua, with a focus on performance. Programmers can use Pallene instead of C...