This Article 
 Bibliographic References 
 Add to: 
The Object-Oriented Functional Data Language
November 1990 (vol. 16 no. 11)
pp. 1258-1272

The object-oriented functional data language (O/sup 2/FDL) is an interactive strongly typed database programming language that integrates the object-oriented and functional programming paradigms. It was designed for advanced applications that require a powerful and uniform database programming language supporting the software engineering principles of these tow paradigms. To this end, the O/sup 2/FDL supports inheritance and encapsulation of object-oriented languages, and an equational notation and strong typing of functional programming. Strong typing is extended with type restrictions to constrain the instantiations of type variables in function interfaces, while inheritance is augmented with a monotonic subtype rule for function redefinition. The O/sup 2/FDL also supports novel features. For the core of the O/sup 2/FDL, a denotational semantics based on an extended lambda -calculus is provided. For selected system-defined functions, operational semantics are provided and it is demonstrated that a subset of the O/sup 2/FDL is at least as expressive as the relational algebra.

[1] A. Albano, L. Cardelli, and R. Orsini, "Galileo: A Strongly Typed, Interactive Conceptual Language,"ACM Trans. Database Systems, Vol. 10, No. 2, June 1985, pp. 230-260.
[2] R. Agrawal and N. H. Gehani, "Rationale for the design of persistence and query processing facilities in the database language O++," in [34], pp. 25-40.
[3] D. Batory, J. Barnett, J. Garza, K. Smith, K. Tsukuda, B. Twitchell, and T. Wise, "GENESIS: An extensible database management system,"IEEE Trans. Software Eng., vol. SE-12, no. 11, pp. 1711-1730, Nov. 1986.
[4] F. Bancilhon, S. Cluet, and C. Delobel, "A query language for the O2object-oriented database," inProc. Second Workshop Database Programming Languages, 1989.
[5] O. P. Buneman and R. E. Frankel, "FQL-A functional query language," inProc. 1979 ACM SIGMOD Int. Conf. Management of Data, Boston, MA, May 1979.
[6] J. Banerjee, W. Kim, H. Kim, and H. Korth, "Semantics and implementation of schema evolution in object-oriented databases," inProc. ACM Conf., Washington, DC, May 1987, pp. 299-310.
[7] D.G. Bobrow et al., "CommonLoops: Merging Lisp and Object-Oriented Programming,"Proc. ACM Conf. Object-Oriented Systems, Languages, and Applications, 1986, New York, pp. 17-29.
[8] D. S. Batory, T. Y. Leung, and T. E. Wise, "Implementation concepts for an extensible data model and data language,"ACM TODS, vol. 13, no. 3, 1988.
[9] L. Cardelli, "A Semantics of Multiple Inheritance,"Semantics of Data Types, G. Kahn et al., eds., Springer-Verlag, New York, 1984, pp. 51-67.
[10] I. Choi, M. Mannino, and V. Tseng, "Type restrictions and method interfaces in object-oriented database programming," inProc. 4th IFIP Conf. Database Semantics, 1990, to be published.
[11] I. Choi, M. Mannino, and V. Tseng, "Graph interpretation of methods: A unifying framework for polymorphism in object-oriented programming," Dep. Management Sci. Inform. Syst., Univ. Texas at Austin, Tech. Rep., Mar. 1990.
[12] L. Cardelli and P. Wegner, "On understanding types, data abstraction, and polymorphism,"ACM Comput. Surveys, vol. 17, pp. 472-522, Dec. 1985.
[13] U. Dayal, "Queries and views in an object-oriented data model," inProc. 2nd Int. Work. on Database Programming Languages, June 1989.
[14] O. Deuxet al., "The story of O2,"IEEE Trans. Knowl. Data Eng., vol. 2, no. 1, pp. 91-108, Mar. 1990.
[15] L. Fegaras, T. Sheard, and D. Stemple, "The ADABTPL type system," inProc. 2nd Int. Workshop Database Programming Languages, R. Hull, R. Morrison, and D. Stemple, Eds. San Mateo, CA: Morgan Kaufmann, 1989, pp. 207-218.
[16] A. Goldberg and D. Robson,Smalltalk80: The Language and Its Implementation. Reading, MA: Addison-Wesley, May 1983.
[17] R. H. Güting, R. Zicari, and D. M. Choy, "An algebra for structured office documents,"ACM Trans. Office Inform. Syst., vol. 7, pp. 123-157, 1989.
[18] R. Guting, R. Zicari, and D. Choy, "IBM distributed data management architecture: General information," IBM Corp., Rep. GC21-9527, 1986.
[19] W. Kim, J. Garza, N. Ballou, and D. Woelk, "Architecture of the ORION next-generation database system,"IEEE Trans. Knowl. Data Eng., vol. 2, no. 1, pp. 109-124, Mar. 1990.
[20] C. Lecluse and P. Richard, "Manipulation of structured values in object-oriented databases," inProc. 2nd Int. Workshop Database Programming Languages, R. Hull, R. Morrison, and D. Stemple, Eds. San Mateo, CA: Morgan Kaufmann, 1989, pp. 113-121.
[21] M. Mannino, I. Choi, and D. Batory, "An overview of the Object-Oriented Functional Data Language," inProc. IEEE Conf. Data Eng. (COMPDEC), Los Angeles, CA, Feb. 1989.
[22] R. Milner, "A theory of type polymorphism in programming,"J. Comput. Syst. Sci., 1978, pp. 348-375.
[23] R. Milner, "A proposal for standard ML,"Conf. Record of the ACM Symp. LISP and Functional Programming, Aug. 1984.
[24] J. Mitchell, "Coercion and type inference," inProc. 11th ACM Symp. Principles of Programming Languages, 1984, pp. 175-184.
[25] D. B. MacQueen, G. D. Plotkin, and R. Sethi, "An ideal model for recursive polymorphic types," inProc. ACM 11th Symp. Principles of Programming Languages, Salt Lake City, UT, ACM, Jan. 1984, pp. 165-174.
[26] D. MacQueen and R. Sethi, "A semantic model of types for applicative languages," inProc. ACM Conf. LISP and Functional Programming, Pittsburgh, PA, Aug. 1982, pp. 243-252.
[27] D. Maier and J. Stein, "Gemstone and OPAL," inProc. Conf. Object-Oriented Programming Languages (OOPSLA), Orlando, FL, 1987, pp. 355-392.
[28] A. Ohori and P. Buneman, "Type inference in a database programming language," inProc. ACM Conf. Lisp and Functional Programming Languages, Snowbird, UT, July 1988, pp. 174-183.
[29] A. Ohoriet al., "Database programming in Machiavelli--A polymorphic language with static type inference," inProc. ACM SIGMOD Conf., pp. 46-57, May 1989.
[30] S. Peyton-Jones,Implementation of Functional Programming Languages. Englewood Cliffs, NJ: Prentice-Hall, 1987.
[31] M. Stefik and D. G. Babrow, "Object-oriented programming: Themes and variations,"AI Mag., vol. 6, no. 4, pp. 40-62, Dec. 1985.
[32] M. Stonebraker and L. Rowe, "The design of POSTGRES," inProc. 1986 ACM-SIGMOD Conf. Management of Data, Washington, DC, May 1986.
[33] R. Stansifer, "Type inference with subtypes," inProc. 15th ACM Symp. Principles of Programming Languages, 1988, pp. 88-97.
[34] J. E. Stoy,Denotational Semantics--The Scott-Strachey Approach to Programming Language Theory. Cambridge, MA: MIT Press, 1981.
[35] B. Stroustrup,The C++ Programming Language. Reading, MA: Addison-Wesley, 1986.
[36] R. Stansifer, A. Whinston, and A. Basker, "Description of Semlog," Dep. Management Sci. Inform. Syst., Univ. Texas at Austin, Working Paper, Nov. 1988.
[37] G. B. Shaw, "An object oriented query algebra," inProc. 2nd Int. Work. on Database Programming Languages, June 1989.
[38] D. A. Turner, "Miranda: A nonstrict functional language with polymorphic types," inConf. Functional Program. Lang. Comput. Architecture, Nancy, France, Sept. 1985, pp. 1-16.
[39] S. Tsur and C. Zaniolo, "LDL: a logic-based data-language," inProc. 12th VLDB Conf., 1986, pp. 33-41.
[40] M. Wand, "Complete type inference for simple objects," inProc. 2nd Annu. Symp. Logic in Computer Science, Ithaca, NY, 1987, pp. 37-44.
[41] K. Wilkinson, P. Lyngbaek, and W. Hasan, "The Iris architecture and implementation,"IEEE Trans. Knowl. Data Eng., vol. 2, no. 1, pp. 63-75, Mar. 1990.
[42] C. Zaniolo, "The database language GEM," inProc. 1983 ACMSIGMOD Int. Conf. Management of Data, San Jose, CA, May 1983.

Index Terms:
object oriented programming; object-oriented functional data language; interactive strongly typed database programming language; functional programming; software engineering; O/sup 2/FDL; inheritance; encapsulation; object-oriented languages; equational notation; strong typing; type restrictions; type variables; function interfaces; monotonic subtype rule; function redefinition; denotational semantics; extended lambda -calculus; operational semantics; relational algebra; high level languages; object-oriented programming; software engineering
M.V. Mannino, J.J. Choi, D.S. Batory, "The Object-Oriented Functional Data Language," IEEE Transactions on Software Engineering, vol. 16, no. 11, pp. 1258-1272, Nov. 1990, doi:10.1109/32.60314
Usage of this product signifies your acceptance of the Terms of Use.