ACM Transactions on Programming Languages and Systems (TOPLAS)
Communications of the ACM
Communications of the ACM
Lucid, a nonprocedural language with iteration
Communications of the ACM
Symbolic execution and program testing
Communications of the ACM
The new math of computer programming
Communications of the ACM
Monitors: an operating system structuring concept
Communications of the ACM
Fixpoint approach to the theory of computation
Communications of the ACM
Program development by stepwise refinement
Communications of the ACM
Letters to the editor: go to statement considered harmful
Communications of the ACM
An axiomatic basis for computer programming
Communications of the ACM
Correspondence between ALGOL 60 and Church's Lambda-notation: part I
Communications of the ACM
The next 700 programming languages
Communications of the ACM
Solution of a problem in concurrent programming control
Communications of the ACM
Functional Programming
Operating system principles
A Discipline of Programming
PASCAL user manual and report
Proceedings of a Symposium on Language Design and Programming Methodology
Proceedings of the International Colloquium on Formalization of Programming Concepts
Program production by successive transformation
Language Hierarchies and Interfaces, International Summer School
Introduction to relational programming
FPCA '81 Proceedings of the 1981 conference on Functional programming languages and computer architecture
Recursion as a Programming Tool
Recursion as a Programming Tool
Global variable considered harmful
ACM SIGPLAN Notices
Scarcely variabled programming and Pascal
ACM SIGPLAN Notices
LISP 1.5 Programmer's Manual
A Technique of Algorithm Construction on Sequences
IEEE Transactions on Software Engineering
Theory of linear equations applied to program transformation
IJCAI'83 Proceedings of the Eighth international joint conference on Artificial intelligence - Volume 1
Hi-index | 0.00 |
Programming can be done using procedural definitions or functional definitions. Procedures involve variables and dynamic concepts and are not the natural tools for defining computations. This dynamism of procedural programs is a hindrance to program productivity and program reliability. Functions are natural means of defining computations and do not involve variables, though their recursive formulations may be as bad as dynamic procedural iterations. An alternative style of programming is proposed here for defining functions without using recursion. This style uses abstract sequences defined using recurrence relations. It is shown that the abstract sequences aid reasoning about programs as their properties can be shown using elementary induction principles. They correspond to the trajectories of procedural programs in their state spaces and so can also be used to semantically characterize procedural loops.