PLDI '89 Proceedings of the ACM SIGPLAN 1989 Conference on Programming language design and implementation
Emerald: a general-purpose programming language
Software—Practice & Experience
Partial evaluation in logic programming
Journal of Logic Programming
Partial evaluation and automatic program generation
Partial evaluation and automatic program generation
A tour of Schism: a partial evaluation system for higher-order applicative languages
PEPM '93 Proceedings of the 1993 ACM SIGPLAN symposium on Partial evaluation and semantics-based program manipulation
Optimizing dynamically-dispatched calls with run-time type feedback
PLDI '94 Proceedings of the ACM SIGPLAN 1994 conference on Programming language design and implementation
Design patterns: elements of reusable object-oriented software
Design patterns: elements of reusable object-oriented software
Precise concrete type inference for object-oriented languages
OOPSLA '94 Proceedings of the ninth annual conference on Object-oriented programming systems, language, and applications
Selective specialization for object-oriented languages
PLDI '95 Proceedings of the ACM SIGPLAN 1995 conference on Programming language design and implementation
Profile-guided receiver class prediction
Proceedings of the tenth annual conference on Object-oriented programming systems, languages, and applications
Declarative specialization of object-oriented programs
Proceedings of the 12th ACM SIGPLAN conference on Object-oriented programming, systems, languages, and applications
An evaluation of automatic object inline allocation techniques
Proceedings of the 13th ACM SIGPLAN conference on Object-oriented programming, systems, languages, and applications
Practical experience with an application extractor for Java
Proceedings of the 14th ACM SIGPLAN conference on Object-oriented programming, systems, languages, and applications
Proceedings of the 14th ACM SIGPLAN conference on Object-oriented programming, systems, languages, and applications
Towards partially evaluating reflection in Java
PEPM '00 Proceedings of the 2000 ACM SIGPLAN workshop on Partial evaluation and semantics-based program manipulation
A framework for interprocedural optimization in the presence of dynamic class loading
PLDI '00 Proceedings of the ACM SIGPLAN 2000 conference on Programming language design and implementation
An automatic object inlining optimization and its evaluation
PLDI '00 Proceedings of the ACM SIGPLAN 2000 conference on Programming language design and implementation
OOPSLA '00 Proceedings of the 15th ACM SIGPLAN conference on Object-oriented programming, systems, languages, and applications
OoLALA: an object oriented analysis and design of numerical linear algebra
OOPSLA '00 Proceedings of the 15th ACM SIGPLAN conference on Object-oriented programming, systems, languages, and applications
Practical virtual method call resolution for Java
OOPSLA '00 Proceedings of the 15th ACM SIGPLAN conference on Object-oriented programming, systems, languages, and applications
A study of devirtualization techniques for a Java Just-In-Time compiler
OOPSLA '00 Proceedings of the 15th ACM SIGPLAN conference on Object-oriented programming, systems, languages, and applications
Accurate binding-time analysis for imperative languages: flow, context, and return sensitivity
Theoretical Computer Science - Partial evaluation and semantics-based program manipulation
Supporting objects in run-time bytecode specialization
ASIA-PEPM '02 Proceedings of the ASIAN symposium on Partial evaluation and semantics-based program manipulation
A portable-approach to dynamic optimization in run-time specialization
New Generation Computing - Partial evaluation and program transformation
Harissa: A Hybrid Approach to Java Execution
IEEE Software
Just When You Thought Your Little Language Was Safe: ``Expression Templates'' in Java
GCSE '00 Proceedings of the Second International Symposium on Generative and Component-Based Software Engineering-Revised Papers
JaMake: A Java Compiler Environment
LSSC '01 Proceedings of the Third International Conference on Large-Scale Scientific Computing-Revised Papers
ECOOP '93 Proceedings of the 7th European Conference on Object-Oriented Programming
Optimization of Object-Oriented Programs Using Static Class Hierarchy Analysis
ECOOP '95 Proceedings of the 9th European Conference on Object-Oriented Programming
Eliminating Virtual Function Calls in C++ Programs
ECCOP '96 Proceedings of the 10th European Conference on Object-Oriented Programming
Precise Constraint-Based Type Inference for Java
ECOOP '01 Proceedings of the 15th European Conference on Object-Oriented Programming
ECOOP '01 Proceedings of the 15th European Conference on Object-Oriented Programming
Aspect-Oriented Programming of Sparse Matrix Code
ISCOPE '97 Proceedings of the Scientific Computing in Object-Oriented Parallel Environments
Effective Specialization of Realistic Programs via Use Sensitivity
SAS '97 Proceedings of the 4th International Symposium on Static Analysis
Determination of Dynamic Method Dispatches Using Run-Time Code Generation
TIC '98 Proceedings of the Second International Workshop on Types in Compilation
A Uniform Approach for Compile-Time and Run-Time Specialization
Selected Papers from the Internaltional Seminar on Partial Evaluation
Efficient Incremental Checkpointing of Java Programs
DSN '00 Proceedings of the 2000 International Conference on Dependable Systems and Networks (formerly FTCS-30 and DCCA-8)
ASE '00 Proceedings of the 15th IEEE international conference on Automated software engineering
An evaluation of Java for numerical computing
Scientific Programming
The cost of being object-oriented: A preliminary study
Scientific Programming
Compiling java for low-end embedded systems
Proceedings of the 2003 ACM SIGPLAN conference on Language, compiler, and tool for embedded systems
Declarative specialization for object-oriented-program specialization
Proceedings of the 2004 ACM SIGPLAN symposium on Partial evaluation and semantics-based program manipulation
A tour of tempo: a program specializer for the C language
Science of Computer Programming - Special issue on program transformation
Binary refactoring: improving code behind the scenes
Proceedings of the 27th international conference on Software engineering
IEEE Transactions on Software Engineering
Incrementalization across object abstraction
OOPSLA '05 Proceedings of the 20th annual ACM SIGPLAN conference on Object-oriented programming, systems, languages, and applications
Dynamic Class Hierarchy Mutation
Proceedings of the International Symposium on Code Generation and Optimization
Context-sensitive domain-independent algorithm composition and selection
Proceedings of the 2006 ACM SIGPLAN conference on Programming language design and implementation
Actor-oriented models for codesign: balancing re-use and performance
Formal methods and models for system design
Experiences with an object-oriented, multi-stage language
Science of Computer Programming - Special issue on the first MetaOCaml workshop 2004
Proceedings of the 1st ACM SIGOPS/EuroSys European Conference on Computer Systems 2006
Towards constructing reusable specialization components
Proceedings of the 2007 ACM SIGPLAN symposium on Partial evaluation and semantics-based program manipulation
Field Flow Sensitive Pointer and Escape Analysis for Java Using Heap Array SSA
SAS '08 Proceedings of the 15th international symposium on Static Analysis
The road not taken: Estimating path execution frequency statically
ICSE '09 Proceedings of the 31st International Conference on Software Engineering
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
Interleaving symbolic execution and partial evaluation
FMCO'09 Proceedings of the 8th international conference on Formal methods for components and objects
Dynamic elimination of overflow tests in a trace compiler
CC'11/ETAPS'11 Proceedings of the 20th international conference on Compiler construction: part of the joint European conferences on theory and practice of software
Proceedings of the 2011 ACM international conference on Object oriented programming systems languages and applications
A java supercompiler and its application to verification of cache-coherence protocols
PSI'09 Proceedings of the 7th international Andrei Ershov Memorial conference on Perspectives of Systems Informatics
Optimizing MATLAB through just-in-time specialization
CC'10/ETAPS'10 Proceedings of the 19th joint European conference on Theory and Practice of Software, international conference on Compiler Construction
Program specialization via a software verification tool
FMCO'10 Proceedings of the 9th international conference on Formal Methods for Components and Objects
Turbo DiSL: partial evaluation for high-level bytecode instrumentation
TOOLS'12 Proceedings of the 50th international conference on Objects, Models, Components, Patterns
PE-KeY: a partial evaluator for java programs
IFM'12 Proceedings of the 9th international conference on Integrated Formal Methods
Practical automatic loop specialization
Proceedings of the eighteenth international conference on Architectural support for programming languages and operating systems
Proceedings of the 2013 ACM international symposium on New ideas, new paradigms, and reflections on programming & software
The shape of things to run: compiling complex stream graphs to reconfigurable hardware in lime
ECOOP'13 Proceedings of the 27th European conference on Object-Oriented Programming
Hi-index | 0.00 |
The object-oriented style of programming facilitates program adaptation and enhances program genericness, but at the expense of efficiency. We demonstrate experimentally that state-of-the-art Java compilers fail to compensate for the use of object-oriented abstractions in the implementation of generic programs, and that program specialization can eliminate a significant portion of these overheads. We present an automatic program specializer for Java, illustrate its use through detailed case studies, and demonstrate experimentally that it can significantly reduce program execution time. Although automatic program specialization could be seen as being subsumed by existing optimizing compiler technology, we show that specialization and compiler optimization are in fact complementary.