The promotion and accumulation strategies in transformational programming
ACM Transactions on Programming Languages and Systems (TOPLAS) - Lecture notes in computer science Vol. 174
Computer algebra: symbolic and algebraic computation (2nd ed.)
Computer algebra: symbolic and algebraic computation (2nd ed.)
Programming with sets; an introduction to SETL
Programming with sets; an introduction to SETL
Making data structures persistent
STOC '86 Proceedings of the eighteenth annual ACM symposium on Theory of computing
Semantically based programming tools
Proc. of the international joint conference on theory and practice of software development (TAPSOFT) Berlin, March 25-29, 1985 on Mathematical foundations of software development, Vol. 1: Colloquium on trees in algebra and programming (CAAP'85)
Computational problems related to the design of normal form relational schemas
ACM Transactions on Database Systems (TODS)
A Machine-Oriented Logic Based on the Resolution Principle
Journal of the ACM (JACM)
A Transformation System for Developing Recursive Programs
Journal of the ACM (JACM)
Program Improvement by Source-to-Source Transformation
Journal of the ACM (JACM)
Programming by Refinement, as Exemplified by the SETL Representation Sublanguage
ACM Transactions on Programming Languages and Systems (TOPLAS)
An Automatic Technique for Selection of Data Representations in SETL Programs
ACM Transactions on Programming Languages and Systems (TOPLAS)
ACM Transactions on Programming Languages and Systems (TOPLAS)
Finite Differencing of Computable Expressions
ACM Transactions on Programming Languages and Systems (TOPLAS)
Experience with the SETL Optimizer
ACM Transactions on Programming Languages and Systems (TOPLAS)
Computer-assisted microanalysis of programs
Communications of the ACM
Abstract data types and software validation
Communications of the ACM
Automatic data structure choice in a language of very high level
Communications of the ACM
Program development by stepwise refinement
Communications of the ACM
A relational model of data for large shared data banks
Communications of the ACM
An axiomatic basis for computer programming
Communications of the ACM
Generalized common subexpressions in very high level languages
POPL '77 Proceedings of the 4th ACM SIGACT-SIGPLAN symposium on Principles of programming languages
Correctness-preserving program transformations
POPL '75 Proceedings of the 2nd ACM SIGACT-SIGPLAN symposium on Principles of programming languages
The Computer from Pascal to Von Neumann
The Computer from Pascal to Von Neumann
A Discipline of Programming
Computer experiments with the REVE term rewriting system generator
POPL '83 Proceedings of the 10th ACM SIGACT-SIGPLAN symposium on Principles of programming languages
Program improvement by internal specialization
POPL '81 Proceedings of the 8th ACM SIGPLAN-SIGACT symposium on Principles of programming languages
Inductively computable constructs in very high level languages
POPL '79 Proceedings of the 6th ACM SIGACT-SIGPLAN symposium on Principles of programming languages
Universality of data retrieval languages
POPL '79 Proceedings of the 6th ACM SIGACT-SIGPLAN symposium on Principles of programming languages
Automatic Program Construction Techniques
Automatic Program Construction Techniques
Algorithmic Language and Program Development
Algorithmic Language and Program Development
The Design and Analysis of Computer Algorithms
The Design and Analysis of Computer Algorithms
EUROCAL '85 Research Contributions from the European Conference on Computer Algebra-Volume 2
Relational queries computable in polynomial time (Extended Abstract)
STOC '82 Proceedings of the fourteenth annual ACM symposium on Theory of computing
Program refinement by transformation
ICSE '81 Proceedings of the 5th international conference on Software engineering
High level operations in automatic programming
Proceedings of the ACM SIGPLAN symposium on Very high level languages
Calculating properties of programs by valuations on specific models
Proceedings of ACM conference on Proving assertions about programs
Induction variables in very high level languages
POPL '76 Proceedings of the 3rd ACM SIGACT-SIGPLAN symposium on Principles on programming languages
IEEE Software
Fixed-point extensions of first-order logic
SFCS '85 Proceedings of the 26th Annual Symposium on Foundations of Computer Science
Synthesizing least fixed point queries into non-recursive iterative programs
IJCAI'83 Proceedings of the Eighth international joint conference on Artificial intelligence - Volume 1
Program synthesis from natural deduction proofs
IJCAI'79 Proceedings of the 6th international joint conference on Artificial intelligence - Volume 1
SDE 4 Proceedings of the fourth ACM SIGSOFT symposium on Software development environments
KIDS: A Semiautomatic Program Development System
IEEE Transactions on Software Engineering
Towards increased productivity of algorithm implementation
SIGSOFT '93 Proceedings of the 1st ACM SIGSOFT symposium on Foundations of software engineering
High level reading and data structure compilation
Proceedings of the 24th ACM SIGPLAN-SIGACT symposium on Principles of programming languages
Automated development of software for program analysis and transformation
ACM SIGSOFT Software Engineering Notes
Higher-Order and Symbolic Computation
Higher-Order and Symbolic Computation
APLAS'10 Proceedings of the 8th Asian conference on Programming languages and systems
Proceedings of the 32nd ACM SIGPLAN conference on Programming language design and implementation
Hi-index | 0.00 |
This paper illustrates a fully automatic top-down approach to program development in which formal problem specifications are mechanically translated into efficient RAM code. This code is guaranteed to be totally correct and an upper bound on its worst case asymptotic running time is automatically determined. The user is only required to supply the system with a formal problem specification, and is relieved of all responsibilities in the rest of the program development process. These results are obtained, in part, by greatly restricting the system to handle a class of determinate, set theoretic, tractable problems. The most essential transformational techniques that are used are fixed point iteration, finite differencing, and data structure selection. Rudimentary forms of these techniques have been implemented and used effectively in the RAPTS transformational programming system. This paper explains the conceptual underpinnings of our approach by considering the problem of attribute closure for relational databases and systematically deriving a program that implements a linear time solution.