Exploiting persistent intermediate code representations in open database environments

  • Andreas Gawecki
  • Florian Matthes
Performance
Part of the Lecture Notes in Computer Science book series (LNCS, volume 1057)

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.

Preview

Unable to display preview. Download preview PDF.

Unable to display preview. Download preview PDF.

References

  1. Agrawal and Gehani 1989.
    :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.Google Scholar
  2. Appel 1992.
    :Appel, A. W. Compiling with Continuations. Cambridge University Press, 1992.Google Scholar
  3. Böttcher et al. 1986
    :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.Google Scholar
  4. Breazu-Tannen et al. 1991
    :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.Google Scholar
  5. Catell 1994.
    :Catell, R.G.G., editor. The Object Database Standard: ODMG-93. Morgan Kaufmann Publishers, 1994.Google Scholar
  6. Eder et al. 1991
    :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.Google Scholar
  7. Fegaras 1994.
    :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.Google Scholar
  8. Freytag and Goodman 1989.
    :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.Google Scholar
  9. Gawecki and Matthes 1994.
    :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.Google Scholar
  10. Gawecki 1992.
    :Gawecki, A. An optimizing compiler for Smalltalk. Bericht FBI-HH-B-152/92, Fachbereich Informatik, Universität Hamburg, Germany, September 1992. In German.Google Scholar
  11. Gifford and Lucassen 1986.
    :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.Google Scholar
  12. Jarke and Koch 1984.
    :Jarke, M. and Koch, J. Query optimization in database systems. ACM Computing Surveys, 16(2):111–152, 1984.Google Scholar
  13. Jarke and Schmidt 1982.
    :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.Google Scholar
  14. Jarke et al. 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.Google Scholar
  15. Kelsey 1989.
    :Kelsey, R.A. Compilation by program transformation. Technical report, Yale University, Department of Computer Science, May 1989.Google Scholar
  16. Kiradjiev 1994.
    :Kiradjiev, P. Dynamische Optimierung in CPS-orientierten Zwischensprachen. Diplomarbeit, Fachbereich Informatik, Universität Hamburg, Germany, December 1994.Google Scholar
  17. Kranz et al. 1986
    :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.Google Scholar
  18. Lieuwen and De Witt 1991.
    :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.Google Scholar
  19. Mall et al. 1984
    :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.Google Scholar
  20. Mathiske et al. 1995
    :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).Google Scholar
  21. Matthes and Schmidt 1991.
    :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.Google Scholar
  22. Matthes and Schmidt 1992.
    :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.Google Scholar
  23. Matthes and Schmidt 1994.
    :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.Google Scholar
  24. Poulovassilis and Small 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.Google Scholar
  25. Rudloff et al. 1995
    :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).Google Scholar
  26. Schmidt and Matthes 1994.
    :Schmidt, J.W. and Matthes, F. The DBPL project: Advances in modular database programming. Information Systems, 19(2):121–140, 1994.Google Scholar
  27. Schmidt 1977.
    :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.Google Scholar
  28. Steele 1978.
    :Steele, Guy L. Rabbit: A compiler for SCHEME. Technical report, Massachusetts Institute of Technology, May 1978.Google Scholar
  29. Steele 1986.
    :Steele, Guy L. The revised3 report on the algorithmic language Scheme. ACM SIGPLAN Notices, 21(12):37–79, December 1986.Google Scholar
  30. Teodosiu 1991.
    :Teodosiu, Dan. Hare: An optimizing portable compiler for Scheme. ACM SIGPLAN Notices, 26(1):109–120, January 1991.Google Scholar
  31. Trinder 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.Google Scholar
  32. Ullman 1989.
    :Ullman, J.D. Database and Knowledge-Base Systems, vol. 2. Computer Science Press, 1989.Google Scholar

Copyright information

© Springer-Verlag 1996

Authors and Affiliations

  • Andreas Gawecki
    • 1
  • Florian Matthes
    • 1
  1. 1.Universität HamburgHamburgGermany

Personalised recommendations