PLDI '89 Proceedings of the ACM SIGPLAN 1989 Conference on Programming language design and implementation
Common LISP: the language (2nd ed.)
Common LISP: the language (2nd ed.)
Architectural considerations for a new generation of protocols
SIGCOMM '90 Proceedings of the ACM symposium on Communications architectures & protocols
Programming perl
C: a reference manual (3rd ed.)
C: a reference manual (3rd ed.)
A portable interface for on-the-fly instruction space modification
ASPLOS IV Proceedings of the fourth international conference on Architectural support for programming languages and operating systems
BURG: fast optimal instruction selection and tree parsing
ACM SIGPLAN Notices
Numerical recipes in C (2nd ed.): the art of scientific computing
Numerical recipes in C (2nd ed.): the art of scientific computing
Limits to low-latency communication on high-speed networks
ACM Transactions on Computer Systems (TOCS)
The SPARC architecture manual (version 9)
The SPARC architecture manual (version 9)
Tcl and the Tk toolkit
Optimizing dynamically-dispatched calls with run-time type feedback
PLDI '94 Proceedings of the ACM SIGPLAN 1994 conference on Programming language design and implementation
DCG: an efficient, retargetable dynamic code generation system
ASPLOS VI Proceedings of the sixth international conference on Architectural support for programming languages and operating systems
Exokernel: an operating system architecture for application-level resource management
SOSP '95 Proceedings of the fifteenth ACM symposium on Operating systems principles
Extensibility safety and performance in the SPIN operating system
SOSP '95 Proceedings of the fifteenth ACM symposium on Operating systems principles
Optimistic incremental specialization: streamlining a commercial operating system
SOSP '95 Proceedings of the fifteenth ACM symposium on Operating systems principles
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
Embra: fast and flexible machine simulation
Proceedings of the 1996 ACM SIGMETRICS international conference on Measurement and modeling of computer systems
C: a language for high-level, efficient, and machine-independent dynamic code generation
POPL '96 Proceedings of the 23rd ACM SIGPLAN-SIGACT symposium on Principles of programming languages
A general approach for run-time specialization and its application to C
POPL '96 Proceedings of the 23rd ACM SIGPLAN-SIGACT symposium on Principles of programming languages
tcc: a system for fast, flexible, and high-level dynamic code generation
Proceedings of the ACM SIGPLAN 1997 conference on Programming language design and implementation
Annotation-directed run-time specialization in C
PEPM '97 Proceedings of the 1997 ACM SIGPLAN symposium on Partial evaluation and semantics-based program manipulation
Linear scan register allocation
ACM Transactions on Programming Languages and Systems (TOPLAS)
Implementing remote procedure calls
ACM Transactions on Computer Systems (TOCS)
A Retargetable C Compiler: Design and Implementation
A Retargetable C Compiler: Design and Implementation
Computer Methods for Mathematical Computations
Computer Methods for Mathematical Computations
MINT: A Front End for Efficient Simulation of Shared-Memory Multiprocessors
MASCOTS '94 Proceedings of the Second International Workshop on Modeling, Analysis, and Simulation On Computer and Telecommunication Systems
Efficient implementation of the smalltalk-80 system
POPL '84 Proceedings of the 11th ACM SIGACT-SIGPLAN symposium on Principles of programming languages
Lightweight Languages for Interactive Graphics
Lightweight Languages for Interactive Graphics
An evaluation of staged run-time optimizations in DyC
Proceedings of the ACM SIGPLAN 1999 conference on Programming language design and implementation
Linear scan register allocation
ACM Transactions on Programming Languages and Systems (TOPLAS)
Derive: a tool that automatically reverse-engineers instruction encodings
DYNAMO '00 Proceedings of the ACM SIGPLAN workshop on Dynamic and adaptive compilation and optimization
A framework for remote dynamic program optimization
DYNAMO '00 Proceedings of the ACM SIGPLAN workshop on Dynamic and adaptive compilation and optimization
The benefits and costs of DyC's run-time optimizations
ACM Transactions on Programming Languages and Systems (TOPLAS)
High-level adaptive program optimization with ADAPT
PPoPP '01 Proceedings of the eighth ACM SIGPLAN symposium on Principles and practices of parallel programming
Maya: multiple-dispatch syntax extension in Java
PLDI '02 Proceedings of the ACM SIGPLAN 2002 Conference on Programming language design and implementation
Proceedings of the ACM SIGGRAPH/EUROGRAPHICS conference on Graphics hardware
Composable and compilable macros:: you want it when?
Proceedings of the seventh ACM SIGPLAN international conference on Functional programming
A portable-approach to dynamic optimization in run-time specialization
New Generation Computing - Partial evaluation and program transformation
Managing Dynamic Changes in Multi-stage Program Generation Systems
GPCE '02 Proceedings of the 1st ACM SIGPLAN/SIGSOFT conference on Generative Programming and Component Engineering
Linear Scan Register Allocation in a High-Performance Erlang Compiler
PADL '02 Proceedings of the 4th International Symposium on Practical Aspects of Declarative Languages
Run-Time Bytecode Specialization
PADO '01 Proceedings of the Second Symposium on Programs as Data Objects
Optimization of HPF Programs with Dynamic Recompilation Technique
ISHPC '02 Proceedings of the 4th International Symposium on High Performance Computing
Reverse-Engineering Instruction Encodings
Proceedings of the General Track: 2002 USENIX Annual Technical Conference
CodeBricks: code fragments as building blocks
Proceedings of the 2003 ACM SIGPLAN workshop on Partial evaluation and semantics-based program manipulation
ADAPT: Automated De-Coupled Adaptive Program Transformation
ICPP '00 Proceedings of the Proceedings of the 2000 International Conference on Parallel Processing
Towards a compilation paradigm for computational applications on the information power grid
Computational science, mathematics and software
High-speed I/O: the operating system as a signalling mechanism
NICELI '03 Proceedings of the ACM SIGCOMM workshop on Network-I/O convergence: experience, lessons, implications
Routine run-time code generation
OOPSLA '03 Companion of the 18th annual ACM SIGPLAN conference on Object-oriented programming, systems, languages, and applications
Efficient mediators through dynamic code generation: a method and an experiment
Proceedings of the 2003 ACM symposium on Applied computing
Routine run-time code generation
ACM SIGPLAN Notices
A retrospective on: "an evaluation of staged run-time optimizations in DyC"
ACM SIGPLAN Notices - Best of PLDI 1979-1999
ACM SIGGRAPH 2004 Papers
A fast, memory-efficient register allocation framework for embedded systems
ACM Transactions on Programming Languages and Systems (TOPLAS)
Z0 - a tiny experimental language
ACM SIGPLAN Notices
IEEE Transactions on Software Engineering
Develop once deploy anywhere achieving adaptivity with a runtime linker/loader framework
ARM '05 Proceedings of the 4th workshop on Reflective and adaptive middleware systems
Termination analysis and specialization-point insertion in offline partial evaluation
ACM Transactions on Programming Languages and Systems (TOPLAS)
A polymorphic modal type system for lisp-like multi-staged languages
Conference record of the 33rd ACM SIGPLAN-SIGACT symposium on Principles of programming languages
A two-phase escape analysis for parallel java programs
Proceedings of the 15th international conference on Parallel architectures and compilation techniques
In search of a program generator to implement generic transformations for high-performance computing
Science of Computer Programming - Special issue on the first MetaOCaml workshop 2004
Staging static analyses for program generation
Proceedings of the 5th international conference on Generative programming and component engineering
Reflective program generation with patterns
Proceedings of the 5th international conference on Generative programming and component engineering
Runtime synthesis of high-performance code from scripting languages
Companion to the 21st ACM SIGPLAN symposium on Object-oriented programming systems, languages, and applications
Proceedings of the 1st ACM SIGOPS/EuroSys European Conference on Computer Systems 2006
Specialization for applications using shared libraries
PEPM '08 Proceedings of the 2008 ACM SIGPLAN symposium on Partial evaluation and semantics-based program manipulation
Optimizing code through iterative specialization
Proceedings of the 2008 ACM symposium on Applied computing
An Effective Automated Approach to Specialization of Code
Languages and Compilers for Parallel Computing
Quick and Practical Run-Time Evaluation of Multiple Program Optimizations
Transactions on High-Performance Embedded Architectures and Compilers I
A comparative study of techniques to write customizable libraries
Proceedings of the 2009 ACM symposium on Applied Computing
A Logical Foundation for Environment Classifiers
TLCA '09 Proceedings of the 9th International Conference on Typed Lambda Calculi and Applications
Feedback-directed specialization of code
Computer Languages, Systems and Structures
Privacy-preserving genomic computation through program specialization
Proceedings of the 16th ACM conference on Computer and communications security
Mnemonics: type-safe bytecode generation at run time
Proceedings of the 2010 ACM SIGPLAN workshop on Partial evaluation and program manipulation
Expression and loop libraries for high-performance code synthesis
LCPC'06 Proceedings of the 19th international conference on Languages and compilers for parallel computing
Applying code specialization to FFT libraries for integral parameters
LCPC'06 Proceedings of the 19th international conference on Languages and compilers for parallel computing
A runtime optimization system for OpenMP
WOMPAT'03 Proceedings of the OpenMP applications and tools 2003 international conference on OpenMP shared memory parallel programming
Deriving compilers and virtual machines for a multi-level language
APLAS'07 Proceedings of the 5th Asian conference on Programming languages and systems
Mint: Java multi-stage programming using weak separability
PLDI '10 Proceedings of the 2010 ACM SIGPLAN conference on Programming language design and implementation
Lightweight modular staging: a pragmatic approach to runtime code generation and compiled DSLs
GPCE '10 Proceedings of the ninth international conference on Generative programming and component engineering
An input-centric paradigm for program dynamic optimizations
Proceedings of the ACM international conference on Object oriented programming systems languages and applications
Static analysis of multi-staged programs via unstaging translation
Proceedings of the 38th annual ACM SIGPLAN-SIGACT symposium on Principles of programming languages
Improving performance through deep value profiling and specialization with code transformation
Computer Languages, Systems and Structures
A language for the compact representation of multiple program versions
LCPC'05 Proceedings of the 18th international conference on Languages and Compilers for Parallel Computing
Mnemonics: type-safe bytecode generation at run time
Higher-Order and Symbolic Computation
Programming languages for real-time systems
Embedded Systems Design
Source-level optimization of run-time program generators
GPCE'05 Proceedings of the 4th international conference on Generative Programming and Component Engineering
Type and effect system for multi-staged exceptions
APLAS'06 Proceedings of the 4th Asian conference on Programming Languages and Systems
Terra: a multi-stage language for high-performance computing
Proceedings of the 34th ACM SIGPLAN conference on Programming language design and implementation
Intermediate representations in imperative compilers: A survey
ACM Computing Surveys (CSUR)
JIT technology with C/C++: Feedback-directed dynamic recompilation for statically compiled languages
ACM Transactions on Architecture and Code Optimization (TACO)
Hi-index | 0.00 |
Dynamic code generation allows programmers to use run-time information in order to achieve performance and expressiveness superior to those of static code. The 'C(Tick C) language is a superset of ANSI C that supports efficient and high-level use of dynamic code generation. 'C provides dynamic code generation at the level of C expressions and statements and supports the composition of dynamic code at run time. These features enable programmers to add dynamic code generation to existing C code incrementally and to write important applications (such as “just-in-time” compilers) easily. The article presents many examples of how 'C can be used to solve practical problems. The tcc compiler is an efficient, portable, and freely available implementation of 'C. tcc allows programmers to trade dynamic compilation speed for dynamic code quality: in some aplications, it is most important to generate code quickly, while in others code quality matters more than compilation speed. The overhead of dynamic compilation is on the order of 100 to 600 cycles per generated instruction, depending on the level of dynamic optimizaton. Measurements show that the use of dynamic code generation can improve performance by almost an order of magnitude; two- to four-fold speedups are common. In most cases, the overhead of dynamic compilation is recovered in under 100 uses of the dynamic code; sometimes it can be recovered within one use.