The Generation of Optimal Code for Arithmetic Expressions
Journal of the ACM (JACM)
Code Generation for a One-Register Machine
Journal of the ACM (JACM)
Program Improvement by Source-to-Source Transformation
Journal of the ACM (JACM)
Semantics of the Domain of Flow Diagrams
Journal of the ACM (JACM)
Continuation-Based Program Transformation Strategies
Journal of the ACM (JACM)
New Programming Languages for Artificial Intelligence Research
ACM Computing Surveys (CSUR)
Structured Programming with go to Statements
ACM Computing Surveys (CSUR)
Communications of the ACM
The denotational semantics of programming languages
Communications of the ACM
A model and stack implementation of multiple environments
Communications of the ACM
HYDRA: the kernel of a multiprocessor operating system
Communications of the ACM
A new strategy for code generation: the general purpose optimizing compiler
POPL '77 Proceedings of the 4th ACM SIGACT-SIGPLAN symposium on Principles of programming languages
The Design of an Optimizing Compiler
The Design of an Optimizing Compiler
On the Relation between Direct and Continuation Semantics
Proceedings of the 2nd Colloquium on Automata, Languages and Programming
Definitional interpreters for higher-order programming languages
ACM '72 Proceedings of the ACM annual conference - Volume 2
Proceedings of ACM conference on Proving assertions about programs
The contour model of block structured processes
ACM SIGPLAN Notices
Computer Languages
Hi-index | 0.00 |
We present a source-level transformation for recursion-removal with several interesting characteristics: 1.(i) the algorithm is simple and provably correct; 2.(ii) the stack utilization regime is chosen by the compiler rather than being fixed by the run-time environment; 3.(iii) the stack is available at the source language level so that further optimizations are possible; 4.(iv) the algorithm arises from ideas in category theory. In addition to its implications for compilers, the transformation algorithm is useful as an implementation technique for advanced LISP-based systems, and one such application is described.