Galileo(ID:2663/gal004)

interactive, strictly-typed data base programming language  


interactive, strictly-typed data base programming language Antonio Albano University of Pisa.

In addition to the standard data types Galileo also has abstract data types, and some concepts of semantic database models such as classification, aggregation and specialization.

Additional integrity conditions can be placed at classes.





Structures:
Related languages
Adaplex => Galileo   Influence
DIAL => Galileo   Influence
Elle => Galileo   Written using
Fibonacci => Galileo   Influence
ML => Galileo   Based on
Taxis => Galileo   Influence
Galileo => Amber   Based on
Galileo => OOPS+   Influence

References:
  • Albano A., Cacacciola, M., AND Orsini, R. "La definizione del Galileo (Versione 83/6)". Rapporto Tecnico DATAID N.20, Pisa, 1983. view details
  • Albano, Antonio; Cardelli, Luca and Orsini, Renzo "A strongly typed, interactive conceptual language" Tech. Rep. Internal Technical Document Services, AT&T Bell Laboratories, Murray Hill, N.J. 1983. view details
  • Albano, A., Giannotti, F., Orsini, R., AND Pedreschi, D. The type system of Gallleo. view details
          in Data Types and Persistence. Atkinson, MP, Buneman, OP, Morrison, R (eds), Proc. 1st Workshop on Persistent Object Systems, Appin, Scotland, 1985. In Series: Topics in Information Systems. Springer-Verlag, ISBN 3-540-18785-5. 1988 view details
  • Albano, A., Occhiuto, M. E., AND Orsini, R. Galileo Reference Manual, Vax/Unix version 1.0. Tech. Rep., Diparimento di informatica, Univ. di Pisa, Pisa, Italy. view details
          in Data Types and Persistence. Atkinson, MP, Buneman, OP, Morrison, R (eds), Proc. 1st Workshop on Persistent Object Systems, Appin, Scotland, 1985. In Series: Topics in Information Systems. Springer-Verlag, ISBN 3-540-18785-5. 1988 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
  • Malcolm P. Atkinson, O. Peter Buneman "Types and persistence in database programming languages" pp105-170 view details
          in [ACM] ACM Computing Surveys (CSUR) 19(2) June 1987 view details
  • Albano, A.; Gheli, G.; Orsini, R. "The implementation of Galileo's persistent values" view details
          in Data Types and Persistence. Atkinson, MP, Buneman, OP, Morrison, R (eds), Proc. 1st Workshop on Persistent Object Systems, Appin, Scotland, 1985. In Series: Topics in Information Systems. Springer-Verlag, ISBN 3-540-18785-5. 1988 view details
  • Linnemann, V. et al "Design and Implementation of an Extensible Database Management System Supporting User Defined Data Types and Functions" view details Extract: Description
    Galileo is a strongly-typed, interactive conceptual language for database applications designed, among others, to support the abstraction mechanisms of modern programming languages. The main contributions of Galileo are a flexible type system, the inclusion of type hierarchies and a mechanism to support abstract data types.
          in Proceedings of the 14th VLDB Conference Los Angeles, California 1988 view details
  • Albano, Antonio "Conceptual languages: a comparison of ADAPLEX, Galileo, and Taxis" Foundations of knowledge base management November 1989 view details
          in Proceedings of the 14th VLDB Conference Los Angeles, California 1988 view details
  • Albano, A.; Ghelli, G.; Occhiuto, M.; Orsini, R.: Object-oriented GALILEO view details
          in Dittrich, K.; Dayal, U.; Buchmann, A. (eds.): On Object-Oriented Database Systems. Topics in Information Systems LNCS 334, Springer-Verlag, 1988 view details