Abstract
The concept of an object-oriented database programming language (OODBPL) is appealing because it has the potential of combining the advantages of object orientation and database programming to yield a powerful and universal programming language design. A uniform and consistent combination of object orientation and database programming, however, is not straightforward. Since one of the main components of an object-oriented programming language is its type system, one of the first problems that arises during an OODBPL design is related to the development of a uniform, consistent, and theoretically sound type system that is sufficiently expressive to satisfy the combined needs of object orientation and database programming.The purpose of this article is to answer two questions: "What are the requirements that a modern type system for an object-oriented database programming language should satisfy?" and "Are there any type systems developed to-date that satisfy these requirements?". In order to answer the first question, we compile the set of requirements that an OODBPL type system should satisfy. We then use this set of requirements to evaluate more than 30 existing type systems. The result of this extensive analysis shows that while each of the requirements is satisfied by at least one type system, no type system satisfies all of them. It also enables identification of the mechanisms that lie behind the strengths and weaknesses of the current type systems.
- Agesen, O., Freund, S. N., and Mitchell, J. C. 1997. Adding type parametrization to the Java language. In Proceedings of the OOPSLA'97. Google Scholar
- Agrawal, R. and Gehani, N. H. 1989. ODE (object database and environment): The language and the data model. In Proceedings of the ACM-SIGMOD 1989 International Conference on Management of Data. 36--45. Google Scholar
- Aiken, A. and Wimmers, E. L. 1993. Type inclusion constraints and type inference. Tech. Rep. RJ 9454 (83075). IBM Research Division. August.Google Scholar
- Aiken, A., Wimmers, E. L., and Lakshman, T. K. 1994. Soft typing with conditional types. In Conference Record of POPL '94, 21st ACM SIGPLAN-SIGACT Symposium on Principles of Programming Languages. ACM Press, 163--173. Google Scholar
- Alagić, S. 1997. The ODMG object model: Does it make sense? SIGPLAN Not. 32, 10, 253--270. Google Scholar
- Alagić, S. 1999. Type-checking OQL queries in the ODMG type systems. ACM Trans. Datab. Syst. 24, 3 (Sept.), 319--360. Google Scholar
- Albano, A., Cardelli, L., and Orsini, R. 1985. Galileo: A strongly-typed, interactive conceptual language. ACM Trans. Datab. Syst. 10, 2 (June), 230--260. Google Scholar
- Albano, A., Ghelli, G., and Orsini, R. 1995. Fibonacci: A programming language for object databases. VLDB J. 4, 403--444. Google Scholar
- Apple Computer, Inc. 1994. Dylan Interim Reference Manual. Apple Computer, Inc.Google Scholar
- Armstrong, J., Virding, R., Wikströ;m, C., and Williams, M. 1996. Concurrent Programming in Erlang, 2nd ed. Prentice Hall. Google Scholar
- Arnold, K. and Gosling, J. 1996. The Java Language Specification, 4th ed. Addison-Wesley. Google Scholar
- Atkinson, M., Banchilon, F., DeWitt, D., Dittrich, K., Maier, D., and Zdonik, S. 1992. The object-oriented database system manifesto. In Building an Object-Oriented Database System: The Story of O2, F. Banchilon, C. Delobel, and P. Kanellakis, Eds. Google Scholar
- Atkinson, M. and Morrison, R. 1995. Orthogonally persistent object systems. VLDB J. 4, 3, 319--401. Google Scholar
- Atkinson, M. P. and Buneman, O. P. 1987. Types and persistence in database programming languages. ACM Comput. Surv. 19, 2 (June), 105--190. Google Scholar
- Bal, R., Balsters, H., de By, R. A., Bosschaart, A., Flokstra, J., Keulen, M. V., Skowronek, J., and Termorshuizen, B. 1993. The TM Manual. Faculty of Computer Science, University of Twente. Version 2.0 revision C. Available electronically. URL: ftp://ftp.cs.utwente.nl/pub/doc/TM.Google Scholar
- Baumgartner, G., Läufer, K., and Russo, V. F. 1996. Interaction of object-oriented design patterns and programming languages. Tech. Rep. CSD-TR-96-020, Deptartment of Computer Sciences, Purdue University.Google Scholar
- Birtwistle, G. M., Dahl, O.-J., Myhrhaug, B., and Nygaard, K. 1979. Simula Begin. Studentlitteratur (Lund, Sweden), Bratt Institute Fuer Neues Lerned (Goch, FRG), Chartwell-Bratt Ltd (Kent, England). Google Scholar
- Black, A. and Palsberg, J. 1994. Foundations of object-oriented languages. ACM SIGPLAN Not. 29, 3, 3--11. Workshop Report. Google Scholar
- Bobrow, D. G., DeMichiel, L. G., Gabriel, R. P., Keene, S. E., Kiczales, G., and Moon, D. A. 1988. Common lisp Object System specification. X3J13 Document 88-002R.Google Scholar
- Bourdoncle, F. and Merz, S. 1996a. Primitive subtyping ∨ implicit polymorphism ⊢ object-orientation. In Foundations of Object-Oriented Languages 3. Extended abstract.Google Scholar
- Bourdoncle, F. and Merz, S. 1996b. Type checking higher-order polymorphic multi-methods. In Proceedings of the 24th ACM Conference on Principles of Programming Languages (POPL'24). Google Scholar
- Boyland, J. and Castagna, G. 1995. Type-safe compilation of covariant specialization: A practical case. Tech. Rep. UCB/CSD-95-890, University of California, Computer Science Division (EECS), Berkeley, Calif. Nov. Google Scholar
- Boyland, J. and Castagna, G. 1997. Parasitic methods: An implementation of multi-methods in Java. SIGPLAN Not. 32, 10, 66--76. (Proceedings of OOPSLA'97). URL: ftp://ftp.ens.fr/pub/dmi/users/castagna/oopsla97.ps.gz. Google Scholar
- Bracha, G. and Griswold, D. 1993. Strongtalk: Typechecking Smalltalk in a production environment. In Proceedings of the ACM Conference on Object-Oriented Programming: Systems, Languages, and Applications. Google Scholar
- Bracha, G., Odersky, M., Stoutamire, D., and Wadler, P. 1998a. GJ: Extending the Java programming language with type parameters. Manuscript. Revised August 1998. URL: http://www.cis.unisa.edu.au/∼pizza/gi/Documents/.Google Scholar
- Bracha, G., Odersky, M., Stoutamire, D., and Wadler, P. 1998b. GJ specification. Manuscript URL: http://www.cis.unisa.edu.au/∼pizza/gi/documents/.Google Scholar
- Bracha, G., Odersky, M., Stoutamire, D., and Wadler, P. 1998c. Making the future safe for the past: Adding genericity to the Java programming language. In Proceedings of the 13th Annual ACM SIGPLAN Conference on Object-Oriented Programming Systems, Languages, and Applications (OOPSLA'98). 183--200. Google Scholar
- Bruce, K., Cardelli, L., Castagna, G., The Hopkins Object Group, Leavens, G., and Pierce, B. 1996a. On binary methods. Theory Prac. Obj. Syst. 1, 3, 221--242. Google Scholar
- Bruce, K. B., Fiech, A., and Petersen, L. 1996b. Subtyping is not a good "match" for object-oriented languages. In Informal Proceedings of the 4th Workshop on Foundations of Object-Oriented Languages (FOOL 4). Contributed talk.Google Scholar
- Bruce, K. B., Odersky, M., and Wadler, P. 1998. A statically safe alternative to virtual types. In Proceedings of the 1998 European Conference on Object-Oriented Programming (ECOOP'98). Google Scholar
- Bruce, K. B., Schuett, A., and Gent, R. V. 1994. A type-safe polymorphic object-oriented language. Accessible by anonymous FTP. URL: ftp://cs.williams.edu/pub/kim/PolyTOIL.dvi.Google Scholar
- Bruce, K. B., Schuett, A., and Gent, R. V. 1995. PolyTOIL: A type-safe polymorphic object-oriented language. In Proceedings of the 9th European Conference on Object-Oriented Programming (ECOOP'95), (Åarhus, Denmark). W. Olthoff, Ed. Lecture Notes in Computer Science, vol. 952. Springer-Verlag, New York. Extended abstract. Google Scholar
- Bruce, K. K. 1996. Typing in object-oriented languages: Achieving expressibility and safety. URL: ftp://cs.williams.edu/pub/Kim/Static.ps.Google Scholar
- Buneman, P. and Ohori, A. 1996. Polymorphism and type inference in database programming. ACM Trans. Datab. Syst. 21, 1 (March), 30--76. Google Scholar
- Buneman, P. and Pierce, B. 1999. Union types for semistructured data. Tech. Rep. MS-CIS-99-09, Department of CIS, University of Pennsylvania.Google Scholar
- Cardelli, L. 1986. A polymorphic λ-calculus with Type:Type. Tech. Rep. 10, DEC SRC, 130 Lytton Avenue, Palo Alto, CA 94301. May. SRC Research Report.Google Scholar
- Cardelli, L. 1988. A semantics of multiple inheritance. Inf. Comput. 76, 138--164. Google Scholar
- Cardelli, L. 1989. Typeful programming. In Formal Description of Programming Concepts, E. J. Neuhold and M. Paul, Eds. IFIP State of the Art Reports Series. Springer-Verlag, New York. URL: http://www.luca.demon. co.uk/Bibliography.html.Google Scholar
- Cardelli, L. 1993. An implementation of F<:. Tech. Rep. 97, DEC Systems Research Center. February.Google Scholar
- Cardelli, L. 1997. Type systems. In The Computer Science and Engineering Handbook, A. B. Tucker, Ed. CRC Press, Chapter 103. URL: http://www.luca.demon.co.uk/Bibliography.html.Google Scholar
- Cardelli, L., Martini, S., Mitchell, J. C., and Scedrov, A. 1991. An extension of system F with subtyping. In Proceedings of the International Conference on Theoretical Aspects of Computer Software, T. Ito and A. R. Meyer, Eds. Lecture Notes in Computer Science, vol. 526. Springer-Verlag, New York, pp. 756--770. Google Scholar
- Castagna, G. 1996. Object-Oriented Programming: A Unified Foundation. In Progress in Theoretical Computer Science. Birkaüzer, Boston, Chapter Type Systems for Object-Oriented Programming. Google Scholar
- Castagna, G., Ghelli, G., and Longo, G. 1995. A calculus for overloaded functions with subtyping. Inf. Comput. 117, 1 (Feb.), 115--135. Google Scholar
- Cattell, R. G. G., Barry, D., Bartels, D., Berler, M., Eastman, J., Gamerman, S., Jordan, D., Springer, A., Strickland, H., and Wade, D. 1997. The Object Database Standard: ODMG 2.0. Morgan-Kaufmann, Los Altos, Calif. Google Scholar
- Chambers, C. 1992. Object-oriented multi-methods in Cecil. In ECOOP '92, European Conference on Object-Oriented Programming, (Utrecht, The Netherlands), O. L. Madsen, Ed. Lecture Notes in Computer Science, vol. 615. Springer-Verlag, New York, pp. 33--56. Google Scholar
- Chambers, C. 1993. The Cecil language: Specification and rationale. Tech. Rep. TR 93-03-05. Department of Computer Science and Engineering, FR-35, University of Washington. Mar.Google Scholar
- Chambers, C. and Leavens, G. T. 1996. BeCecil, A core object-oriented language with block structure and multimethods: Semantics and typing. Tech. Rep. 96-17. Department of Computer Science, Iowa State University. Dec.Google Scholar
- Chambers, C. and Leavens, G. T. 1997. BeCecil, A core object-oriented language with block structure and multimethods: Semantics and typing. In FOOL 4. In Proceedings of the 4th International Workshop on Foundations of Object-Oriented Languages (Paris, France).Google Scholar
- Chen, K. and Odersky, M. 1994. A type system for a lambda calculus with assignment. In Proceedings of the Theoretical Aspects of Computer Science (Sendai, Japan). Lecture Notes in Computer Science. Springer-Verlag, New York. Google Scholar
- Connor, R. C. H., McNally, D. J., and Morrison, R. 1991. Subtyping and assignment in database programming languages. In Proceedings of the 3rd International Workshop on Database Programming Languages (Napfilon, Greece). Google Scholar
- Day, M., Gruber, R., Liskov, B., and Myers, A. C. 1995. Subtypes vs where clauses: Constraining parametric polymorphism. SIGPLAN Notices 30, 10 (Oct.), 156--168. Google Scholar
- Drossopoulou, S. and Eisenbach, S. 1997. Java is type safe---probably. In Proceedings of the 11th European Conference on Object Oriented Programming (ECOOP'97).Google Scholar
- Eifrig, J., Smith, S., and Trifonov, V. 1995a. Sound polymorphic type inference for objects. SIGPLAN Notices 30, 10 (Oct.), 169--184. Google Scholar
- Eifrig, J., Smith, S., and Trifonov, V. 1995b. Type inference for recursively constrained types and its application to OOP. Electronic Notes in Theoretical Computer Science 1. URL: http://www.elsevier.nl/locate/entcs/volume1.html.Google Scholar
- Eifrig, J., Smith, S., Trifonov, V., and Zwarico, A. 1995c. An interpretation of typed OOP in a language with state. LISP Symb. Comput. 8, 4, 357--397. Google Scholar
- Fisher, K. and Mitchell, J. C. 1996. The development of type systems for object-oriented languages. Theory Pract. Obj. Syst. 1, 3, 189--220. URL: ftp://theory.stanford.edu/pub/jcm/papers/tapos.ps. Google Scholar
- Franz, M. 1997. The programming language Lagoona---A fresh look at object-orientation. Softw---Concepts and Tools 18, 14--26.Google Scholar
- Gawecki, A. and Matthes, F. 1996. Integrating subtyping, matching and type quantification: A practical perspective. In Proceedings of the 10th European Conference on Object-Oriented Programming (Linz, Austria). Springer-Verlag, New York. Google Scholar
- Goldberg, A. and Robson, D. 1989. ST-80, The Language. Addison-Wesley, Reading, Mass.Google Scholar
- Harbison, S. P. 1992. Modula-3. Prentice-Hall, Eglewood Cliffs, N.J. Google Scholar
- Hauck, F. J. 1993. Towards the implementation of a uniform object model. In Parallel Computer Architectures: Theory, Hardware, Software, and Applications---SFB Colloquium SFB 182 and SFB 342, A. Bode and M. D. Cin, Eds. Lecture Notes in Computer Science, vol. 732. Springer-Verlag, New York, pp. 180--189. Google Scholar
- Kempe Software Capital Enterprises 1995. Ada 95 Reference Manual. Kempe Software Capital Enterprises. Available electronically. URL: http://www.adahome.com/rm95.Google Scholar
- Kim, W. 1993. Object-oriented database systems: Promises, reality, and future. In Proceedings of the 19th VLDB Conference. 676--687. Google Scholar
- Kirby, G. N. C., Connor, R. C. H., Morrison, R., and Stemple, D. 1996. Using reflection to support type-safe evolution in persistent systems. Tech. Rep. CS/96/10. University of St. Andrews.Google Scholar
- Klas, W. and Turau, V. 1992. Persistence in the object-oriented database programming language VML. Tech. Rep. TR-92-045, International Computer Science Institute, 1947 Center St., Suite 600, Berkeley, CA 94704-1198. July.Google Scholar
- LaLonde, W. R. and Pugh, J. 1991. Subclassing ≠ subtyping ≠ is-a. J. Obj. Orient. Prog. 3, 5 (Jan.), 57--62. Google Scholar
- Leavens, G. T. and Millstein, T. D. 1998. Multiple dispatch as dispatch on tuples. In Proceedings of the Conference on Object-Oriented Programming, Systems, Languages, and Applications (OOPSLA'98). ACM, New York, pp. 374--387. URL: http://www.cs.washington.edu/homes/todd/papers/oopsla98.ps. Google Scholar
- Lécluse, C., Richard, P., and Vélez, F. 1992. O2, an object-oriented data model. In Building an Object-Oriented Database System: The Story of O2, F. Banchilon, C. Delobel, and P. Kanellakis, Eds. Google Scholar
- Leontiev, Y. 1999. Type system for an object-oriented database programming language. Ph.D. dissertation. Department of Computing Science, University of Alberta. Also available as Tech. Rep. TR 99-02. Google Scholar
- Leontiev, Y., Özsu, M. T., and Szafron, D. 1998. On separation between interface, implementation, and representation in object DBMSs. In Proceedings of TOOLS--26'98. Santa Barbara, Calif. Google Scholar
- Litvinov, V. 1998. Constraint-based polymorphism in Cecil: Towards a practical and static type system. In Proceedings of the 1998 Conference on Object-Oriented Programming: Systems, Languages, and Applications (OOPSLA'98). Google Scholar
- Lutiy, V. G., Merkov, A. B., Leontiev, Y. V., Gawrilow, E. J., Ivanova, N. A., Iofinova, M. E., Paklin, M. L., and Hodataev, A. K. 1994. DBMS Modula--90K. RAN Data Processing Center, Moscow (In Russian: Sistema Programmirovaniya Baz Dannyh Modula-90K).Google Scholar
- Madsen, O. L., Møller-Pedersen, B., and Nygaard, K. 1993. Object-Oriented Programming in the BETA Programming Language. Addison-Wesley, Reading, Mass. Google Scholar
- Marlow, S. and Wadler, P. 1997. A practical subtyping system for Erlang. In Proceedings of the Second International Conference on Functional Programming (Amsterdam, The Netherlands). Google Scholar
- Matthes, F., Müssig, S., and Schmidt, J. W. 1994. Persistent polymorphic programming in Tycoon: An introduction. FIDE Technical Report Series FIDE/94/106. Department of Computing Sciences, University of Glasgow, Glasgow G128QQ. August.Google Scholar
- Matthes, F. and Schmidt, J. 1991. Bulk types: Built-in or add-on? In Proceedings of the 3rd International Workshop on Database Programming Languages. Morgan-Kaufmann, Los Atlos, Calif. Google Scholar
- Matthes, F. and Schmidt, J. 1992. Definition of the Tycoon languages---A preliminary report. Tech. Rep. FBI-HH-B-160/92, Universität Hamburg. October.Google Scholar
- Meyer, B. 1988. Eiffel---The language. Prentice-Hall. Google Scholar
- Miller, R., Tofte, M., and Harper, R. 1990. The Definition of Standard ML. MIT Press. Google Scholar
- Morrison, R., Brown, F., Connor, R., Cutts, Q., Dearle, A., Kirby, G., and Munro, D. 1996. Napier88 Reference Manual. University of St. Andrews. Release 2.2.1.Google Scholar
- Mössenbök, H. and Wirth, N. 1993. The programming language Oberon-2. Manuscript. Institut für Computersysteme, ETH Zürich.Google Scholar
- Myers, A. C., Bank, J. A., and Liskov, B. 1997. Parameterized types for Java. In Proceedings of the 24th ACM Simposium on Principles of Programming Languages (POPL'97). Google Scholar
- Odersky, M. and Läufer, K. 1996. Putting type annotations to work. In Proceedings of the 23rd ACM Symposium on Principles of Programming Languages. 65--67. Google Scholar
- Odersky, M. and Wadler, P. 1997. Pizza into Java: Translating theory into practice. In Proceedings of the 24th ACM Simposium on Principles of Programming Languages (POPL'97). Google Scholar
- Ohori, A., Buneman, P., and Breazu-Tannen, V. 1989. Database programming in Machiavelli---a polymorphic language with static type inference. SIGMOD Record 18, 2, 46--57. Google Scholar
- Pottier, F. 1998. Type inference in the presence of subtyping: from theory to practice. Ph.D. thesis, Université Paris VII.Google Scholar
- Qian, Z. and Krieg-Brueckner, B. 1996. Typed OO functional programming with late binding. In Proceedings of the 10th European Conference on Object-Oriented Programming, P. Cointe, Ed. Lecture Notes in Computer Science, vol. 1098. Springer-Verlag, New York, pp. 48--72. Google Scholar
- Raj, R. K., Tempero, E., Levy, H. M., Black, A. P., Hutchinson, N. C., and Jul, E. 1991. Emerald: A general-purpose programming language. Softw. Pract. Exp. 21, 1 (Jan.), 91--118. Google Scholar
- Rehof, J. 1998. The complexity of simple subtyping systems. Ph.D. dissertation, DIKU, Department of Computer Science, University of Copenhagen.Google Scholar
- Richardson, J. E., Carey, M. J., and Schuh, D. T. 1993. The design of the E programming language. ACM Trans. Prog. Lang. Syst. 15, 3 (July), 494--534. Google Scholar
- Roe, P. and Szyperski, C. 1997. Lightweight parametric polymorphism for Oberon. In Proceedings of the Joint Modular Languages Conference. Google Scholar
- Saraswat, V. 1997. Java is not type-safe. Available electronically. URL: http://www.research. att.com/∼vj/bug.htmlGoogle Scholar
- Schmidt, J. W. and Matthes, F. 1994. The DBPL project: Advances in modular database programming. Inf. Syst. 19, 2, 121--140. Google Scholar
- Sequeira, D. 1998. Type inference with bounded quantification. Ph.D. thesis, Department of Computer Science, University of Edinburgh. Also Technical Report ECS--LFCS--98--403.Google Scholar
- Shang, D. 1997. Transframe: The Annotated Reference. Software Systems Research Laboratory, Motorola, Inc., Schaumburg, Illinois. Draft 1.4.Google Scholar
- SQL 1999. Database languages---SQL. American National Standard for Information Technology. ANSI/ISO/IEC 9075-1-1999, 9075-2-1999, 9075-3-1999, 9075-4-1999, 9075-5-1999.Google Scholar
- Stoutamire, D. and Omohundro, S. 1996. The Sather 1.1 specification. Tech. Rep. TR-96-012, International Computer Science Institute at Berkeley. August.Google Scholar
- Stroustrup, B. 1991. The C++ Programming Language. Addison-Wesley. Google Scholar
- Taivalsaari, A. 1996. On the notion of inheritance. ACM Comput. Surv. 28, 3 (Sept.), 439--479. Google Scholar
- Thorup, K. K. 1997. Genericity in Java with virtual types. In Proceedings of the 1997 European Conference on Object-Oriented Programming (ECOOP'97).Google Scholar
- Trifonov, V. and Smith, S. 1996. Subtyping constrained types. In Proceedings of the 3rd International Static Analysis Symposium. 349--365. Lecture Notes in Computer Science 1145. Google Scholar
- Tsichritzis, D., Nierstrasz, O., and Gibbs, S. 1992. Beyond objects: Objects. Int. J. Intel. Coop. Info. Syst. 1, 1 (Mar.), 43--60.Google Scholar
- W3c 2002. XQuery 1.0 Formal Semantics. W3C. Working Draft 26. URL: http://www.w3.org/ TR/2002/WD-query-semantics-20020326/.Google Scholar
- Wirth, N. 1983. Programming in Modula-2, 2nd ed. Springer-Verlag. Google Scholar
- Wright, A. K. 1993. Polymorphism for imperative languages without imperative types. Tech. Rep. TR93-200, Department of Computer Science, Rice University. February.Google Scholar
Comments