Journal Article10.1007/BF00976239
Recursive data structures
179
TL;DR: A pleasing notation by which treelike data structures can be declared and processed is suggested; it gives the axioms which specify their properties, and an efficient implementation method is suggested.
read more
Abstract: The power and convenience of a programming language may be enhanced for certain applications by permitting treelike data structures to be defined by recursion. This paper suggests a pleasing notation by which such structures can be declared and processed; it gives the axioms which specify their properties, and suggests an efficient implementation method. It shows how a recursive data structure may be used to represent another data type, for example, a set. It then discusses two ways in which significant gains in efficiency can be made by selective updating of structures, and gives the relevant proof rules and hints for implementation. The examples show that a certain range of applications in symbol manipulation can be efficiently programmed without introducing the low-level concept of a reference into a high-level programming language.
read more
Chat with Paper
AI Agents for this Paper
Find similar papers on Google Scholar, PubMed and Arxiv
Write a critical review of this paper
Analyze citations of this paper to find unaddressed research gaps
Citations
•Book
Programming in Martin-Lo¨f's type theory: an introduction
Bengt Nordström,Kent Petersson,Jan M. Smith +2 more
- 19 Jul 1990
TL;DR: Polymorphic sets: the semantics of the judgement forms general rules enumeration sets Cartesian product of a family of sets equality sets natural numbers lists cartesian product two sets disjoint union of two sets Disjoint Union of small sets (the first universe) well-orderings general trees.
573
Programming in an Interactive Environment: the ``Lisp'' Experience
TL;DR: The paper summarazes the LISP style of interactive programming for readers outside the LisP community, describes those propertms of LisP systems that were essential for the development of this style, and discusses some current and not yet resolved issues.
200
Automatic verification of database transaction safety
Tim Sheard,David Stemple +1 more
TL;DR: This work reports on a system that performs automatic verification at compile-time that transactions cannot, if run atomically, disobey integrity constraints for a robust set of constraint and transaction classes.
158
Reasoning about recursively defined data structures
Derek C. Oppen
- 01 Jan 1978
TL;DR: The first- order theory of recursively defined data structures, in particular the first-order theory of LISP list structure (the theory of CONS, CAR, CDR), is shown to be decidable but not elementary recursive.
110
Inheritance hierarchies: Semantics and unification
Gert Smolka,Hassan Aït-Kaci +1 more
TL;DR: A unitary unification algorithm is specified by a set of simplification rules and proved its soundness and completeness with respect to the model-theoretic semantics and is presented as constraint solving.
80
References
Recursive functions of symbolic expressions and their computation by machine, Part I
TL;DR: A programming system called LISP (for LISt Processor) developed for the IBM 704 computer by the Artificial Intelligence group at M.I.T. was designed to facilitate experiments with a proposed system called the Advice Taker, whereby a machine could be instructed to handle declarative as well as imperative sentences and could exhibit "common sense" in carrying out its instructions.
Recursive Functions of Symbolic Expressions and their Computation by Machine
John J. McCarthy
- 01 Mar 1959
TL;DR: A programming system called LISP (for LISt Processor) has been developed for the IBM 704 computer by the Artificial Intelligence group at M.I.T. as mentioned in this paper, where a machine could be instructed to handle declarative as well as imperative sentences and could exhibit "common sense" in carrying out its instructions.
1.1K
Proof of correctness of data representations
TL;DR: In this paper, a powerful method of simplifying the proofs of program correctness is suggested; and some new light is shed on the problem of functions with side-effects, and a new method for simplifying program correctness proofs is proposed.
1K
•Book
Notes on structured programming
Edsger W. Dijkstra
- 01 Jan 1970
TL;DR: The final author version and the galley proof are versions of the publication after peer review that features the final layout of the paper including the volume, issue and page numbers.
1K
A Basis for a Mathematical Theory of Computation
John J. McCarthy
- 01 Jan 1962
TL;DR: The chapter explores what practical results can be expected from a suitable mathematical theory and presents several descriptive formalisms with a few examples of their use and theories that enable to prove the equivalence of computations expressed in these formalisms.
Related Papers (5)
Edsger W. Dijkstra
- 01 Jan 1976
John J. McCarthy
- 01 Jan 1962
Patrick Cousot,Radhia Cousot +1 more
- 01 Jan 1979