Abstract
AbstractThe Spineless Tagless G-machine is an abstract machine designed to support non-strict higher-order functional languages. This presentation of the machine falls into three parts. Firstly, we give a general discussion of the design issues involved in implementing non-strict functional languages. Next, we present the STG language, an austere but recognizably-functional language, which as well as a denotational meaning has a well-defined operational semantics. The STG language is the ‘abstract machine code’ for the Spineless Tagless G-machine. Lastly, we discuss the mapping of the STG language onto stock hardware. The success of an abstract machine model depends largely on how efficient this mapping can be made, though this topic is often relegated to a short section. Instead, we give a detailed discussion of the design issues and the choices we have made. Our principal target is the C language, treating the C compiler as a portable assembler.
Publisher
Cambridge University Press (CUP)
Reference58 articles.
1. FLIC – a functional language intermediate code;Peyton Jones;SIGPLAN Notices,1988
Cited by
159 articles.
订阅此论文施引文献
订阅此论文施引文献,注册后可以免费订阅5篇论文的施引文献,订阅后可以查看论文全部施引文献
1. Optimizing term rewriting with creeper trace transducers;Journal of Logical and Algebraic Methods in Programming;2024-10
2. Haskelite: A Tracing Interpreter Based on a Pattern-Matching Calculus;Proceedings of the 17th ACM SIGPLAN International Haskell Symposium;2024-08-28
3. Call-by-Unboxed-Value;Proceedings of the ACM on Programming Languages;2024-08-15
4. Teaching Type Systems Implementation with Stella, an Extensible Statically Typed Programming Language;Electronic Proceedings in Theoretical Computer Science;2024-07-10
5. The Verse Calculus: A Core Calculus for Deterministic Functional Logic Programming;Proceedings of the ACM on Programming Languages;2023-08-30