Code selection through object code optimization
ACM Transactions on Programming Languages and Systems (TOPLAS) - Lecture notes in computer science Vol. 174
Software—Practice & Experience
Abstraction and specification in program development
Abstraction and specification in program development
A Stub Generator for Multilanguage RPC in Heterogeneous Environments
IEEE Transactions on Software Engineering - Special issue on distributed systems
A portable global optimizer and linker
PLDI '88 Proceedings of the ACM SIGPLAN 1988 conference on Programming Language design and Implementation
Software—Practice & Experience
Human factors and typography for more readable programs
Human factors and typography for more readable programs
The SPARC architecture manual: version 8
The SPARC architecture manual: version 8
BURG: fast optimal instruction selection and tree parsing
ACM SIGPLAN Notices
PLDI '92 Proceedings of the ACM SIGPLAN 1992 conference on Programming language design and implementation
Simple and efficient BURS table generation
PLDI '92 Proceedings of the ACM SIGPLAN 1992 conference on Programming language design and implementation
Correctness of trap-based breakpoint implementations
POPL '94 Proceedings of the 21st ACM SIGPLAN-SIGACT symposium on Principles of programming languages
RE2C: a more versatile scanner generator
ACM Letters on Programming Languages and Systems (LOPLAS)
Building interpreters by composing monads
POPL '94 Proceedings of the 21st ACM SIGPLAN-SIGACT symposium on Principles of programming languages
Simple and effective link-time optimization of Modula-3 programs
PLDI '95 Proceedings of the ACM SIGPLAN 1995 conference on Programming language design and implementation
EEL: machine-independent executable editing
PLDI '95 Proceedings of the ACM SIGPLAN 1995 conference on Programming language design and implementation
A simple solver for linear equations containing nonlinear operators
Software—Practice & Experience
Optimizing ML with run-time code generation
PLDI '96 Proceedings of the ACM SIGPLAN 1996 conference on Programming language design and implementation
Fast, effective dynamic compilation
PLDI '96 Proceedings of the ACM SIGPLAN 1996 conference on Programming language design and implementation
VCODE: a retargetable, extensible, very fast dynamic code generation system
PLDI '96 Proceedings of the ACM SIGPLAN 1996 conference on Programming language design and implementation
Relocating machine instructions by currying
PLDI '96 Proceedings of the ACM SIGPLAN 1996 conference on Programming language design and implementation
C interfaces and implementations: techniques for creating reusable software
C interfaces and implementations: techniques for creating reusable software
Vortex: an optimizing compiler for object-oriented languages
Proceedings of the 11th ACM SIGPLAN conference on Object-oriented programming, systems, languages, and applications
Specifying representations of machine instructions
ACM Transactions on Programming Languages and Systems (TOPLAS)
Pizza into Java: translating theory into practice
Proceedings of the 24th ACM SIGPLAN-SIGACT symposium on Principles of programming languages
Unparsing expressions with prefix and postfix operators
Software—Practice & Experience
Early experience with ASDL in 1cc
Software—Practice & Experience
The pragmatic programmer: from journeyman to master
The pragmatic programmer: from journeyman to master
Dynamo: a transparent dynamic optimization system
PLDI '00 Proceedings of the ACM SIGPLAN 2000 conference on Programming language design and implementation
ACM Computing Surveys (CSUR)
ACM Transactions on Programming Languages and Systems (TOPLAS)
Efficient Computation of LALR(1) Look-Ahead Sets
ACM Transactions on Programming Languages and Systems (TOPLAS)
Generic unification via two-level types and parameterized modules
Proceedings of the sixth ACM SIGPLAN international conference on Functional programming
Usability Engineering
The ICON Programming Language
A Retargetable C Compiler: Design and Implementation
A Retargetable C Compiler: Design and Implementation
Design and Analysis of Instruction Set Processors
Design and Analysis of Instruction Set Processors
Achieving Extensibility Through Product-Lines and Domain-Specific Languages: A Case Study
ICSR-6 Proceedings of the 6th International Conerence on Software Reuse: Advances in Software Reusability
Machine Descriptions to Build Tools for Embedded Systems
LCTES '98 Proceedings of the ACM SIGPLAN Workshop on Languages, Compilers, and Tools for Embedded Systems
The Design of a Pretty-printing Library
Advanced Functional Programming, First International Spring School on Advanced Functional Programming Techniques-Tutorial Text
The Design of a Resourceable and Retargetable Binary Translator
WCRE '99 Proceedings of the Sixth Working Conference on Reverse Engineering
Mockingbird: Flexible Stub Compilation from Pairs of Declarations
ICDCS '99 Proceedings of the 19th IEEE International Conference on Distributed Computing Systems
Simplifying code generation through peephole optimization
Simplifying code generation through peephole optimization
The New Jersey machine-code toolkit
TCON'95 Proceedings of the USENIX 1995 Technical Conference Proceedings
The Zephyr abstract syntax description language
DSL'97 Proceedings of the Conference on Domain-Specific Languages on Conference on Domain-Specific Languages (DSL), 1997
Building the world from first principles: declarative machine descriptions and compiler construction
PADL'05 Proceedings of the 7th international conference on Practical Aspects of Declarative Languages
Hi-index | 0.00 |
When writing a program generator requires considerable intellectual effort, it is valuable to amortize that effort by using the generator to build more than one application. When a program generator serves multiple clients, however, the implementor must address pragmatic questions that implementors of single-use program generators can ignore. In how many languages should generated code be written? How should code be packaged? What should the interfaces to the client code look like? How should a user control variations? This paper elaborates on these questions by means of case studies of the New Jersey Machine-Code Toolkit, the $\lambda$-RTL Translator, and the ASDL program generator. It is hoped that the paper will stimulate the development of better techniques. Most urgently needed are a standard way to support multiple target languages and a simple, clear way to control interfaces to generated code.