| C.A.R. Hoare. Recursive data structures. International Journal of Computer and Information Sciences, 4(2):105--132, 1975. |
....forth. The value functions of POS types are free constructors: they are injective, and distinct value functions never yield the same element. Defining sorts with free constructors is common in functional programming languages and can be traced back to Landin [Lan64] Burstall [Bur69] and Hoare [Hoa75] Types defined with sorts and free constructors are a special case of algebraic types [GTW78, NR85, EM85] which are much more expressive since they provide for equations between constructors. The POS types investigated in this thesis are restricted to free constructors and hence their ....
C. A. R. Hoare. Recursive data structures. International Journal of Computer and Information Sciences, 1975.
....Science, Center of the Danish Research Foundation 1 However, some of the attractive features of e.g. ML are not necessarily exclusive properties of the functional programming paradigm. For example, heapallocated recursive data types could equally well be incorporated into a Pascal like language [2]. In this paper we focus on another often cited advantage of modern functional languages, viz. automatic type inference, and we argue that such a feature may be of significant methodological benefit for also traditional imperative languages. We present an algorithm that allows type inference of ....
C.A.R. Hoare. Recursive data structures. International Journal of Computer and Information Sciences, 4:2:105--132, 1975.
.... Set Constructor for Inductive Sets in Martin Lof s Type Theory Kent Petersson Dan Synek 1 Introduction An important construction in programming languages is the definition facility for inductive data types [Hoa75]. One way to understand this construction is as a very general type constructor for trees. Trees are used for many purposes in computer science, one important example is syntax trees for representing phrases in languages. It is therefore vital that such a type constructor, together with its proof ....
C. A. R. Hoare. Recursive Data Structures. International Journal of Computer and Information Sciences, 4(2):105--132, 1975.
....seem almost to be ascribed the dual properties. However, some of the attractive features of e.g. ML are not necessarily exclusive properties of the functional programming paradigm. For example, heap allocated recursive data types could equally well be incorporated into a Pascal like language [3]. In this paper we focus on another often cited advantage of modern functional languages, viz. automatic type inference, and we argue that such a feature may be of significant methodological benefit for also traditional imperative languages. We present an algorithm that allows type inference of ....
C.A.R. Hoare. Recursive data structures. International Journal of Computer and Information Sciences, 4:2:105--132, 1975.
....view of a data structure gives the approach a markedly di#erent flavor than conventional approaches to program verification, where the emphasis is on developing invariants. For instance, the notion of an instrumentation predicate can be contrasted with that of a datatype invariant (e.g. see [15]) A datatype invariant states a global property of an abstract datatype s instances that holds on entry to and exit from the datatype s operations. An instrumentation predicate captures a local property that can be used to distinguish among some of a datatype s components. As will be ....
C.A.R. Hoare. Recursive data structures. Int. J. of Comp. and Inf. Sci., 4(2):105--132, 1975.
....by invariants describing their shape at stable states, i.e. in between operations on them. These invariants are usually not preserved by the execution of individual program statements, and it is challenging to prove that invariants are reestablished once a sequence of operations is finished [Hoare 1975]. Such invariants are useful for sharpening the results obtained from a tool like LClint, which predicts memory usage bugs [Evans 1996] and for program optimization (e.g. to improve memory locality [Luk and Mowry 1996] In the past two decades, many shape analysis algorithms have been ....
Hoare, C. 1975. Recursive data structures. Int. J. of Comp. and Inf. Sci. 4, 2, 105--132.
....this paper also the quite elegant case notation for the definition of functions over data types. He also discussed the general method of structural induction for proving properties of programs which manipulate such data types. This was further analyzed in Hoare s paper on recursive data structures [13]. Earlier, McCarthy and Painter [27] had used structural induction for proving the correctness of a compiler for arithmetic expressions. 1.3.2 Initial Algebras In category theory inductive definitions are modelled by initial algebras. This is the basis for the algebraic approach to the semantics ....
C. Hoare. Recursive data structures. International Journal of Computer and Information Sciences, 4:105 -- 124, 1975.
.... [18, 17, 10, 19] In fact a lot of the work done within term graph rewriting [6] seems to be aiming at achieving the same results as we are: to provide a convenient yet formal specification method that makes it possible to reason about rather than abstract away from sharing and recursion; cf. [13, 12, 15, 16, 27, 28, 29] and the work of this author [14, 25, 24, part II] A different approach altogether is to consider letrec terms as regular terms in the sense of Courcelle [8] since these infinite terms have a finite number of distinct subterms as we might expect from the fact that it is derived from a finite ....
C. A. R. Hoare, Recursive Data Structures, Journal of Computer and Information Sciences 4 (1975), no. 2, 105--132.
.... problem is to implement a store that meets the following combination of requirements : manage the various memories and storage devices, allocating and recovering space, giving the illusion of an indefinitely large store; provide stable references (needed to implement all recursive types [Hoa75] and to provide persistent block retention semantics for procedures [Joh71] provide a reliable store that offers recovery after various kinds of failure [Bro89] provide mechanisms for concurrent use of data; and . provide a transactional mechanism to allow programs to voluntarily withdraw ....
Hoare, C.A.R. "Recursive Data Structures" International Journal of Computer and Information Science 4,2 (1975) pp 105-132.
.... such as lists and trees, can be defined inductively in most functional languages [6] The recursive types of these structures can be formalized using axiom sets generated automatically from their type definition, which are basically equivalent to Hoare s axioms for recursive data structures [5]. Programs that operate on instances of these types can be expressed as recursive functions in a pure applicative language. Theorems about these functions can be proved using induction principles on the structure of the parameter types of these functions. The Boyer Moore theorem prover [3] for ....
C. A. Hoare. Recursive Data Structures. Journal of the ACM, 4(2):105--132, June 1975.
.... calculus originates with Wadsworth [22] and has been investigated by several authors, notably Staples [21] We comment further on this in the conclusion. It may be seen as a formalisation of the idea of implementing recursion by cyclic structures that is part of the folklore of computer science [15, 9]. It is interesting that in spite of this the semantic properties of the idea have not been investigated in depth explicitly perhaps this is because the extensional behaviour of cyclic structure and fixed point induction are so similar (as long as only terminating computations are considered ....
C. A. R. Hoare, Recursive Data Structures, Journal of Computer and Information Sciences 4 (1975), no. 2, 105--132.
....are all formalized by algebraic axioms. Types constructed using union (labelled disjoint sum) struct and singleton along with the devices of parameterization and well founded recursion are formalized using axioms sets that are basically equivalent to Hoare s axioms for recursive data structures [10]. We will refer to these types as recursive types. Finite set theory cannot be captured in the framework of recursive types. In our work we use a finite set theory based explicitly on a set of axioms as similar to recursive type axioms as possible [16] Let t 1 (ff 1 ; ff n ) and t 2 (fi 1 ....
C. A. Hoare. Recursive Data Structures. Journal of the ACM, 4(2):105--132, June 1975.
....form of variants; and ffl they facilitate communication among a system s designers, builders and users via related textual and diagrammatic representations. The programming languages have supported a model of reference and identity and seen it as an important modelling tool for many years [ Hoare, 1975; Atkinson, 1978 ] They have had a concern for specifying the relationship between code and data, for example, in Fortran subprograms and in modules in many languages. Higher order languages 1 , languages with modules and languages with abstract data types all provide a means of describing a ....
C.A.R. Hoare. Recursive Data Structures. International Journal of Computer and Information Science, 4(2):105--132, 1975.
....by invariants describing their shape at stable states, i.e. in between operations on them. These invariants are usually not preserved by the execution of individual program statements, and it is challenging to prove that invariants are reestablished once a sequence of operations is finished [9]. In the past two decades, many shape analysis algorithms have been developed that can automatically identify shape invariants in some programs that manipulate heap allocated storage [11, 12, 15, 10, 2, 21, 1, 16, 22, 19] A common feature of these algorithms is that they represent heap cells by ....
C.A.R. Hoare. Recursive data structures. Int. J. of Comp. and Inf. Sci., 4(2):105--132, 1975.
....this is an obvious idea most authors seem to prefer using stores, environment frames, substitutions, etc. However, the idea has been around since [Wad71] who used it to implement the calculus with acyclic sharing of common subterms. Modeling recursion by cyclic sharing was suggested for data by [Hoa75] and for functions by [Hug82] This is also where the intuition of why graph reduction provides a useful model for lazy evaluation of functional languages is presented just keep all the subexpressions around, updating each to its proper value only as needed although it had to some extent ....
C. A. R. Hoare. Recursive data structures. Journal of Computer and Information Sciences, 4, pp. 105--132, 1975.
.... a fundamental part of typed functional languages such as Standard ML [11] Haskell [14] Miranda [23] Opal [7] or the Calculus of Inductive Constructions [15] They allow the definition of tree like 1 dynamic data structures without the explicit use of pointers and memory management operations [13] and unify enumeration types, disjoint unions (sum types) and recursive types into one uniform concept. Usually, the constructors can be used in patterns to decompose terms into their building components resulting in more readable function definitions [20, 24] Furthermore, structural induction ....
....implicitly from executable specifications or Tecton [16] which does not provide both structures and signatures. Also in the literature about recursive datatypes the authors use sometimes the phrase word algebra for describing datatypes but do not use any explicit term algebra constructor [13, 22]. We first discussed the shortcomings of using free datatypes for constructing free algebras. Then, we showed that all these drawbacks can be eliminated by introducing the term algebra constructor free as an explicit language construct. In particular, all identifier value bindings are now ....
C.A.R. Hoare. Recursive data structures. International Journal of Computer and Information Sciences, June 1975.
....requires that constructs used to organise concurrency, transactions and recovery are equally available for short term and long lived data. The main consequence of persistence orthogonality is that all types have to be supported over the full range of lifetimes. This includes the recursive types [Hoare, 1975] which have references in their implementations. In consequence providing long lived and reliable identity was one of the principle challenges facing PPL implementors from the beginning. 3 PERSISTENT APPLICATION SYSTEMS Persistent Application Systems (PAS) are a class of applications in which the ....
.... problem is to implement a store that meets the following combination of requirements: ffl manage the various memories and storage devices, allocating and recovering space, giving the illusion of an indefinitely large store; ffl provide stable references (needed to implement all recursive types [Hoare, 1975] and to provide persistent block retention semantics for procedures [Johnston, 1971] ffl provide a reliable store that offers recovery after various kinds of failure [Brown, 1988] ffl provide mechanisms for concurrent use of data; and ffl provide a transactional mechanism to allow programs ....
C.A.R. Hoare. Recursive Data Structures. International Journal of Computer and Information Science, 4(2):105--132, 1975.
....languages such as C or Pascal require the use of a special annotation in the type definition (e.g. LIST) to indicate the presence of a pointer to a given type. The dereferencing operator and this annotation bring to the surface an aspect of the implementation which would ideally be hidden [Hoare75] A recursive type does not restrict the size (length) of the instances. This introduces the issue of dynamic structures whose size is only known at run time and may vary during the course of program execution. A list defined in this way can be viewed either as a linked list or as a recursive ....
....kinds of data types can be captured at the lower level of abstraction of imperative languages, the different ways they have been characterized in formal declarative languages is now examined. This essentially involves avoiding the explicit use of pointers, as is done in Glide and is advocated in [Hoare75] Section 5.2 examines functional languages, Section 5.3 abstract data types, Section 5.4 data base models, and Section 5.5 notes a few other areas in which this issue has also been addressed. 5.2 Functional Languages Functional languages (such as ML, Miranda, Pure Lisp, etc. allow a more ....
C.A.R. Hoare. Recursive data structures. Intl. Journal of Computing and Information Sciences. Vol. 4, No. 2 1975.
No context found.
C.A.R. Hoare. Recursive data structures. International Journal of Computer and Information Sciences, 4(2):105--132, 1975.
No context found.
Hoare, C.: Recursive data structures. Int. J. of Comp. and Inf. Sci. 4 (1975) 105--132
No context found.
C. A. R. Hoare. Recursive data structures. International Journal of Computer & Information Sciences, 4(2):105--132, June 1975.
No context found.
C. A. R. Hoare. Recursive data structures. International Journal of Computer & Information Sciences, 4(2):105--132, June 1975.
No context found.
C.A.R. Hoare. Recursive data structures. Int. J. of Comp. and Inf. Sci., 4(2):105--132, 1975.
No context found.
C.A.R. Hoare. Recursive data structures. Int. J. of Comp. and Inf. Sci., 4(2):105--132, 1975.
No context found.
Hoare, C. A. R. 1975. Recursive data structures. International Journal of Computer and Information Sciences, 4, 2 (June), 105--32.
First 50 documents
Online articles have much greater impact More about CiteSeer.IST Add search form to your site Submit documents Feedback
CiteSeer.IST - Copyright Penn State and NEC