Proceedings of the 22nd International Symposium on Principles and Practice of Declarative Programming 2020
DOI: 10.1145/3414080.3414093
|View full text |Cite
|
Sign up to set email alerts
|

Understanding Lua’s Garbage Collection

Abstract: We provide the semantics of garbage collection (GC) for the Lua programming language. Of interest are the inclusion of finalizers (akin to destructors in object-oriented languages) and weak tables (a particular implementation of weak references). The model expresses several aspects relevant to GC that are not covered in Lua's documentation but that, nevertheless, affect the observable behavior of programs. Our model is mechanized and can be tested with real programs. Our long-term goal is to provide a formaliz… Show more

Help me understand this report

Search citation statements

Order By: Relevance

Paper Sections

Select...
1

Citation Types

0
1
0

Year Published

2022
2022
2023
2023

Publication Types

Select...
1
1

Relationship

1
1

Authors

Journals

citations
Cited by 2 publications
(1 citation statement)
references
References 10 publications
0
1
0
Order By: Relevance
“…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%
“…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%