From regular expressions to deterministic automata
Theoretical Computer Science
Object-preserving class transformations
OOPSLA '91 Conference proceedings on Object-oriented programming systems, languages, and applications
Querying object-oriented databases
SIGMOD '92 Proceedings of the 1992 ACM SIGMOD international conference on Management of data
Partial evaluation and automatic program generation
Partial evaluation and automatic program generation
Refactoring object-oriented frameworks
Refactoring object-oriented frameworks
Efficient implementation of adaptive software
ACM Transactions on Programming Languages and Systems (TOPLAS)
Regular path queries with constraints
PODS '97 Proceedings of the sixteenth ACM SIGACT-SIGMOD-SIGART symposium on Principles of database systems
AntiPatterns: refactoring software, architectures, and projects in crisis
AntiPatterns: refactoring software, architectures, and projects in crisis
A new approach to compiling adaptive programs
Science of Computer Programming
Revised5 report on the algorithmic language scheme
ACM SIGPLAN Notices
Refactoring: improving the design of existing code
Refactoring: improving the design of existing code
Derivatives of Regular Expressions
Journal of the ACM (JACM)
Adaptive Object-Oriented Software: The Demeter Method with Propagation Patterns
Adaptive Object-Oriented Software: The Demeter Method with Propagation Patterns
Introduction To Automata Theory, Languages, And Computation
Introduction To Automata Theory, Languages, And Computation
An Algebraic Foundation for Adaptive Programming
FOSSACS '00 Proceedings of the Third International Conference on Foundations of Software Science and Computation Structures: Held as Part of the Joint European Conferences on Theory and Practice of Software,ETAPS 2000
Hi-index | 0.00 |
An adaptive program is an object-oriented program which is abstracted over the particular class structure.Th is abstraction fosters software reuse, because programmers can concentrate on specifying how to process the objects which are essential to their application. The compiler of an adaptive program takes care of actually locating the objects. The adaptive programmer merely writes a traversal specification decorated with actions. The compiler instantiates the specification with the actual class structure and generates code that traverses a collection of objects, performing visits and actions according to the specification. Earlier work on adaptive programming merely stated but never verified that compilation of adaptive programs is nothing but partial evaluation. We employ an algebraic framework based on derivatives of traversal specifications to develop an interpretive semantics of adaptive programming. This semantics is naturally staged in up to three stages. Compilation can be achieved using a standard partial evaluator. Slight changes in the binding-time properties yield several variants of the compiler, by trading compile-time computations for run-time computations.