{"title":"Abstract types defined as classes of variables","authors":"D. Parnas, J. Shore, D. Weiss","doi":"10.1145/800237.807133","DOIUrl":"https://doi.org/10.1145/800237.807133","url":null,"abstract":"The concept of “type” has been used without a precise definition in discussions about programming languages for 20 years. Before the concept of user defined data types was introduced, a definition was not necessary for discussions of specific programming languages. The meaning of the term was implicit in the small list of possible types supported by the language. There was even enough similarity between different languages so that this form of definition allowed discussions of languages in general. The need for a widely accepted definition of type became clear in discussions of languages that allow users to add to the set of possible types without altering the compiler. In such languages, the concept of type is no longer implicitly defined by the set of built-in types. A consistent language must be based on a clearer definition of the notion of type than we now have.","PeriodicalId":407603,"journal":{"name":"Conference on Data: Abstraction, Definition and Structure","volume":"22 1","pages":"0"},"PeriodicalIF":0.0,"publicationDate":"1976-03-01","publicationTypes":"Journal Article","fieldsOfStudy":null,"isOpenAccess":false,"openAccessPdf":"","citationCount":null,"resultStr":null,"platform":"Semanticscholar","paperid":"115169309","PeriodicalName":null,"FirstCategoryId":null,"ListUrlMain":null,"RegionNum":0,"RegionCategory":"","ArticlePicture":[],"TitleCN":null,"AbstractTextCN":null,"PMCID":"","EPubDate":null,"PubModel":null,"JCR":null,"JCRName":null,"Score":null,"Total":0}
{"title":"A data type encapsulation scheme utilizing base language operators","authors":"M. Wells, Fred L. Cornwall","doi":"10.1145/800237.807135","DOIUrl":"https://doi.org/10.1145/800237.807135","url":null,"abstract":"A data type encapsulation scheme in which the “space” operations are expressed naturally in terms of the base language operators is described. The scheme results from a conceptual separation of operators and procedure calls in the base language and produces a language of considerable expressive power. The scheme has been implemented and several examples are given.","PeriodicalId":407603,"journal":{"name":"Conference on Data: Abstraction, Definition and Structure","volume":"1 1","pages":"0"},"PeriodicalIF":0.0,"publicationDate":"1976-03-01","publicationTypes":"Journal Article","fieldsOfStudy":null,"isOpenAccess":false,"openAccessPdf":"","citationCount":null,"resultStr":null,"platform":"Semanticscholar","paperid":"126016917","PeriodicalName":null,"FirstCategoryId":null,"ListUrlMain":null,"RegionNum":0,"RegionCategory":"","ArticlePicture":[],"TitleCN":null,"AbstractTextCN":null,"PMCID":"","EPubDate":null,"PubModel":null,"JCR":null,"JCRName":null,"Score":null,"Total":0}
{"title":"Toward foundations for the understanding of type","authors":"D. Ross","doi":"10.1145/942574.807120","DOIUrl":"https://doi.org/10.1145/942574.807120","url":null,"abstract":"I have now written, have available from SofTech, and have submitted for publication elsewhere, the first two of a series of deep philosophical papers [1, 2] about Plex [3]. Among other things, I believe these papers begin to provide a proper foundation for our endeavors in computer science and software engineering. The trend of these developments is indicated in the following, which I call The Proem of Plex1 and Plex2 [“Proem: 1.) A preliminary discourse to a longer piece of writing. 2.) An introductory comment before a speech. 3.) Something that opens or begins.”—Webster's].","PeriodicalId":407603,"journal":{"name":"Conference on Data: Abstraction, Definition and Structure","volume":"29 1","pages":"0"},"PeriodicalIF":0.0,"publicationDate":"1976-03-01","publicationTypes":"Journal Article","fieldsOfStudy":null,"isOpenAccess":false,"openAccessPdf":"","citationCount":null,"resultStr":null,"platform":"Semanticscholar","paperid":"123389279","PeriodicalName":null,"FirstCategoryId":null,"ListUrlMain":null,"RegionNum":0,"RegionCategory":"","ArticlePicture":[],"TitleCN":null,"AbstractTextCN":null,"PMCID":"","EPubDate":null,"PubModel":null,"JCR":null,"JCRName":null,"Score":null,"Total":0}
{"title":"High level domain definition in a relational date base system","authors":"D. McLeod","doi":"10.1145/800237.807117","DOIUrl":"https://doi.org/10.1145/800237.807117","url":null,"abstract":"A relational data base is herein defined as a collection of normalized relations (relations in first normal form) and a collection of domains. A normalized relation may be viewed as a table, wherein each row of the table corresponds to a tuple of the relation, and the entries in a given column belong to the set of values constituting the domain underlying that column. The domains of a data base have an abstract existence apart from the data base relations.\u0000 The data base also includes various types of semantic integrity rules, which specify additional properties of the data in the data base. One such type of semantic integrity rule is the domain definition. A domain definition includes the precise description of the set of values (objects) constituting the domain. In a normalized data base, all domains are sets of atomic data values. A domain definition also includes a specification of the ordering on the values in a domain, for comparability purposes. In addition, a domain definition contains a specification of the action that is to occur if an attempt is made to violate the restriction that every entry in each column of a relation must be from the underlying domain of that column.\u0000 A nonprocedural language permitting the high level expression of domain definitions is defined. Language details and examples are presented, and the syntax and informal semantics of the domain definition language are given. This approach to domain definition is analyzed in terms of its impact on other aspects of data base semantic integrity. The relationship with the data base system in general is outlined. An analysis of intradomain and interdomain comparability is included. An introduction to relevant implementation issues is also presented. Emphasis is placed on a general approach to implementation and implementation techniques, rather than on a specific system.","PeriodicalId":407603,"journal":{"name":"Conference on Data: Abstraction, Definition and Structure","volume":"13 1","pages":"0"},"PeriodicalIF":0.0,"publicationDate":"1976-03-01","publicationTypes":"Journal Article","fieldsOfStudy":null,"isOpenAccess":false,"openAccessPdf":"","citationCount":null,"resultStr":null,"platform":"Semanticscholar","paperid":"125758095","PeriodicalName":null,"FirstCategoryId":null,"ListUrlMain":null,"RegionNum":0,"RegionCategory":"","ArticlePicture":[],"TitleCN":null,"AbstractTextCN":null,"PMCID":"","EPubDate":null,"PubModel":null,"JCR":null,"JCRName":null,"Score":null,"Total":0}
{"title":"A technique for implementing a set processor","authors":"W. T. Hardgrave","doi":"10.1145/800237.807126","DOIUrl":"https://doi.org/10.1145/800237.807126","url":null,"abstract":"Extended set theory is an effective method for describing the complex data structures needed to support large-scale data base applications. This paper describes the incorporation of the salient concepts of extended set theory into a general tool for the design and implementation of large-scale database systems. This tool is called a set processor. This implementation is based on the representation of sets of positive integers as bit strings and the application of the Cauchy/Cantor Diagonal Method.","PeriodicalId":407603,"journal":{"name":"Conference on Data: Abstraction, Definition and Structure","volume":"20 1","pages":"0"},"PeriodicalIF":0.0,"publicationDate":"1976-03-01","publicationTypes":"Journal Article","fieldsOfStudy":null,"isOpenAccess":false,"openAccessPdf":"","citationCount":null,"resultStr":null,"platform":"Semanticscholar","paperid":"126488458","PeriodicalName":null,"FirstCategoryId":null,"ListUrlMain":null,"RegionNum":0,"RegionCategory":"","ArticlePicture":[],"TitleCN":null,"AbstractTextCN":null,"PMCID":"","EPubDate":null,"PubModel":null,"JCR":null,"JCRName":null,"Score":null,"Total":0}
{"title":"Embedding a relational data sublanguage in a general purpose programming language","authors":"E. Allman, M. Stonebraker, Gerald Held","doi":"10.1145/800237.807115","DOIUrl":"https://doi.org/10.1145/800237.807115","url":null,"abstract":"This paper describes EQUEL, a programming language which embeds the relational data sublanguage QUEL into the general purpose programming language “C”. Both QUEL and EQUEL are operational parts of the INGRES relational data base management system at Berkeley. Also briefly described are two operational subsystems written in this combined language. Lastly some of the language oriented shortcomings that have been observed in QUEL and EQUEL are discussed.","PeriodicalId":407603,"journal":{"name":"Conference on Data: Abstraction, Definition and Structure","volume":"1 1","pages":"0"},"PeriodicalIF":0.0,"publicationDate":"1976-03-01","publicationTypes":"Journal Article","fieldsOfStudy":null,"isOpenAccess":false,"openAccessPdf":"","citationCount":null,"resultStr":null,"platform":"Semanticscholar","paperid":"127187266","PeriodicalName":null,"FirstCategoryId":null,"ListUrlMain":null,"RegionNum":0,"RegionCategory":"","ArticlePicture":[],"TitleCN":null,"AbstractTextCN":null,"PMCID":"","EPubDate":null,"PubModel":null,"JCR":null,"JCRName":null,"Score":null,"Total":0}
{"title":"Towards the construction of verifiable software systems","authors":"L. Flon, A. Habermann","doi":"10.1145/800237.807132","DOIUrl":"https://doi.org/10.1145/800237.807132","url":null,"abstract":"Data types are an important design tool because they allow freedom of abstraction. Thus, they are useful for constructing large software systems, including operating systems. It is shown that when dealing with problems of concurrency, the use of path expressions, which are associated with data, makes the task of verification simpler than when the synchronization conditions are associated with programs.","PeriodicalId":407603,"journal":{"name":"Conference on Data: Abstraction, Definition and Structure","volume":"16 10 1","pages":"0"},"PeriodicalIF":0.0,"publicationDate":"1976-03-01","publicationTypes":"Journal Article","fieldsOfStudy":null,"isOpenAccess":false,"openAccessPdf":"","citationCount":null,"resultStr":null,"platform":"Semanticscholar","paperid":"125785438","PeriodicalName":null,"FirstCategoryId":null,"ListUrlMain":null,"RegionNum":0,"RegionCategory":"","ArticlePicture":[],"TitleCN":null,"AbstractTextCN":null,"PMCID":"","EPubDate":null,"PubModel":null,"JCR":null,"JCRName":null,"Score":null,"Total":0}
{"title":"Programming without pointer variables","authors":"R. Kieburtz","doi":"10.1145/800237.807127","DOIUrl":"https://doi.org/10.1145/800237.807127","url":null,"abstract":"The presence of pointer variables in high level programming languages constitutes an artifact originally introduced to support the representation of recursive data structures. Programming practice has come to rely on pointer variables for their originally intended use, and for several others as well. Their use adds to the complexity of stating algorithms by forcing one to conceptualize data representations in which storage addressing is made manifest. In addition, the use of pointer variables allows one to refer to a common data object by a multiplicity of names, a phenomenon we call the alias variable problem, Alias variables make the verification of program behavior substanially more difficult, and frustrate the goals of modular decomposition.\u0000 In this paper, we consider alternatives to the use of pointer variables in programming. One of these alternatives is the inclusion of a class of data abstractions based on recursively defined data types. The representational power of the proposed data types is characterized formally, and some issues of implementation and efficiency of programs are discussed.","PeriodicalId":407603,"journal":{"name":"Conference on Data: Abstraction, Definition and Structure","volume":"144 1","pages":"0"},"PeriodicalIF":0.0,"publicationDate":"1976-03-01","publicationTypes":"Journal Article","fieldsOfStudy":null,"isOpenAccess":false,"openAccessPdf":"","citationCount":null,"resultStr":null,"platform":"Semanticscholar","paperid":"133451693","PeriodicalName":null,"FirstCategoryId":null,"ListUrlMain":null,"RegionNum":0,"RegionCategory":"","ArticlePicture":[],"TitleCN":null,"AbstractTextCN":null,"PMCID":"","EPubDate":null,"PubModel":null,"JCR":null,"JCRName":null,"Score":null,"Total":0}
{"title":"Some desirable properties of data abstraction facilities","authors":"J. Horning","doi":"10.1145/800237.807119","DOIUrl":"https://doi.org/10.1145/800237.807119","url":null,"abstract":"It is currently popular to say that programming languages need “data abstraction facilities,” and to assert that the provision of such facilities would provide conceptual and practical advantages in the domain of data structures akin to the advantages provided by procedures in the domain of computational structures. This note explores some of the implications of this metaphor, without attempting to make it precise. I shall use the term <underline>capsule</underline> to refer to the data analog of <underline>procedure</underline>. [Those who are familiar with the SIMULA <underline>class</underline>, the CLU <underline>cluster</underline>, or the ALPHARD <underline>form</underline>, may use any of these as an approximation to <underline>capsule</underline>; I use a neutral term to avoid implying the details of any particular language.]\u0000 First, what are the advantages provided by procedures (subroutines, functions, macros)? I can think of at least eight (highly interrelated) categories: 1) avoidance of repetition, 2) modular program structure, 3) a basis for structured programming, 4) conceptual units for understanding and reasoning about programs, 5) clearly defined interfaces that may be precisely specified, 6) units of maintenance and improvement, 7) a language extension mechanism, and 8) units for separate compilation. Let us consider each of these in turn.","PeriodicalId":407603,"journal":{"name":"Conference on Data: Abstraction, Definition and Structure","volume":"1 1","pages":"0"},"PeriodicalIF":0.0,"publicationDate":"1976-03-01","publicationTypes":"Journal Article","fieldsOfStudy":null,"isOpenAccess":false,"openAccessPdf":"","citationCount":null,"resultStr":null,"platform":"Semanticscholar","paperid":"131005639","PeriodicalName":null,"FirstCategoryId":null,"ListUrlMain":null,"RegionNum":0,"RegionCategory":"","ArticlePicture":[],"TitleCN":null,"AbstractTextCN":null,"PMCID":"","EPubDate":null,"PubModel":null,"JCR":null,"JCRName":null,"Score":null,"Total":0}
{"title":"Data base abstraction","authors":"J. Smith, DianeC . P. Smith","doi":"10.1145/800237.807123","DOIUrl":"https://doi.org/10.1145/800237.807123","url":null,"abstract":"Real-world systems modelled by data bases are often quite complex. It is essential that the data base be structured in a way which supports a users abstractions about the real-world system. The “relation” data type is introduced as a structuring primitive for relational data bases The relation data type has similar abstraction properties to the “record” data type of PASCAL. A data base defined via relation data types is structured as a hierarchy of n-ary relations. It is shown that the consistency of this hierarchic structure can be preserved during update operations by two simple rules. A top-down methodology for data base design with relation data types is developed. This methodology minimizes the number of details with which a designer must contend at one time. In particular, the methodology allows the separation of decisions concerning abstract structure from decisions concerning key identification. The separation simplifies both types of decision making for the data base designer.","PeriodicalId":407603,"journal":{"name":"Conference on Data: Abstraction, Definition and Structure","volume":"35 1","pages":"0"},"PeriodicalIF":0.0,"publicationDate":"1976-03-01","publicationTypes":"Journal Article","fieldsOfStudy":null,"isOpenAccess":false,"openAccessPdf":"","citationCount":null,"resultStr":null,"platform":"Semanticscholar","paperid":"116214847","PeriodicalName":null,"FirstCategoryId":null,"ListUrlMain":null,"RegionNum":0,"RegionCategory":"","ArticlePicture":[],"TitleCN":null,"AbstractTextCN":null,"PMCID":"","EPubDate":null,"PubModel":null,"JCR":null,"JCRName":null,"Score":null,"Total":0}