Publication | Closed Access
A systematic derivation of the STG machine verified in Coq
15
Citations
12
References
2010
Year
Unknown Venue
EngineeringSemanticsNatural Operational SemanticsFormal VerificationOperational SemanticsMechanical VerificationComputational LinguisticsLanguage StudiesSystematic DerivationTerm GraphAbstract MachineProgramming Language TheoryComputer EngineeringLazy Functional LanguageComputer ScienceFunctional Programming LanguageFunctional ProgrammingAutomated ReasoningProgram AnalysisFormal Methods
Shared Term Graph (STG) is a lazy functional language used as an intermediate language in the Glasgow Haskell Compiler (GHC). In this article, we present a natural operational semantics for STG and we mechanically derive a lazy abstract machine from this semantics, which turns out to coincide with Peyton-Jones and Salkild's Spineless Tagless G-machine (STG machine) used in GHC. Unlike other constructions of STG-like machines present in the literature, ours is based on a systematic and scalable derivation method (inspired by Danvy et al.'s functional correspondence between evaluators and abstract machines) and it leads to an abstract machine that differs from the original STG machine only in inessential details. In particular, it handles non-trivial update scenarios and partial applications identically as the STG machine.
| Year | Citations | |
|---|---|---|
Page 1
Page 1