| John Guttag. Abstract data types and the development of data structures. Commun. ACM, 20(6):396--404, 1977. |
....basis, which could be used for the description and analysis of complex systems. As a design choice, Lotos consists of two orthogonal sub languages: The data part of Lotos is dedicated to the description of data structures. It is based on the well known theory of algebraic abstract data types [Gut77] more specifically on the ActOne specification language [dMRV92] The control part of Lotos is based on the process algebra approach for concurrency, and appears to combine the best features of Ccs [Mil89] and Csp [Hoa85] micro Common Representation Language Language Of Temporal Ordering ....
J. Guttag. Abstract Data Types and the Development of Data Structures. Communications of the ACM, 20(6):396--404, June 1977.
....is excellent. Andr81 Andr83 Bern81 Brin72 Brin73 Brin78 Broo84 Dijk75 Hoar74 Hoar78 Lamp83 Nier87b Shoc82 Silb84 Upfa84] Data Abstraction: These papers explain various aspects of data abstraction. See also papers on languages with data abstraction mechanisms, and some of the papers on types. [Gutt77 Ledg77 Smit77a Smit77b] Distribution: Papers on distributed problems are also mixed in with those on concurrency, reliability, and transactions. Bada86 Jaco86 Tane85] Object management: These papers talk about object oriented databases and databases for managing objects. The Oppen paper discusses object naming ....
J. Guttag, "Abstract Data Types and the Development of Data Structures", CACM, vol. 20, no. 6, pp. 396-404, June 1977.
....1 Introduction An object and its associated operations may be specified in many ways. One way is to give an abstract representation of the object data structure (viz. representing a queue by a sequence) and the effects of various operations on this abstract representation [3,4,5] Another way [2] is to leave the representation aspects unspecified but to give a set of equations that relate the effects of various operations (the equations define a congruence relation in a term algebra) The common goal of a specification, however, is to serve as a legal document that spells out a contract ....
....b[i Gamma 1] to b[i] provided the latter is OE. Program bag fof size N , N 0g initially h[ i : 0 i N 1 : b[i] OEi assign h[ i : 0 i N 1 : b[i Gamma 1] b[i] OE; b[i Gamma 1] if b[i] OEi end fbagg 8 Evaluation of the Proposed Methodology Equational notation, as in [2], is generally preferred for specifications because it enables a programmer to separate two concerns: deducing facts about an object independent of its implementation, and implementing the given equations to minimize time or storage. As we have argued, the objects that are concurrently accessed ....
John Guttag, "Abstract Data Types and the Development of Data Structures," C.ACM, 20:6, pp. 396--404, June 1977.
....W be the set containing all the operation sequences consisting of constructors or transformers of S. S is sufficiently complete, if for every sequence w in W , the result of applying each observer of S to w is defined. Discussion of how to construct useful algebraic specifications can be found in [14, 15, 1]. Most algebraic specification languages use a functional notation. For convenience, we have designed a specification language, LOBAS, whose syntax is similar to OO programming language syntax [6] The syntactic part of a LOBAS specification includes an export section which lists operations ....
....Zilles pointed out that it is possible to specify a data abstraction by specifying the intended inputoutput behavior for each of its operations individually, but doing so is usually cumbersome and may lead to overspecification of the underlying representation of the data. Instead, they and others [11, 14, 17] proposed algebraic specifications of abstract data types (ADTs) which define the intended behavior of an ADT by giving axioms describing the interaction of operations. Similarly, it is possible to test a class by testing each of its methods individually, treating each as a function mapping some ....
J. J. Guttag. Abstract data types and the development of data structures. Communications of the ACM, 20(6):396--404, June 1977.
....abstraction by describing the effects of individual operations. Rather, the behavior of a data abstraction is often specified by describing the observable effects of sequences of operations, or by relating the results of different sequences of operations, as in algebraic specifications [GHW85, Gut77] For the case in which the local data encapsulated in an Ada package is used to represent an instance of an abstract data type, Anna provides a way to denote the whole internal state of a package and to denote the state of a package after a sequence of operations. Example 4 Anna package axioms ....
....and POP are inverses. Ada allows a user written function to override the equality operation denoted by = so this assertion could compare the states after application 9 of an appropriate abstraction function, as is usual for describing correctness conditions of abstract data type implementations [Gut77] The Anna axiom notation, together with quantifiers, is expressive enough to state conditions for which a straightforward translation into a run time check would be unacceptable. Example 5 Universal quantification in an Anna axiom [Luc90, pg 159] for all A, B, N : INTEGER = A mod B = ....
John Guttag. Abstract data types and the development of data structures. Communications of the ACM, 20(6):396--404, June 1977. 52
....have some means, formal or informal, of specifying the abstract data type which the class is intended to implement. We now give an overview of a formal specification technique known as algebraic specification, upon which some of our testing techniques are based. Algebraic specification techniques [GOG78, GUT77, LIS75] describe a data abstraction by describing the interaction between the operations, without reference to the underlying representation. An algebraic specification of an ADT has a syntactic part and a semantic part. The syntactic part is a list of function names, and their signatures (the types ....
....Thus, the fact that duplicates are present can never affect the result of a sequence of operations ending in an observer, so this ADT behaves like a set, rather than a bag. Our notion of test cases for data abstractions is inspired by the formal semantics of algebraic specifications developed by [GOG78, GUT77], which involves modelling a specification by a heterogeneous word algebra. Roughly speaking, two sequences S1 and S2 of operations returning a value of type T are equivalent if, for any observer O, we can use the axioms as rewrite rules, to transform S1.O to S2.O. For example, ....
J.V. Guttag, "Abstract data types and the development of data structures", CACM 20, 6, June 1977.
....was introduced in the late 60 s by the Simula67 language and so as to improve the modelling of real world entities in the field of simulation: an object is a collection of semantically related variables and of all the functions that manipulate them. In the mid 70 s the abstract data type (ADT) [19, 20] was defined by binding data to the operations. An object can be seen as an implementation of an ADT, which acts as a formal specification of it. 2 Robot Milling machine Part buffer Robot Inspection machine Part buffer Robot Robot cart Conveyor Milling station Inspection ....
GV. Guttag, Abstract data types and the development of data structures, Communications of the ACM, 20(6):396--404, June 1977
....of T and can be regarded as axioms involving both the symbols of S and T. Similarly the representation part describes the abstract sorts in terms of the concrete ones, which can be abstracted to axioms introducing the new sorts and capturing (some of) the socalled representation invariants [20, 23]. With this abstraction in mind, we are ready to describe this situation in terms of formal specifications, ie, logical theories presented by (finite sets of) axioms [44, 41] One expands the language of the concrete specification T by adding symbols to correspond to the abstract ones in S, ....
J. Guttag. Abstract data types and the development of data structures. Comm. Assoc. Comput. Mach., 20(6), 1977.
....inductive theorems from an algebraic specification. Definition: An equality theory E is sufficiently complete for the set C of constructors if, for every ground term t, there is ground term s constructed from C such that s =E t. 3 The notion of sufficient completeness was introduced in Guttag [8]. When a set of equations is both consistent and sufficiently complete it may be regarded as a reasonable specification of the defined functions. Thus it is important in algebraic specification to be able to prove that an equational theory is sufficiently complete. Unfortunately, in general this ....
J.V. Guttag, Abstract Data Types and the Development of Data Structures. Communications of the ACM, 20(6), 396--404, 1977.
....meaningful and is hence left out. We do not know of previous work which discusses this style of object abstraction in a strongly typed framework. Abstraction functions from type implementations to type de nitions were rst introduced in [9] and were further developed in algebraic data type theory [7, 20]. These works concentrate on correctness proofs of a data type s implementation with respect to its speci cation; the case where the interface (i.e speci cation) and the implementation are parts of the same program is not considered. Programming languages such as CLU [13] which incorporate ....
Guttag J.V., Abstract data types and the development of data structures. Comm. ACM 20(6), pages 396-404, 1977.
....(figure 8) A QUEUE is completely concrete: the type Queue, the constant empty, and the functions put, get and is empty are all defined explicitly. It is not clear that the constant empty is required, but we will need it later for initialising the corresponding imperative queue. We follow Guttag [15] in using the term type of interest for the type Queue in A QUEUE. Report No. 153, December 1998 UNU IIST, P.O. Box 3058, Macau The concrete applicative specification 11 scheme A QUEUE(E : ELEM) class type Queue = E:Elem value empty : Queue = hi; put : E:Elem Theta Queue Queue ....
J.V. Guttag. Abstract data types and the development of data structures. Communications of the ACM, 20(6), June 1977.
....of parallel code is highly desirable since code maintenance and reuse is one of the strengths of modularisation and is also one of the great weaknesses of parallel systems at the present time. The value of abstraction as a mechanism in software development has been recognised for a long time [Gut77, GH78] but due to the fact that parallel code has to be targetted on a wide range of different architectures it has proved much more difficult to provide a satisfactory abstraction mechanism for parallel software development. 18 Once such a mechanism is available, however, all the effort that ....
J. V. Guttag. Abstract Datatypes and the Development of Data Structures. Communications of the ACM, 20:397--404, 1977.
....basis, which could be used for the description and analysis of complex systems. As a design choice, Lotos consists of two iorthogonalj sub languages: The data part of Lotos is dedicated to the description of data structures. It is based on the wellknown theory of algebraic abstract data types [Gut77] more specically on the ActOne speci cation language [dMRV92] The control part of Lotos is based on the process algebra approach for concurrency, and appears to combine the best features of Ccs 2 [Mil89] and Csp 3 [Hoa85] Lotos has been applied to describe complex systems formally, for ....
J. Guttag. Abstract Data Types and the Development of Data Structures. Communications of the ACM, 20(6):396404, June 1977.
.... Some sophisticated results on computability for initial and nal algebras appear in [81] both initiality and nality results compatible with the hidden paradigm were proved in [48] This ood of work on nality and behavioral abstraction validates some intuitions expressed long ago by Guttag [64,65]. However, we wish to emphasize that hidden algebra does not embrace nal semantics, but rather takes a loose approach, modulo protection of a given algebra of data values. The hidden approach seems the rst to address both concurrency and e ective proof techniques for systems of objects within ....
....hidden theory P = H; E) then: 1 A visible term t is de ned i E j t = d for some d 2 D. 2 P is lexic i all visible ground terms are de ned. 3 P is lexic if it has no hidden (generalized) constants. 2 Having no unde ned ground terms corresponds to Guttag s notion of sucient completeness [65]. However, not only do we not require this condition, but we claim that unde ned terms are very useful in system development, and even at run time. Instead of having explicitly to say that something is unde ned, one simply does not de ne it; then it can have any value consistent with the given ....
John Guttag. Abstract data types and the development of data structures. Communications of the Association for Computing Machinery, 20:297-404, June 1977.
....by the scale and complexity of computer systems. Work on structured programming in the 1960s [Dijkstra 72] set out many of the techniques now recognised as essential to the construction of maintainable programs. This work helped to formulate the concept of data abstraction [Liskov 74, Guttag 77] which is the central principle behind the object oriented programming [Cox 86, Goldberg 83] paradigm. In parallel with programming language development, techniques for the persistent storage of data have developed to cope with the greatly increased volume of 14 data maintained by computer ....
....map the semantics between simple database data models and the richer conceptual models within the application. The domain semantics are divided between the database and application so some of the semantics are hidden and duplicated in different applications. No data abstraction [Liskov 74, Guttag 77] is provided. Relations structures are visible to applications, hence preservation of the semantics of operations on instances of types is unenforcable. It is impossible to associate functional properties with data types, through which access to instances can be controlled and ....
Guttag, J.V.: 'Abstract Data Types and the Development of Data Structures', Communications of the ACM, 20 (6), pp 396 - 405, 1977.
....terminating and completely defined (i.e. the patterns have to be exhaustive) In other words, the corresponding term rewriting system R op terminates and every non constructor ground term is R op reducible. Due to the special form of R op , this is equivalent to sufficient completeness [33] (i.e. to the requirement that for every ground term t there exists a constructor ground term q with t R op q) As every ground term evaluates to a (unique) constructor ground term, all algorithms compute total functions. Now our goal is to verify statements concerning a given collection of ....
Guttag, J. V., `Abstract Data Types and the Development of Data Structures', Comm. ACM 20, 396-404 (1977).
....deep changes to the model as requirements evolve. 34 2.2.2 Data Structure Oriented Methods 2.2.2. 1 Principles The origins of the data structure oriented paradigm can be found in the technical discussions of the foundation of data structures in [Tre76] and [Hor78] and of data abstraction in [Gut77]. They have characteristics of both function and object oriented approaches. The data structure oriented methods represent the requirements of the system focusing on the data structure instead of the data flow. Data structure oriented methods present the static view of the data structures, ....
Guttag, J.V. Abstract Data Types and the Development of Data Structures. Communications of ACM, pp. 396-405, June 1977.
....irrelevant details. As a design choice, Lotos consists of two orthogonal sub languages: Release 2.0 9 February 29, 2000 10 CHAPTER 1. INTRODUCTION The data part of Lotos is dedicated to the description of data structures. It is based on the well known theory of algebraic abstract data types [Gut77] more specifically on the ActOne specification language [dMRV92] The control part of Lotos is based on the process algebra approach for concurrency, and appears to combine the best features of Ccs [Mil89] and Csp [Hoa85] Lotos has been applied to describe complex systems formally, for ....
J. Guttag. Abstract Data Types and the Development of Data Structures. Communications of the ACM, 20(6):396--404, June 1977.
....following overview be suOEcient to understand the essence of the forthcoming excerpts. Tutorials for Lotos are available, e.g. BB88, Tur93] As a design choice, Lotos consists of two iorthogonalj sub languages: The data part is based on the well known theory of algebraic abstract data types [Gut77] more specically on the Act One specication language [dMRV92] Data types are dened using an equational formalism, which we will not present here. As a matter of fact, most data types of our specication are dened in a much more concise and readable extended syntax [Pec96] The control part is ....
J. Guttag. Abstract Data Types and the Development of Data Structures. Communications of the ACM, 20(6):396404, June 1977.
No context found.
John Guttag. Abstract data types and the development of data structures. Commun. ACM, 20(6):396--404, 1977.
No context found.
Guttag J, `Abstract data types and the development of data structures', Communications of the ACM, 20(6):396-404, 1977
No context found.
J. Guttag. Abstract data types and the development of data st ructures. Communications of the ACM, 20(6), June 1977.
No context found.
Guttag J, `Abstract data types and the development of data structures', Communications of the ACM, 20(6):396-404, 1977
No context found.
J. Guttag. Abstract Data Types and the Development of Data Structures. Communications of the ACM, 20(6):396--404, June 1977.
No context found.
Guttag, J., "Abstract Data Types and the Development of Data Structures,", Communications of the ACM, 20(6), Association for Computing Machinery, New York, 1977, pp. 396-404.
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