Abstract
Modern database environments have to execute, store, analyze, optimize and generate code at various levels of abstraction (queries, views, triggers, query execution plans, methods, 4GL programs, etc.). We present TML, an abstract persistent intermediate code representation developed in the Tycoon2 project to fully integrate static and dynamic code analysis and rewriting. TML is a continuation passing style (CPS) language which excels in its explicit, high-level representation of control and data dependencies. We formally define TML and its core rewrite rules which unify many well-known optimizing transformations. We also present Tycoon's innovative reflective system architecture which supports modular compile-time as well as global runtime optimizations. Moreover, we describe how this architecture enables optimizations across abstraction barriers in large modular persistent applications including embedded declarative queries.
This research is supported by ESPRIT Basic Research, Project FIDE, #6309 and by a grant from the German Israeli Foundation for Research and Development (bulk data classification, I-183 060).
Preview
Unable to display preview. Download preview PDF.
References
:Agrawal, R. and Gehani, N.H. Rationale for the design of persistence and query processing facilities in the database programming language O++. In Proceedings of the Second International Workshop on Database Programming Languages, Salishan, Oregon, June 1989.
:Appel, A. W. Compiling with Continuations. Cambridge University Press, 1992.
:Böttcher, S., Jarke, M., and Schmidt, J.W. Adaptive predicate managers in database systems. In Proceedings of the Twelfth International Conference on Very Large Databases, Kyoto, Japan, 1986.
:Breazu-Tannen, V., Buneman, P., and Naqvi, S. Structural recursion as a query language. In Proceedings of the Third International Workshop on Database Programming Languages, Nafplion, Greece. Morgan Kaufmann Publishers, September 1991.
:Catell, R.G.G., editor. The Object Database Standard: ODMG-93. Morgan Kaufmann Publishers, 1994.
:Eder, J., Rudloff, A., Matthes, F., and Schmidt, J.W. Data construction with recursive set expressions in DBPL. In Proceedings of the Kiev East/West Workshop on Next Generation Database Technology, volume 504 of Lecture Notes in Computer Science, April 1991.
:Fegaras, L. Efficient optimization of iterative queries. In Beeri, C., Ohori, A., and Shasha, D.E., editors, Database Programming Languages, New York City, 1993, Workshops in Computing, pages 200–225, 1994.
:Freytag, J.C. and Goodman, N. On the translation of relational queries into iterative programs. A CM Transactions on Database Systems, 14(1), March 1989.
:Gawecki, A. and Matthes, F. The Tycoon Machine Language TML — an optimizable persistent program representation. FIDE Technical Report FIDE/94/100, Fachbereich Informatik, Universität Hamburg, Germany, July 1994.
:Gawecki, A. An optimizing compiler for Smalltalk. Bericht FBI-HH-B-152/92, Fachbereich Informatik, Universität Hamburg, Germany, September 1992. In German.
:Gifford, David K. and Lucassen, John M. Integrating functional and imperative programming. In Proceedings of the ACM Conference on Lisp and Functional Programming, Cambridge, Massachusetts, August 4–6, 1986, pages 28–38, 1986.
:Jarke, M. and Koch, J. Query optimization in database systems. ACM Computing Surveys, 16(2):111–152, 1984.
:Jarke, M. and Schmidt, J.W. Query processing strategies in the Pascal/R relational database management system. In Proceedings of the ACM-SIGMOD International Conference on Management of Data, 1982.
:Jarke, M., Koch, J., Mall, M., and Schmidt, J.W. Query optimization research in the database programming languages (DBPL) project. IEEE — Data Engineering, pages 11–14, September 1982.
:Kelsey, R.A. Compilation by program transformation. Technical report, Yale University, Department of Computer Science, May 1989.
:Kiradjiev, P. Dynamische Optimierung in CPS-orientierten Zwischensprachen. Diplomarbeit, Fachbereich Informatik, Universität Hamburg, Germany, December 1994.
:Kranz, D., Kelsey, R., Rees, J., Hudak, P., Philbin, J., and Adams, N. ORBIT: an optimizing compiler for Scheme. ACM SIGPLAN Notices, 21(7):219–233, July 1986.
:Lieuwen, Daniel F. and DeWitt, David J. Optimizing loops in database programming languages. In Proceedings of the Third International Workshop on Database Programming Languages, Nafplion, Greece, Nafplion, Greece, September 1991. Morgan Kaufmann Publishers.
:Mall, M., Reimer, M., and Schmidt, J.W. Data selection, sharing and access control in a relational scenario. In Brodie, M.L., Myopoulos, J.L., and Schmidt, J.W., editors, On Conceptual Modelling. Springer-Verlag, 1984.
:Mathiske, B., Matthes, F., and Schmidt, J.W. Scaling database languages to higher-order distributed programming. In Proceedings of the Fifth International Workshop on Database Programming Languages, Gubbio, Italy. Springer-Verlag, September 1995. (Also appeared as TR FIDE/95/137).
:Matthes, F. and Schmidt, J.W. Bulk types: Built-in or add-on? In Proceedings of the Third International Workshop on Database Programming Languages, Nafplion, Greece. Morgan Kaufmann Publishers, September 1991.
:Matthes, F. and Schmidt, J.W. Definition of the Tycoon Language TL — a preliminary report. Informatik Fachbericht FBI-HH-B-160/92, Fachbereich Informatik, Universität Hamburg, Germany, November 1992.
:Matthes, F. and Schmidt, J.W. Persistent threads. In Proceedings of the Twentieth International Conference on Very Large Data Bases, VLDB, pages 403–414, Santiago, Chile, September 1994.
:Poulovassilis, A. and Small, C. Investigation of algebraic query optimisation for database programming languages. In Proceedings of the 20th International Conference on Very Large Databases, Santiago, Chile, September 1994.
:Rudloff, A., Matthes, F., and Schmidt, J.W. Security as an addon quality in persistent object systems. In Second International East/West Database Workshop, Workshops in Computing. Springer-Verlag, 1995. (to appear).
:Schmidt, J.W. and Matthes, F. The DBPL project: Advances in modular database programming. Information Systems, 19(2):121–140, 1994.
:Schmidt, J.W. Some high level language constructs for data of type relation. In Proceedings of the ACM-SIGMOD International Conference on Management of Data, Toronto, Canada, August 1977.
:Steele, Guy L. Rabbit: A compiler for SCHEME. Technical report, Massachusetts Institute of Technology, May 1978.
:Steele, Guy L. The revised3 report on the algorithmic language Scheme. ACM SIGPLAN Notices, 21(12):37–79, December 1986.
:Teodosiu, Dan. Hare: An optimizing portable compiler for Scheme. ACM SIGPLAN Notices, 26(1):109–120, January 1991.
:Trinder, P. Comprehensions, a query notation for DBPLs. In Proceedings of the Third International Workshop on Database Programming Languages, Nafplion, Greece. Morgan Kaufmann Publishers, September 1991.
:Ullman, J.D. Database and Knowledge-Base Systems, vol. 2. Computer Science Press, 1989.
Author information
Authors and Affiliations
Editor information
Rights and permissions
Copyright information
© 1996 Springer-Verlag Berlin Heidelberg
About this paper
Cite this paper
Gawecki, A., Matthes, F. (1996). Exploiting persistent intermediate code representations in open database environments. In: Apers, P., Bouzeghoub, M., Gardarin, G. (eds) Advances in Database Technology — EDBT '96. EDBT 1996. Lecture Notes in Computer Science, vol 1057. Springer, Berlin, Heidelberg. https://doi.org/10.1007/BFb0014168
Download citation
DOI: https://doi.org/10.1007/BFb0014168
Published:
Publisher Name: Springer, Berlin, Heidelberg
Print ISBN: 978-3-540-61057-1
Online ISBN: 978-3-540-49943-5
eBook Packages: Springer Book Archive