skip to main content
article
Free Access

GALILEO: a strongly-typed, interactive conceptual language

Published:01 June 1985Publication History
Skip Abstract Section

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.

References

  1. 1 ABRIAL, J.R. Data semantics. In Data Management Systems, J. K. Klimbie and K. L. Koffeman, Eds,, North-Holland, Amsterdam, 1974, 1-60.Google ScholarGoogle Scholar
  2. 2 ALBANO, A., AND ORSINI, R. An interactive integrated system to design and use data bases, in Proceedings Workshop on Data Abstraction, Data Bases and Conceptual Modelling, ACM SIGMOD Special Issue 11, 2 (1981), 91-93. Google ScholarGoogle ScholarDigital LibraryDigital Library
  3. 3 ALBANO, A., OCCHIUTO, M.E., AND ORSINI, R. A uniform management of persistent and complex data in programming languages. In Infotech State of Art Report on Databases, M.P. Atkinson, Ed., Series 9, No. 4, Pergamon Infotech, 1981, 321-344.Google ScholarGoogle Scholar
  4. 4 ALBANO, A., AND OgSiNi, R. Diaiogo: An interactive environment for conceptual design in Galileo. In Methodology and Tools }:or Database Design, S. Ceri, Ed., North-Holland, Amsterdam, 1983, 229-253.Google ScholarGoogle Scholar
  5. 5 ALBANO,A. Type hierarchies and semantic data model.AACM Sigplan '83:Symposium on Programming Language Issues in So/tware Systems (San Francisco, 1983), 178-186. Google ScholarGoogle ScholarDigital LibraryDigital Library
  6. 6 ALBANO A., CAeACCIOLI, M., AND ORSINI, R. La definizione del Galileo (Versione 83/6). Rapporto Tecnico DATAID N.20, Pisa, 1983.Google ScholarGoogle Scholar
  7. 7 ALBANO, A., CAPACCIOLI, M., OCCHIUTO, M.E., AND ORSINI, R. A modularization mechanism for conceptual modeling. In Proceedings 9th International Conference on VLDB (Florence, Italy, 1983), 232-240. Google ScholarGoogle ScholarDigital LibraryDigital Library
  8. 8 AMBLE, T., BRATBERGSENGEN, K., AND RISNES, O. ASTRAL, a structured and unified approach to database design and manipulation. In Data Base Architecture, G. Bracchi and G.M. Nijssen, Eds., North-Holland, Amsterdam, 1979, 240-257.Google ScholarGoogle Scholar
  9. 9 ATKINSON, M.P., CHISHOLM, K.J., AND COCKSHOTT, W.P. The new Edinburgh persistent algorithmic language. In In{otech State of Art Report on Databases, M.P. Atkinson, Ed., Series 9, No. 4, Pergamon Infotech, 1981, 299-318.Google ScholarGoogle Scholar
  10. 10 ATKINSON, M.P., BAILEY, P.J., CHISHOLM, K.J., COCKSHOTT, W.P., AND MORRISON, R. An approach to persistent programming. Comput. J. 26, 4 (1983), 360-365.Google ScholarGoogle ScholarCross RefCross Ref
  11. 11 BALTZER, R. An implementation methodology for semantic database models. In Entity Relationship Approach to System Analysis and Design, P.P. Chert, Ed., North-Holland, Amsterdam, 1980, 433-444. Google ScholarGoogle ScholarDigital LibraryDigital Library
  12. 12 BARRON, J. Dialogue organization and structure for interactive information systems. M.Sc. thesis, Dept. of Computer Science, Univ. of Toronto, 1980.Google ScholarGoogle Scholar
  13. 13 BILLER, H. AND NEUHOLD, E.J. Semantics of databases: The semantics of data models. Inf. Syst. 3 (1978), 1-30.Google ScholarGoogle ScholarCross RefCross Ref
  14. 14 BORGIDA, A.T., MYLOPOULOS, J., AND WONG, H.K.T. Methodological and computer aids for interactive information systems design. Automated Tools for Information System Design, H.J. Schneider and A. Wasserman, Eds., North-Holland, Amsterdam, 1982.Google ScholarGoogle Scholar
  15. 15 BORGIDA, A. Features of languages for the development of information systems at the conceptual level. IEEE So{tw. (1984), to appear.Google ScholarGoogle Scholar
  16. 16 BREUTMAN, B., FALKENBERG, E., AND MAUER, R. CSL: A language for defining conceptual schemas. In Data Base Architecture, G. Bracchi and G.M. Nijssen, Eds., North-Holland, Amsterdam, 1979, 237-256.Google ScholarGoogle Scholar
  17. 17 BRODXE, M.L. The application of data types to database semantic integrity. Inf. Syst. 5, 4 (1980), 287-296.Google ScholarGoogle Scholar
  18. 18 BRODIE, M.L., AND ZILLES, S.N. Eds. Proceedings Workshop on Data Abstraction, Data Bases, and Conceptual Modelling, ACM SIGMOD Special Issue 11, 2 (1981).Google ScholarGoogle Scholar
  19. 19 BRODm, M.L. On modeling behavioral semantics of databases. In Proceedings 7th International Conference on VLDB (Cannes, 1981), 32-42.Google ScholarGoogle Scholar
  20. 20 BRODIE, M.L., MYLOPOULOS, J., AND SCHMIDT, J.W. Eds. On Conceptual Modeling: Perspectives from Artificial Intelligence, Databases, and Programming Languages, Springer Verlag, New York, 1984.Google ScholarGoogle Scholar
  21. 21 BUBENKO, J.A. Information modeling in the context of system development. In IFIP Congress 1980, North-Holland, Amsterdam, 1980, 395-411.Google ScholarGoogle Scholar
  22. 22 BUNEMAN, P., AND FRANKEL, R.E. FQL--a functional query language. In Proceedings of ACM SIGMOD Conference (Boston, Mass., 1979), 52-58. Google ScholarGoogle ScholarDigital LibraryDigital Library
  23. 23 BURSTALL, R.M., AND GOGUEN, J.A. Putting theories together to make specifications. In Proceedings IJCAI (Boston, Mass., 1977), 1045-1058.Google ScholarGoogle Scholar
  24. 24 CAPACCIOLI, M. La Semantica Denotazionale del Galileo. Tesi di laurea in Scienze dell'Informazione, Univ. di Pisa, Italy, 1983.Google ScholarGoogle Scholar
  25. 25 CARDELLI, L. A semantics of multiple inheritance. In Semantics of Data Types, G. Kahn, D.B. MacQueen, and G. Plotkin, Eds., Lecture Notes in Computer Science, Vol. 173, Springer Verlag, New York, 1984, 51-67. Google ScholarGoogle ScholarDigital LibraryDigital Library
  26. 26 CERI, S., PELAGATTI, G. AND BRACCHI, G. Structured methodology for defining static and dynamic aspects of data base applications. Inf. Syst. 6, 1 (1981), 31-45.Google ScholarGoogle ScholarCross RefCross Ref
  27. 27 CERI, S., Ed. Methodology and Tools/or Database Design, North-Holland, Amsterdam, 1983. Google ScholarGoogle ScholarDigital LibraryDigital Library
  28. 28 GORDON, M. The Denotational Description of Programming Languages. An Introduction, Springer Verlag, New York, 1979. Google ScholarGoogle ScholarDigital LibraryDigital Library
  29. 29 GORDON, M., MILNER, R., AND WADSWORTH, C. Edinburgh LCF, Lecture Notes in Computer Science, Vol. 78, Springer Verlag, New York, 1979.Google ScholarGoogle Scholar
  30. 30 GRAY, J. The transaction concept: Virtues and limitations. In Proceedings 7th International Conference on VLDB (Cannes, 1981), 144-154.Google ScholarGoogle Scholar
  31. 31 HAMMER, M., AND BERKOWITZ, B. DIAL: A programming language for data intensive applications. In Proceedings of ACM SIGMOD Conference, (Santa Monica, Calif., 1980), 75-92. Google ScholarGoogle ScholarDigital LibraryDigital Library
  32. 32 HAMMER, M., AND MCLEOD, D. Database description with SDM: A semantic database model. ACM Trans. Database Syst. 6, 3 (1981), 351-386. Google ScholarGoogle ScholarDigital LibraryDigital Library
  33. 33 KENT, W. Limitations of record-based information models. ACM Trans. Database Syst. 4, 1 (1979), 107-131. Google ScholarGoogle ScholarDigital LibraryDigital Library
  34. 34 LUM, V., ET AL. 1978 New Orleans Data Base Design Workshop Report. In Proceedings 5th International Conference on VLDB (Rio de Janeiro, 1979), 328-339.Google ScholarGoogle Scholar
  35. 35 MCLEOD, D., AND KING, R. Semantic database models. In Principle of Database Design, S.B. Yao, Ed., Prentice-Hall, 1984.Google ScholarGoogle Scholar
  36. 36 MILNER, R. A theory of type polymorphism in programming. J. Comput. Syst. Sci. 17, (1978), 348-375.Google ScholarGoogle ScholarCross RefCross Ref
  37. 37 MYLOPOULOS, J., BERNSTEIN, P.A., AND TONG, H.K.T. A language facility for designing database-intensive applications. ACM Trans. Database Syst. 5, 2 (1980), 185-207. Google ScholarGoogle ScholarDigital LibraryDigital Library
  38. 38 NAVATHE, B.S. Information modeling tools for data base design. Panel on Logical Database Design (Fort Lauderdale, Fla., 1980).Google ScholarGoogle Scholar
  39. 39 ROUSSOPOULOS, N. CSDL: A conceptual schema definition language for the design of data base applications. IEEE Trans. Softw. Eng. SE-5, 5 (1979), 481-496.Google ScholarGoogle ScholarDigital LibraryDigital Library
  40. 40 ROWE, L.A., AND SHOENS, K.A. Data abstraction, views and updates in RIGEL. In Proceedings ACM SIGMOD Conference (Boston, Mass., 1979), 71-81. Google ScholarGoogle ScholarDigital LibraryDigital Library
  41. 41 SABATINI, L. La Semantica Statica del Galileo. Tesi di laurea in Scienze delrInformazione, Univ. di Pisa, Italy, 1982.Google ScholarGoogle Scholar
  42. 42 SCHMIDT, J.W. Type concepts for database definition. In Database: Improving Usability and Responsiveness, B. Schneidermann, Ed., Academic Press, New York, 1978, 215-244.Google ScholarGoogle Scholar
  43. 43 SCHMIDT, J.W., AND MALL, M. Pascal/R Report. Univ. of Hamburg, Fachbereich Informatik, Rep. 66, Jan. 1980.Google ScholarGoogle Scholar
  44. 44 SHAW, M. The impact of abstraction concerns on modern programming languages. Proc. IEEE 68, 9 (1980), 1119-1130.Google ScholarGoogle ScholarCross RefCross Ref
  45. 45 SHIPMAN, D.W. The functional data model and the data language DAPLEX. ACM Trans. Database Syst. 6, 1 (1980), 140-173. Google ScholarGoogle ScholarDigital LibraryDigital Library
  46. 46 SHOPIRO, J.E. A programming language for relational databases. ACM Trans. Database Syst. 4, 4 (1979), 493-517. Google ScholarGoogle ScholarDigital LibraryDigital Library
  47. 47 SM,TH, J.M., AND SMITH, D.C.P. Database abstraction: Aggregation and generalization. ACM Trans. Database Syst. 2, 2 (1979), 105-133. Google ScholarGoogle ScholarDigital LibraryDigital Library
  48. 48 SMITH, J.M., AND SMITH, D.C.P. A database approach to software specifications. In Software Development Tools, W.E. Riddle and R.E. Fairley, Eds., Springer Verlag, Berlin, 1979, 176-200.Google ScholarGoogle Scholar
  49. 49 SMITH, J.M., FOX, S., AND LANCERS, T. Reference manual for ADAPLEX. Tech. Rep. CCA- 81-02, Computer Corporation of America, Jan. 1981.Google ScholarGoogle Scholar
  50. 50 TEICHROEW, D., AND HERSHEY, E.A. PSL/PSA: A computer-aided technique for structured documentation and analysis of information processing systems. IEEE Trans. Softw. Eng. SE-3, 1 (1977), 41-49.Google ScholarGoogle ScholarDigital LibraryDigital Library
  51. 51 TENNENT, R.D. Principles of Programming Languages. Prentice-Hall International, London, 1981. Google ScholarGoogle ScholarDigital LibraryDigital Library
  52. 52 WASSERMAN, A.I. The data management facilities of PLAIN. In Proceedings of the ACM SIGMOD Conference (Boston, Mass., 1979), 60-70. Google ScholarGoogle ScholarDigital LibraryDigital Library
  53. 53 WEBER, H. A software engineering view of data base systems. In Proceedings 4th International Conference on VLDB (Berlin, 1978), 36-51,Google ScholarGoogle Scholar
  54. 54 YAO, S.B., NAVATHE, S.B., AND WELDON, J.L. An integrated approach to logical database design. In Proceedings NYU Symposium on Data Base Design, (1978), 1-14. Google ScholarGoogle ScholarDigital LibraryDigital Library

Index Terms

  1. GALILEO: a strongly-typed, interactive conceptual language

                Recommendations

                Reviews

                Walter F. Tichy

                This paper introduces GALILEO, a programming language for database applications. The language provides static typing, type hierarchies, abstraction mechanisms, and persistent data. This review attempts to answer the following questions: (1)Does GALILEO narrow the semantic gap between programming languages and databases__ __ (2)Will GALILEO survive, or is it just one of numerous programming language designs soon to be forgotten__ __ The “semantic gap” between programming languages and databases refers to the problem that database development has, with few exceptions, not kept pace with the programming language area. The problem is that the abstract data structures available in high-level programming languages have no direct counterparts in most DDLs. For example, heavily linked data structures or abstract data types usually cannot be represented easily in an existing database. As a consequence, a difficult encoding/decoding process complicates all storage and retrieval operations. GALILEO represents significant progress in this area by integrating persistent data into the language. Data structures created in the global environment of GALILEO are simply stored permanently until destroyed explicitly. There is no distinction between the data types storable in the database and the data types manipulable by the language. However, it is unclear whether GALILEO's persistent data structures will lend themselves to an efficient implementation, especially for very large databases. Furthermore, a number of extremely important facilities are missing, namely those that regulate concurrent access and access authorization for shared data. The language definition itself does not meet the standard expected in the programming language area. Most of the language constructs are introduced by examples rather than defined, and others are simply never explained. The space of 30 pages would have been used more wisely by providing a concise reference manual. A number of constructs in the language seem to be redundant. For example, the notions of subtypes and classes seem to have a rather large intersection, suggesting a single, underlying concept that should be modeled instead. The same observation applies to abstract types and environments—both are used for modularization. An important design principle for programming languages is to avoid duplication of constructs for modeling a single concept, and to develop orthogonal constructs that can be combined freely. Perhaps a revision of the language will clear up these matters. However, without a concise reference manual, it is doubtful that GALILEO will gain widespread acceptance, despite its laudable attempt to narrow the semantic gap.

                Access critical reviews of Computing literature here

                Become a reviewer for Computing Reviews.

                Comments

                Login options

                Check if you have access through your login credentials or your institution to get full access on this article.

                Sign in

                Full Access

                • Published in

                  cover image ACM Transactions on Database Systems
                  ACM Transactions on Database Systems  Volume 10, Issue 2
                  June 1985
                  159 pages
                  ISSN:0362-5915
                  EISSN:1557-4644
                  DOI:10.1145/3857
                  Issue’s Table of Contents

                  Copyright © 1985 ACM

                  Publisher

                  Association for Computing Machinery

                  New York, NY, United States

                  Publication History

                  • Published: 1 June 1985
                  Published in tods Volume 10, Issue 2

                  Permissions

                  Request permissions about this article.

                  Request Permissions

                  Check for updates

                  Qualifiers

                  • article

                PDF Format

                View or Download as a PDF file.

                PDF

                eReader

                View online with eReader.

                eReader