A modular compiler architecture for a data manipulation language

  • Suzanne M. Embury
  • Peter M. D. Gray
Technical Papers Language Issues
Part of the Lecture Notes in Computer Science book series (LNCS, volume 1094)


We describe a modular compiler architecture that has been developed for a functional data model DBMS. The architecture allows compilers for new sub-languages to be constructed rapidly, by reusing the components of the existing compiler, and allows new semantics and code generation strategies to be defined for existing language constructs. This point is demonstrated by the construction of a new compiler for an integrity constraint language, which required only two new modules to be added to the system. The most significant advantage of our architecture, however, is that it allows the DBMS itself to use the individual compiler modules, opening up a host of possibilities for run-time manipulation of application code.


data manipulation languages run-time compiling semantic data models 


Unable to display preview. Download preview PDF.

Unable to display preview. Download preview PDF.


  1. 1.
    A.H. Aho, R. Sethi, and JD. Ullman. Compilers — Principles, Methods and Tools. Addison Wesley, Reading, Massachusetts, USA, 1985.Google Scholar
  2. 2.
    N. Bassiliades and P.M.D Gray. CoLan: a Functional Constraint Language and Its Implementation. Data and Knowledge Engineering, 14:203–249, 1994.Google Scholar
  3. 3.
    D.S. Batory, T.Y. Leung, and T.E. Wise. Implementation Concepts for an Extensible Data Model and Data Language. ACM Transactions on Database Systems, 13(3):231–262, September 1988.Google Scholar
  4. 4.
    M.J. Carey, D.J. DeWitt, D. Frank, G. Graefe, M. Muralikrishna, J.E. Richardson, and E.J. Shekita. Tha Architecture of the EXODUS Extensible DBMS. In K. Dittrich and U. Dayal, editors, International Workshop on Object-Oriented Database Systems, pages 52–65, Pacific Grove, September 1986. IEEE Computer Society Press.Google Scholar
  5. 5.
    J. Cohen and T.J. Hickey. Parsing and Compiling Using Prolog. ACM Transactions on Programming Languages and Systems, 9(2):125–163, April 1987.Google Scholar
  6. 6.
    R.L. Cooper, M.P. Atkinson, A. Dearle, and D. Abderrahmane. Constructing Database Systems in a Persistent Environment. In P.M. Stocker, W. Kent, and P. Hammersley, editors, Proceedings of the 13th VLDB Conference, pages 117–125, Brighton, 1987. Morgan Kaufmann Publishers, Inc.Google Scholar
  7. 7.
    Q.I. Cutts, R.C.H. Connor, G.N.C. Kirby, and R. Morrison. An Execution-Driven Approach to Code Optimisation. Technical Report FIDE/94/99, FIDE Technical Report, 1994.Google Scholar
  8. 8.
    S.M. Embury. A Formal Semantics for the Daplex Language. Technical Report AUCS/TR9504, University of Aberdeen, Dept. of Computing Science, King's College, Aberdeen, U.K., October 1995. Accessible as http://www.csd.abdn.ac.uk/∼pfdm/postscript/embury. 1995b. ps.Google Scholar
  9. 9.
    S.M. Embury. User Manual for P/FDM V.9.1. Technical Report AUCS/TR9501, Dept. of Computing Sc., University of Aberdeen, U.K., AB9 2UE, January 1995. Accessible as http://www.csd.abdn.ac.uk/∼pfdm/postscript/user.manual.ps.Google Scholar
  10. 10.
    S.M. Embury and P.M.D. Gray. Compiling a Declarative, High-Level Language for Semantic Integrity Constraints. In R. Meersman and L. Mark, editors, Proceedings of 6th IFIP TC-2 Working Conference on Data Semantics, Atlanta, USA, May 1995. Chapman and Hall.Google Scholar
  11. 11.
    S.M. Embury and P.M.D. Gray. Planning Complex Updates to Satisfy Constraint Rules Using a Constraint Logic Search Engine. In T. Sellis, editor, Proceedings of 2nd International Workshop on Rules in Database Systems (RIDS'95), LNCS No. 985, pages 230–244, Glyfada, Athens, Greece, September 1995. Springer-Verlag.Google Scholar
  12. 12.
    A. Farkas and A. Dearle. Octopus: a Reflective Language Mechanism for Object Manipulation. In C. Beeri, A. Ohori, and D.E. Shasha, editors, Proceedings of the Fourth International Workshop on Database Programming Languages — Object Models and Languages, pages 50–64, Manhattan, New York City, August 1993. Springer-Verlag.Google Scholar
  13. 13.
    J.W. Goodwin. Why Programming Environments Need Dynamic Data Types. In D.R. Barstow, H.E. Shrobe, and E. Sandewall, editors, Interactive Programming Environments, Frontier Series, pages 414–425. McGraw-Hill Book Company, 1984.Google Scholar
  14. 14.
    G. Graefe and D. Maier. Query Optimisation in Object-Oriented Database Systems: a Prospectus. In Advances in Object-Oriented Database Systems: Proc. OODBS-II, 1988.Google Scholar
  15. 15.
    G. Graefe and W.J. McKenna. The Volcano Optimizer Generator: Extensibility and Efficient Search. In Proceedings of the Ninth International Conference on Data Engineering (ICDE), pages 209–218, Vienna, Austria, April 1993. IEEE Computer Society.Google Scholar
  16. 16.
    P.M.D. Gray. Knowledge Reuse through Networks of Large KBS. In D. Bowers, editor, Proceedings of 12th British National Conference on Databases, LNCS 826, pages 13–22. Springer-Verlag, July 1994.Google Scholar
  17. 17.
    P.M.D. Gray and G.J.L. Kemp. Object-Oriented Systems and Data Independence. In D. Patel, Y. Sun, and S. Patel, editors, Proc. 1994 International Conference on Object Oriented Information Systems, pages 3–24, London, December 1994. Springer-Verlag.Google Scholar
  18. 18.
    P.M.D. Gray, K.G. Kulkarni, and N.W. Paton. Object-Oriented Databases: a Semantic Data Model Approach. Prentice Hall Series in Computer Science. Prentice Hall International Ltd., 1992.Google Scholar
  19. 19.
    L.M. Haas, J.C. Freytag, G.M. Lohman, and H. Pirahesh. Extensible Query Processing in Starburst. In J. Clifford, B. Lindsay, and D. Maier, editors, SIGMOD 89 Conference, pages 377–388, Portland, Oregon, 1989. ACM Press.Google Scholar
  20. 20.
    Z. Jiao. Optimisation Studies in a Prolog Object-Oriented Database. PhD thesis, University of Aberdeen, Aberdeen, Scotland, November 1992.Google Scholar
  21. 21.
    Z. Jiao and P.M.D. Gray. Optimisation of Methods in a Navigational Query Language. In C. Delobel, M. Kifer, and Y. Masunaga, editors, Second International Conference on Deductive and Object-Oriented Databases, pages 22–42, Munich, December 1991. Springer-Verlag.Google Scholar
  22. 22.
    P. Kanellakis and J.W. Schmidt, editors. Proceedings of the Third International Workshop on Database Programming Languages — Bulk Types and Persistent Data, Nafplion, Greece, August 1991. Morgan Kaufmann Publishers, Inc.Google Scholar
  23. 23.
    G.J.L. Kemp, J.J. Iriarte, and P.M.D. Gray. Efficient Access to FDM Objects Stored in a Relational Database. In D.S. Bowers, editor, Directions in Databases: Proceedings of the Twelfth British National Conference on Databases (BNCOD 12), pages 170–186. Springer-Verlag, 1994.Google Scholar
  24. 24.
    G.N.C. Kirby, R.C.H. Connor, and R. Morrison. START: a Linguistic Reflection Tool Using Hyper-Program Technology. Technical Report FIDE/94/96, FIDE Technical Report, 1994.Google Scholar
  25. 25.
    G. Mitchell, U. Dayal, and S.B. Zdonik. Control of an Extensible Query Optimizer: A Planning-Based Approach. In R. Agrawal, S. Baker, and D. Bell, editors, Proceedings of the 19th VLDB Conference, pages 517–528, Dublin, 1993. Morgan Kaufmann Publishers, Inc.Google Scholar
  26. 26.
    N.W. Paton and P.M.D. Gray. Optimising and Executing Daplex Queries Using Prolog. The Computer Journal, 33:547–555, 1990.Google Scholar
  27. 27.
    A. Rosenthal and U.S. Chakravarthy. Anatomy of a Modular Multiple Query Optimiser. In F. Bancilhon and D.J. DeWitt, editors, Proceedings of the 14th VLDB Conference, pages 230–239, Los Angeles, 1988. Morgan Kaufmann Publishers, Inc.Google Scholar
  28. 28.
    E. Sciore and J. Sieg, Jr. A Modular Query Optimiser Generator. In Proceedings of the Sixth International Conference on Data Engineering (ICDE), pages 146–153, Los Angeles, California, USA, February 1990. IEEE Computer Society.Google Scholar
  29. 29.
    D.W. Shipman. The Functional Data Model and the Data Language DAPLEX. ACM Transactions on Database Systems, 6(1):140–173, March 1981.Google Scholar
  30. 30.
    D. Stemple, R. Morrison, and M.P. Atkinson. Type-Safe Linguistic Reflection. In Kanellakis and Schmidt [22], pages 357–360.Google Scholar
  31. 31.
    P. Trinder. Comprehensions, a Query Notation for DBPLs. In Kanellakis and Schmidt [22], pages 55–68.Google Scholar
  32. 32.
    D.A. Turner. Miranda: a Non-Strict Functional Language with Polymorphic Types. In J.-P. Jouannaud, editor, Proceedings of the IFIP Int. Conf. on Functional Programming Languages and Computer Architecture, Lecture Notes in Computing Science, Vol. 201, pages 1–16, Nancy, France, September 1985. Springer-Verlag.Google Scholar
  33. 33.
    Universities of Glasgow and St. Andrews Technical Report PPRR-12-88. PS-Algol Reference Manual, 1988. 4th edition.Google Scholar
  34. 34.
    D.S. Warren. Logic Programming and Compiler Writing. Software — Practice and Experience, 10(2):97–125, 1980.Google Scholar
  35. 35.
    D.A. Watt. Programming Language Processors. Prentice Hall International, 1993.Google Scholar

Copyright information

© Springer-Verlag Berlin Heidelberg 1996

Authors and Affiliations

  • Suzanne M. Embury
    • 1
  • Peter M. D. Gray
    • 1
  1. 1.Department of Computing Science, King's CollegeUniversity of AberdeenAberdeenScotland

Personalised recommendations