The concept of a supercompiler
ACM Transactions on Programming Languages and Systems (TOPLAS) - The MIT Press scientific computation series
Foundations of logic programming; (2nd extended ed.)
Foundations of logic programming; (2nd extended ed.)
Inorder traversal of a binary tree and its inversion
Formal development programs and proofs
Deforestation: transforming programs to eliminate trees
Proceedings of the Second European Symposium on Programming
Application of metasystem transition to function inversion and transformation
ISSAC '90 Proceedings of the international symposium on Symbolic and algebraic computation
Program inversion: more than fun!
Science of Computer Programming
On the synthesis of function inverses
Acta Informatica
What computing is all about
Partial evaluation and automatic program generation
Partial evaluation and automatic program generation
Algebra of programming
A regeneration scheme for generating extensions
Information Processing Letters
On the degeneration of program generators by program composition
New Generation Computing
A Computing Procedure for Quantification Theory
Journal of the ACM (JACM)
A Machine-Oriented Logic Based on the Resolution Principle
Journal of the ACM (JACM)
From checking to inference via driving and dag grammars
PEPM '02 Proceedings of the 2002 ACM SIGPLAN workshop on Partial evaluation and semantics-based program manipulation
The Science of Programming
The narrowing-driven approach to functional logic program specialization
New Generation Computing - Partial evaluation and program transformation
The Use of Metasystem Transition in Theorem Proving and Program Optimization
Proceedings of the 7th Colloquium on Automata, Languages and Programming
Partial Deduction and Driving are Equivalent
PLILP '94 Proceedings of the 6th International Symposium on Programming Language Implementation and Logic Programming
Program Transformation with Metasystem Transitions: Experiments with a Supercompiler
Proceedings of the Second International Andrei Ershov Memorial Conference on Perspectives of System Informatics
Infinite State Model Checking by Abstract Interpretation and Program Specialisation
LOPSTR'99 Selected papers from the 9th International Workshop on Logic Programming Synthesis and Transformation
Occam's Razor in Metacompuation: the Notion of a Perfect Process Tree
WSA '93 Proceedings of the Third International Workshop on Static Analysis
InvX: An Automatic Function Inverter
RTA '89 Proceedings of the 3rd International Conference on Rewriting Techniques and Applications
A Roadmap to Metacomputation by Supercompilation
Selected Papers from the Internaltional Seminar on Partial Evaluation
The Universal Resolving Algorithm: Inverse Computation in a Functional Language
MPC '00 Proceedings of the 5th International Conference on Mathematics of Program Construction
MPC '02 Proceedings of the 6th International Conference on Mathematics of Program Construction
Transforming interpreters into inverse interpreters by partial evaluation
Proceedings of the 2003 ACM SIGPLAN workshop on Partial evaluation and semantics-based program manipulation
Proceedings of the 32nd ACM SIGPLAN-SIGACT symposium on Principles of programming languages
Revisiting an automatic program inverter for Lisp
ACM SIGPLAN Notices
A Method for Automatic Program Inversion Based on LR(0) Parsing
Fundamenta Informaticae - Program Transformation: Theoretical Foundations and Basic Techniques. Part 1
Combinators for bidirectional tree transformations: A linguistic approach to the view-update problem
ACM Transactions on Programming Languages and Systems (TOPLAS) - Special issue on POPL 2005
Principles of a reversible programming language
Proceedings of the 5th conference on Computing frontiers
Information Systems
Self-generating program specializers
Information Processing Letters
Invertible syntax descriptions: unifying parsing and pretty printing
Proceedings of the third ACM Haskell symposium on Haskell
Bidirectionalizing graph transformations
Proceedings of the 15th ACM SIGPLAN international conference on Functional programming
What do reversible programs compute?
FOSSACS'11/ETAPS'11 Proceedings of the 14th international conference on Foundations of software science and computational structures: part of the joint European conferences on theory and practice of software
DBPL'05 Proceedings of the 10th international conference on Database Programming Languages
Polynomial-time inverse computation for accumulative functions with multiple data traversals
PEPM '12 Proceedings of the ACM SIGPLAN 2012 workshop on Partial evaluation and program manipulation
The program inverter LRinv and its structure
PADL'05 Proceedings of the 7th international conference on Practical Aspects of Declarative Languages
A grammar-based approach to invertible programs
ESOP'10 Proceedings of the 19th European conference on Programming Languages and Systems
Towards a reversible functional language
RC'11 Proceedings of the Third international conference on Reversible Computation
Bootstrapping compiler generators from partial evaluators
PSI'11 Proceedings of the 8th international conference on Perspectives of System Informatics
A Method for Automatic Program Inversion Based on LR(0) Parsing
Fundamenta Informaticae - Program Transformation: Theoretical Foundations and Basic Techniques. Part 1
Hi-index | 0.00 |
We survey fundamental concepts in inverse programming and present the Universal Resolving Algorithm (URA), an algorithm for inverse computation in a first-order, functional programming language. We discuss the principles behind the algorithm, including a three-step approach based on the notion of a perfect process tree, and demonstrate our implementation with several examples. We explain the idea of a semantics modifier for inverse computation which allows us to perform inverse computation in other programming languages via interpreters.