Adaplex(ID:2658/ada019)

An extension of Ada for functional databases 


An extension of Ada for functional databases, based on the Semantic Hierarchy model and on DATAPLES data systematic.


Structures:
Related languages
Ada 83 => Adaplex   Extension of
DAPLEX => Adaplex   Implementation
Adaplex => Galileo   Influence

References:
  • Chan, Arvola, et al. "The Design of an Ada Compatible Local Database Manager (LDM)" Computer Corporation of America CCA-81-09 for DARPA/Naval Electronic Systems Command November 1981 view details Abstract: This paper describes the design of a high performance Local Database Manager (LDM) to support the ADAPLEX language. There are two notable areas of innovation in the design of this system. First, this is the inception of a full-scale DBMS based on a semantically oriented functional data model. This DBMS goes beyond systems like INGRES and System R in terms of modeling capabilities and ease of use. At the same time, this is also the first DBMS to be integrated into the Ada programming environment. This paper highlights the ADAPLEX language and the innovative aspects of the system design that are intended to yield good performance.
  • Smith, John M., et al. "Reference Manual for ADAPLEX" Computer Corporation of America CCA-81-02 for DARPA/Naval Electronic Systems Command January 1981 view details Abstract: This document is a reference manual for the ADAPLEX language which is used for programming database applications. It is the result of embedding the database sublanguage DAPLEX in the programming language Ada. This manual addresses design issues, declarations and types, names and expressions, statements, modules, visibility and prgram structure, and concurrency and integrity.
  • Dayal, U. review of Buneman 1982 view details
          in ACM Computing Reviews August 1982 view details
  • Smith J.M. et al, "Adaplex: Rationale and Reference Manual 2nd ed", Computer Corp America, Cambridge MA, 1983. view details External link: Page at Citeseer
          in ACM Computing Reviews August 1982 view details
  • Albano, Antonio; Cardelli, Luca and Orsini, Renzo "Galileo: A Strongly Typed Interactive Conceptual Language" view details Abstract: Galileo, a programming language for database applications, is presented. Galileo is a strongly-typed, interactive programming language designed specifically to support semantic data model features (classification, aggregation, and specialization), as well as the abstraction mechanisms of modern programming languages (types, abstract types, and modularization). The main contributions of Galileo are (a) a flexible type system to model database structure and semantic integrity constraints; (b) the inclusion of type hierarchies to support the specialization abstraction mechanisms of semantic data models; (c) a modularization mechanism to structure data and operations into interrelated units (d) the integration of abstraction mechanisms into an expression-based language that allows interactive use of the database without resorting to a new stand-alone query language. Galileo will be used in the immediate future as a tool for database design and, in the long term, as a high-level interface for DBMSs. Extract: Galileo: relation to previous work
    The design of Galileo has been influenced by two areas of research: conceptual modeling and programming languages. Although these areas have a number of overlapping issues, there are problems to be solved if the results from both areas are to be successfully integrated. Galileo applies results from the conceptual modeling sector for features related to object-oriented databases, declarative definitions of constraints, multiple descriptions of objects, and view modeling.
    Galileo borrows features such as data types, abstract types, and modularization from the programming language area. Although the utility of such features is recognized both pragmatically and theoretically, they have mainly been studied for applications to temporary data (i.e., not involving databases).
    The database proposals that have most influenced the design of Galileo are TAXIS, DIAL, and ADAPLEX. TAXIS is notable for introducing the basic knowledge representation mechanisms of semantic networks on data, transactions, and exceptions and for its approach to user dialogue modeling. DIAL, which has evolved from SDM, uses data types, classes, derived classes, the ?port? mechanism to deal with user interaction, and features to control concurrency at the conceptual level. Finally, ADAPLEX uses semantic data model features in a strongly-typed programming language, namely, Ada.
    The main contributions of Galileo are
    (1) the integration of features to support semantic data model abstraction mechanisms within an expression-based, strongly-typed programming language;
    (2) a systematic use of both concrete and abstract types to model structural and behavioral aspects of a database;
    (3) the inclusion of type hierarchies to support the specialization abstraction mechanism of semantic data models as well as a software development methodology by data specialization
    (4) the proposal of another abstraction mechanism, modularization, to organize a conceptual scheme in meaningful and manageable units, so as to deal with data persistence without resorting to specific data types such as files of programming languages, and to deal with application-oriented views of data in a similar way to the view mechanism of DBMSs;
    (5) a small number of independent primitive features that can be applied orthogonally, that is, in any combination.
    The basic ideas of Galileo have been investigated in ELLE, a programming language designed to deal uniformly with temporary and persistent complex data, that is, without resorting to special data type constructors to deal with permanent data. Both ELLE and Galileo borrow many of their features from the functional programming language ML. Extract: Galileo TYPE HIERARCHIES
    TYPE HIERARCHIES
    An important property of the Galileo type system is the notion of subtype: if a type u is a subtype of a type v (u C v), then a value of type u can be used in any context where a value of type v is expected, but not vice versa. The subtype relation is a partial order. For instance, if a function f has a formal parameter of type v, then an application of f to a value of type u is correctly typechecked because no run-time errors can occur. It is important to stress the point that since Galileo has a secure type system, the notion of type hierarchies is related to that of well-typed expressions [24, 281: expressions that are syntactically well typed are always semantically well typed (i.e., such expressions do not cause runtime type errors, and give a value of the correct type). In Milner?s words, ?welltyped expressions do not go wrong? also [36] apply to hierarchies among types.
    This notion of type hierarchies is different from the subtype concept of Ada, but is similar to the subclass mechanisms of Simula 67 and Smalltalk. In Galileo, this notion is extended to all the types, in the sense explained in the sequel to this paper, while preserving two important properties: the language is still strongly-typed and the functions need not be recompiled in order to be used on parameters of any subtype.
    With this mechanism Galileo supports the notion of programming by data specialization, originally introduced in Simula 67 and generalized in TAXIS to all the constituents of a database application: data, transactions, assertions, and scripts. Complex software applications, especially those related to databases, can be designed and implemented incrementally. Once a set of functions has been designed and tested for the most general data, it can be used with data of any subtype introduced later on in the software development process. Moreover, new functions on the subtypes can be defined in terms of the old functions.
          in ACM Trans Database Sys 10(2) June 1985 view details
  • Agrawal R. and Gehani, N. "Ode (Object Databases and Environment): The Language and the Data Model" view details Abstract: ODE is a database system and environment based on the object paradigm. It offers one integrated data model for both database and general purpose manipulation. The database is defined, queried and manipulated in the database programming language O++ which is based on C++. O++ borrows and extends the object definition facility of C++, called the class. Classes support data encapsulation and multiple inheritance. We provide facilities for creating persistent and versioned objects, defining sets, and iterating over sets and clusters of persistent objects. We also provide facilities to associate constraints and triggers with objects. This paper presents the linguistic facilities provided in O++ and the data model it supports. DOI
          in [ACM] Proceedings of the 1989 ACM SIGMOD International Conference on Management of Data, Portland, OR, May 1989 view details
  • Albano, Antonio "Conceptual languages: a comparison of ADAPLEX, Galileo, and Taxis" Foundations of knowledge base management November 1989 view details
          in [ACM] Proceedings of the 1989 ACM SIGMOD International Conference on Management of Data, Portland, OR, May 1989 view details
  • Ries, D. ET AL. Decompilation, optimization, and pipelining for ADAPLEX: a procedural language. Tech. Report, Computer Corp. of America, Cambridge, MA, 1990 view details
          in [ACM] Proceedings of the 1989 ACM SIGMOD International Conference on Management of Data, Portland, OR, May 1989 view details