Proceedings of the 13th ACM SIGPLAN International Symposium on on Dynamic Languages 2017
DOI: 10.1145/3133841.3133848
|View full text |Cite
|
Sign up to set email alerts
|

Decoding Lua: formal semantics for the developer and the semanticist

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, con rming 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 … Show more

Help me understand this report

Search citation statements

Order By: Relevance

Paper Sections

Select...
1
1

Citation Types

0
2
0

Year Published

2019
2019
2022
2022

Publication Types

Select...
3
1

Relationship

2
2

Authors

Journals

citations
Cited by 4 publications
(2 citation statements)
references
References 11 publications
0
2
0
Order By: Relevance
“…The Lua is an asynchronous and event-driven script language [16], [17]. Other languages are procedural that makes a clear flow of execution [18], [19]. Lua requires the asynchronous mode and other approaches to develop and structure their applications.…”
Section: Luamentioning
confidence: 99%
“…The Lua is an asynchronous and event-driven script language [16], [17]. Other languages are procedural that makes a clear flow of execution [18], [19]. Lua requires the asynchronous mode and other approaches to develop and structure their applications.…”
Section: Luamentioning
confidence: 99%
“…It also includes a variety of tools for testing them: unit testing, random generators of terms for random testing of properties, stepper for step-by-step reduction sequences. It has been successfully used for the mechanization of large semantics models of real programming languages (e.g., JavaScript Guha et al (2010); Politz et al (2012); Python Politz et al (2013); Scheme Matthews and Findler (2007); and Lua 5.2 Soldevila et al (2017Soldevila et al ( , 2020Soldevila et al ( , 2022); the development of tools for program analysis (like, again, Soldevila et al (2020), to check for a particular kind of well-behavedness of Lua 5.2 programs; Lorenzen and Erdweg (2013), for checking type-soundness of syntactic language extensions that introduces high-level programming concepts). Other, particular uses cases, involve the mechanization of operational semantics for virtual machines specialised for running reactive programs Oeyen et al (2022), or even mechanizing a model of Redex itself, as is done in Felleisen et al (2009).…”
Section: Introductionmentioning
confidence: 99%