The design of the UNIX operating system
The design of the UNIX operating system
Partial evaluation of pattern matching in strings
Information Processing Letters
The interface description language: definition and use
The interface description language: definition and use
Deforestation: transforming programs to eliminate trees
Proceedings of the Second European Symposium on Programming
The design of the C++ Booch Components
OOPSLA/ECOOP '90 Proceedings of the European conference on object-oriented programming on Object-oriented programming systems, languages, and applications
Static and dynamic semantics processing
POPL '91 Proceedings of the 18th ACM SIGPLAN-SIGACT symposium on Principles of programming languages
Semantics-directed compilation of nonlinear patterns
Information Processing Letters
Parameterized partial evaluation
PLDI '91 Proceedings of the ACM SIGPLAN 1991 conference on Programming language design and implementation
Partial evaluation of pattern matching in constraint logic programming languages
PEPM '91 Proceedings of the 1991 ACM SIGPLAN symposium on Partial evaluation and semantics-based program manipulation
Compiling inheritance using partial evaluation
PEPM '91 Proceedings of the 1991 ACM SIGPLAN symposium on Partial evaluation and semantics-based program manipulation
Essence of generalized partial computation
Theoretical Computer Science - Images of programming dedicated to the memory of Andrei P. Ershov
Open systems interconnection handbook
Open systems interconnection handbook
Partial evaluation and automatic program generation
Partial evaluation and automatic program generation
Tutorial notes on partial evaluation
POPL '93 Proceedings of the 20th ACM SIGPLAN-SIGACT symposium on Principles of programming languages
SIGSOFT '93 Proceedings of the 1st ACM SIGSOFT symposium on Foundations of software engineering
Parameterized partial evaluation
ACM Transactions on Programming Languages and Systems (TOPLAS)
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
PLDI '96 Proceedings of the ACM SIGPLAN 1996 conference on Programming language design and implementation
POPL '96 Proceedings of the 23rd ACM SIGPLAN-SIGACT symposium on Principles of programming languages
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
Program adaptation based on program transformation
ACM Computing Surveys (CSUR) - Special issue: position statements on strategic directions in computing research
Composition Validation and Subjectivity in GenVoca Generators
IEEE Transactions on Software Engineering
A framework for application generator design
Proceedings of the 1997 symposium on Software reusability
Flick: a flexible, optimizing IDL compiler
Proceedings of the ACM SIGPLAN 1997 conference on Programming language design and implementation
Scaling up partial evaluation for optimizing the Sun commercial RPC protocol
PEPM '97 Proceedings of the 1997 ACM SIGPLAN symposium on Partial evaluation and semantics-based program manipulation
Annotation-directed run-time specialization in C
PEPM '97 Proceedings of the 1997 ACM SIGPLAN symposium on Partial evaluation and semantics-based program manipulation
Multi-stage programming with explicit annotations
PEPM '97 Proceedings of the 1997 ACM SIGPLAN symposium on Partial evaluation and semantics-based program manipulation
Declarative specialization of object-oriented programs
Proceedings of the 12th ACM SIGPLAN conference on Object-oriented programming, systems, languages, and applications
Tempo: specializing systems applications and beyond
ACM Computing Surveys (CSUR) - Special issue: electronic supplement to the September 1998 issue
Proceedings of the First International Conference on Coordination Languages and Models
COORDINATION '96 Proceedings of the First International Conference on Coordination Languages and Models
Selected Papers from the Internaltional Seminar on Partial Evaluation
Selected Papers from the Internaltional Seminar on Partial Evaluation
Optimization of Object-Oriented Programs Using Static Class Hierarchy Analysis
ECOOP '95 Proceedings of the 9th European Conference on Object-Oriented Programming
Architecture Software Using: A Methodology for Language Development
PLILP '98/ALP '98 Proceedings of the 10th International Symposium on Principles of Declarative Programming
Calculating Software Generators from Solution Specifications
TAPSOFT '95 Proceedings of the 6th International Joint Conference CAAP/FASE on Theory and Practice of Software Development
The TOOLBUS Coordination Architecture
COORDINATION '96 Proceedings of the First International Conference on Coordination Languages and Models
What Not to Do When Writing an Interpreter for Specialisation
Selected Papers from the Internaltional Seminar on Partial Evaluation
A Uniform Approach for Compile-Time and Run-Time Specialization
Selected Papers from the Internaltional Seminar on Partial Evaluation
Model-integrated system development: models, architecture, and process
COMPSAC '97 Proceedings of the 21st International Computer Software and Applications Conference
Deductive Composition of Astronomical Software from Subroutine Libraries
CADE-12 Proceedings of the 12th International Conference on Automated Deduction
Safe and Efficient Active Network Programming
SRDS '98 Proceedings of the The 17th IEEE Symposium on Reliable Distributed Systems
Fast, Optimized Sun RPC Using Automatic Program Specialization
ICDCS '98 Proceedings of the The 18th International Conference on Distributed Computing Systems
Automatic, Template-Based Run-Time Specialization: Implementation and Experimental Study
ICCL '98 Proceedings of the 1998 International Conference on Computer Languages
A domain specific language for video device drivers: from design to implementation
DSL'97 Proceedings of the Conference on Domain-Specific Languages on Conference on Domain-Specific Languages (DSL), 1997
Towards bridging the gap between programming languages and partial evaluation
PEPM '02 Proceedings of the 2002 ACM SIGPLAN workshop on Partial evaluation and semantics-based program manipulation
Profile-directed optimization of event-based programs
PLDI '02 Proceedings of the ACM SIGPLAN 2002 Conference on Programming language design and implementation
An Environment for Building Customizable Software Components
CD '02 Proceedings of the IFIP/ACM Working Conference on Component Deployment
Specialization Scenarios: A Pragmatic Approach to Declaring Program Specialization
Higher-Order and Symbolic Computation
IEEE Transactions on Software Engineering
Gaussian elimination: a case study in efficient genericity with MetaOCaml
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 highly optimized real-time middleware for software product-line architectures
ACM SIGBED Review - Special issue: The work-in-progress (WIP) session of the RTSS 2005
Hi-index | 0.00 |
The notion of flexibility (that is, the ability to adapt tochanging requirements or execution contexts) is recognized as a keyconcern in structuring software, and many architectures have beendesigned to that effect. However, the corresponding implementationsoften come with performance and code size overheads. The source ofinefficiency can be identified to be in the loose integration ofcomponents, because flexibility is often present not only at thedesign level but also in the implementation. To solve this flexibility vs. efficiency dilemma, we advocate theuse of partial evaluation, which is an automated technique to produceefficient, specialized instances of generic programs. As supportingcase studies, we consider several flexible mechanisms commonly foundin software architectures: selective broadcast, pattern matching,interpreters, software layers, and generic libraries. Using Tempo,our specializer for C, we show how partial evaluation can safelyoptimize implementations of those mechanisms. Because thisoptimization is automatic, it preserves the original genericity andextensibility of the implementation.