Skip to main content

A modular compiler architecture for a data manipulation language

  • Technical Papers
  • Conference paper
  • First Online:

Part of the book series: Lecture Notes in Computer Science ((LNCS,volume 1094))

Abstract

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.

This is a preview of subscription content, log in via an institution.

Preview

Unable to display preview. Download preview PDF.

Unable to display preview. Download preview PDF.

References

  1. A.H. Aho, R. Sethi, and JD. Ullman. Compilers — Principles, Methods and Tools. Addison Wesley, Reading, Massachusetts, USA, 1985.

    Google Scholar 

  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. 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. 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. 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. 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. 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. 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. 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. 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. 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. 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. 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. 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. 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. 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. 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. 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. 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. Z. Jiao. Optimisation Studies in a Prolog Object-Oriented Database. PhD thesis, University of Aberdeen, Aberdeen, Scotland, November 1992.

    Google Scholar 

  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. 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. 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. 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. 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. 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. 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. 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. 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. D. Stemple, R. Morrison, and M.P. Atkinson. Type-Safe Linguistic Reflection. In Kanellakis and Schmidt [22], pages 357–360.

    Google Scholar 

  31. P. Trinder. Comprehensions, a Query Notation for DBPLs. In Kanellakis and Schmidt [22], pages 55–68.

    Google Scholar 

  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. Universities of Glasgow and St. Andrews Technical Report PPRR-12-88. PS-Algol Reference Manual, 1988. 4th edition.

    Google Scholar 

  34. D.S. Warren. Logic Programming and Compiler Writing. Software — Practice and Experience, 10(2):97–125, 1980.

    Google Scholar 

  35. D.A. Watt. Programming Language Processors. Prentice Hall International, 1993.

    Google Scholar 

Download references

Author information

Authors and Affiliations

Authors

Editor information

Ron Morrison Jessie Kennedy

Rights and permissions

Reprints and permissions

Copyright information

© 1996 Springer-Verlag Berlin Heidelberg

About this paper

Cite this paper

Embury, S.M., Gray, P.M.D. (1996). A modular compiler architecture for a data manipulation language. In: Morrison, R., Kennedy, J. (eds) Advances in Databases. BNCOD 1996. Lecture Notes in Computer Science, vol 1094. Springer, Berlin, Heidelberg. https://doi.org/10.1007/3-540-61442-7_11

Download citation

  • DOI: https://doi.org/10.1007/3-540-61442-7_11

  • Published:

  • Publisher Name: Springer, Berlin, Heidelberg

  • Print ISBN: 978-3-540-61442-5

  • Online ISBN: 978-3-540-68589-0

  • eBook Packages: Springer Book Archive

Publish with us

Policies and ethics