# Decoding Lua: Formal Semantics for the Developer and the Semanticist

**Authors:** Mallku Soldevila, Beta Ziliani, Bruno Silvestre, Daniel, Fridlender, Fabio Mascarenhas

arXiv: 1706.02400 · 2017-06-09

## TL;DR

This paper presents a formal, mechanized semantics for Lua 5.2, validated against the reference interpreter, aiming to bridge understanding for both language semanticists and Lua developers.

## Contribution

It introduces a formal, mechanized small-step semantics for Lua 5.2, accessible to both semanticists and developers, and validated through testing against the Lua reference implementation.

## Key findings

- Model accurately represents Lua 5.2 semantics
- Mechanization in PLT Redex confirms correctness
- Provides a foundation for testing and extending Lua implementations

## Abstract

We provide formal semantics for a large subset of the Lua programming language, in its version 5.2. We validate our model by mechanizing it and testing it against the test suite of the reference interpreter of Lua, confirming that our model accurately represents the language. In addition, we set us an ambitious goal: to target both a PL semanticist ---not necessarily versed in Lua---, and a Lua developer ---not necessarily versed in semantic frameworks. To the former, we present the peculiarities of the language, and how we model them in a traditional small-step operational semantics, embedded within Felleisen-Hieb's reduction semantics with evaluation contexts. The mechanization is, naturally, performed in PLT Redex, the de facto tool for mechanizing reduction semantics.   To the reader unfamiliar with such concepts, we provide, to our best possible within the space limitations, a gentle introduction of the model. It is our hope that developers of the different Lua implementations and dialects understand the model and consider it both for testing their work and for experimenting with new language features.

## Full text

_Full body text omitted from this summary view._ Fetch the complete paper as Markdown: https://tomesphere.com/paper/1706.02400/full.md

## Figures

68 figures with captions in the complete paper: https://tomesphere.com/paper/1706.02400/full.md

## References

14 references — full list in the complete paper: https://tomesphere.com/paper/1706.02400/full.md

---
Source: https://tomesphere.com/paper/1706.02400