Formalization of Properties of Functional Programs
Journal of the ACM (JACM)
Toward automatic program synthesis
Communications of the ACM
Reduction languages for reduction machines
ISCA '75 Proceedings of the 2nd annual symposium on Computer architecture
Translating recursion equations into flow charts
STOC '70 Proceedings of the second annual ACM symposium on Theory of computing
Implementation and applications of Scott's logic for computable functions
Proceedings of ACM conference on Proving assertions about programs
Some transformations for developing recursive programs
Proceedings of the international conference on Reliable software
The Calculi of Lambda Conversion. (AM-6) (Annals of Mathematics Studies)
The Calculi of Lambda Conversion. (AM-6) (Annals of Mathematics Studies)
A system architecture for the concurrent evaluation of applicative program expressions
ISCA '83 Proceedings of the 10th annual international symposium on Computer architecture
Cooperating Reduction Machines
IEEE Transactions on Computers
Hi-index | 0.00 |
A computer architecture which is centered around the transformation of expressions facilitates the generation of programs from definitions, axioms, and theorems. It is shown that some of the well known methods to construct correct programs are directly available on this novel computer. Due to its novel architecture the need for support by large software systems and entailing systems size is diminished or has disappeared. Using this novel computer employing a lambda reduction language as machine language it is demonstrated how suitably chosen invariants get transformed into an executable program which is correct by construction. The various types of information which get incorporated into the result, as well as those parts of the original expression denoting the invariant which get expelled because they are constant, are discussed. It is demonstrated why the above mentioned novel computer architecture frees the user from being concerned with inessential problems, while on the other hand the use of higher level programming languages introduces additional problems due to the semantics of these languages. They necessitate considerations alien to solving the original problem. Crossreferences to other disciplines are pointed out which employ similar concepts.