Programming Languages Research with emphasis on the Lua language

Technologies
lua, céu, lunatik, pallene
Topics
operating systems, compilers, scripting languages, reactive programming
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.

2020 Program

Successful Projects

Contributor
Samuel Rowe
Mentor
Hugo Musso Gualandi, Gabriel Ligneul
Organization
LabLua
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...
Contributor
Matheus Silva Rodrigues
Mentor
Victor Nogueira, lneto
Organization
LabLua
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...
Contributor
Xinzhe Wang
Mentor
Pedro Tammela, Victor Nogueira, lneto
Organization
LabLua
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....
Contributor
Maged Rifaat
Mentor
Francisco Sant'Anna
Organization
LabLua
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...
Contributor
Ankit Karan
Mentor
Pedro Tammela, Shaobang Wen
Organization
LabLua
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...
Contributor
Gustavo Castellanos
Mentor
Sérgio Medeiros
Organization
LabLua
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...