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.
References
A.H. Aho, R. Sethi, and JD. Ullman. Compilers — Principles, Methods and Tools. Addison Wesley, Reading, Massachusetts, USA, 1985.
N. Bassiliades and P.M.D Gray. CoLan: a Functional Constraint Language and Its Implementation. Data and Knowledge Engineering, 14:203–249, 1994.
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.
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.
J. Cohen and T.J. Hickey. Parsing and Compiling Using Prolog. ACM Transactions on Programming Languages and Systems, 9(2):125–163, April 1987.
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.
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.
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.
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.
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.
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.
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.
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.
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.
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.
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.
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.
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.
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.
Z. Jiao. Optimisation Studies in a Prolog Object-Oriented Database. PhD thesis, University of Aberdeen, Aberdeen, Scotland, November 1992.
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.
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.
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.
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.
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.
N.W. Paton and P.M.D. Gray. Optimising and Executing Daplex Queries Using Prolog. The Computer Journal, 33:547–555, 1990.
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.
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.
D.W. Shipman. The Functional Data Model and the Data Language DAPLEX. ACM Transactions on Database Systems, 6(1):140–173, March 1981.
D. Stemple, R. Morrison, and M.P. Atkinson. Type-Safe Linguistic Reflection. In Kanellakis and Schmidt [22], pages 357–360.
P. Trinder. Comprehensions, a Query Notation for DBPLs. In Kanellakis and Schmidt [22], pages 55–68.
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.
Universities of Glasgow and St. Andrews Technical Report PPRR-12-88. PS-Algol Reference Manual, 1988. 4th edition.
D.S. Warren. Logic Programming and Compiler Writing. Software — Practice and Experience, 10(2):97–125, 1980.
D.A. Watt. Programming Language Processors. Prentice Hall International, 1993.
Author information
Authors and Affiliations
Editor information
Rights 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