Skip to main content

Type-Safe Linguistic Reflection: A Generator Technology

  • Chapter
Fully Integrated Data Environments

Abstract

Reflective systems allow their own structures to be altered from within. In a programming system reflection can occur in two ways: by a program altering its own interpretation or by it changing itself. Reflection has been used to facilitate the production and evolution of data and programs in database and programming language systems. This paper is concerned with a particular style of reflection, called linguistic reflection, used in compiled, strongly typed languages. Two major techniques for this have evolved: compile-time reflection and run-time reflection. These techniques are described together with a definition and anatomy of reflective systems using them. Two illustrative examples are given and the uses of type-safe reflective techniques in a database programming language context are surveyed. These include attaining high levels of genericity, accommodating changes in systems, implementing data models, optimising implementations and validating specifications.

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

Access this chapter

eBook
USD 16.99
Price excludes VAT (USA)
  • Available as PDF
  • Read on any device
  • Instant download
  • Own it forever
Softcover Book
USD 109.99
Price excludes VAT (USA)
  • Compact, lightweight edition
  • Dispatched in 3 to 5 business days
  • Free shipping worldwide - see info
Hardcover Book
USD 109.99
Price excludes VAT (USA)
  • Durable hardcover edition
  • Dispatched in 3 to 5 business days
  • Free shipping worldwide - see info

Tax calculation will be finalised at checkout

Purchases are for personal use only

Institutional subscriptions

Preview

Unable to display preview. Download preview PDF.

Unable to display preview. Download preview PDF.

References

  1. Burstall RM, Collins JS, Popplestone RJ. Programming in POP-2. Edinburgh University Press, Edinburgh, Scotland, 1971.

    MATH  Google Scholar 

  2. Rees J, Clinger W. Revised Report on the Algorithmic Language Scheme. ACM SIGPLAN Notices 1986; 21,12:37–43.

    Article  Google Scholar 

  3. Sheard T. A user′s Guide to TRPL: A Compile-time Reflective Programming Language. COINS, University of Massachusetts Report 90–109, 1990.

    Google Scholar 

  4. PS-algol. PS-algol Reference Manual, 4th edition. Universities of Glasgow and St Andrews Report PPRR-12–88, 1988.

    Google Scholar 

  5. Morrison R, Brown AL, Connor RCH, Dearie A. The Napier88 Reference Manual. Universities of Glasgow and St Andrews Report PPRR-77–89, 1989.

    Google Scholar 

  6. Codd EF. Extending the Relational Model to Capture More Meaning. ACM Transactions on Database Systems 1979; 4,4:397–434.

    Article  Google Scholar 

  7. Jaeschke G, Schek HJ. Remarks on the Algebra of Non First Normal Form Relations. In: Proc. 1st Symposium on the Principles of Database Systems, 1982, pp 124–138.

    Google Scholar 

  8. Dearie A, Brown AL. Safe Browsing in a Strongly Typed Persistent Environment. Computer Journal 1988; 31,6:540–544.

    Article  Google Scholar 

  9. Dearie A, Cutts QI, Kirby GNC. l. In: Rosenberg J, Koch DM (ed) Persistent Object Systems, Proc. 3rd International Workshop on Persistent Object Systems, Newcastle, Australia 1989. Springer-Verlag, 1990, pp 56–69.

    Google Scholar 

  10. Cardelli L. Amber. In: Lecture Notes in Computer Science 242. Springer-Verlag, 1986, pp 21–47.

    Google Scholar 

  11. Kirby GNC, Dearie A. An Adaptive Graphical Browser for Napier88. University of St Andrews Report CS/90/16, 1990.

    Google Scholar 

  12. Sheard T. Automatic Generation and Use of Abstract Structure Operators. ACM Transactions on Programming Languages and Systems 1991; 19,4:531–557.

    Article  Google Scholar 

  13. Cooper RL. On The Utilisation of Persistent Programming Environments. Ph.D. thesis, University of Glasgow, 1990.

    Google Scholar 

  14. Kirby GNC. Persistent Programming with Strongly Typed Linguistic Reflection. In: Proc. 25th International Conference on Systems Sciences, Hawaii, 1992, pp 820–831.

    Google Scholar 

  15. Strachey C. Fundamental Concepts in Programming Languages. Oxford University Press, Oxford, 1967.

    Google Scholar 

  16. Stemple D, Fegaras L, Sheard T, Socorro A. Exceeding the Limits of Polymorphism in Database Programming Languages. Springer-Verlag, 1990, pp 269–285.

    Google Scholar 

  17. Cooper RL. Configurable Data Modelling Systems. In: Proc. 9th International Conference on the Entity Relationship Approach, Lausanne, Switzerland, 1990, pp 35–52.

    Google Scholar 

  18. Cooper RL, Qin Z. A Graphical Data Modelling Program With Constraint Specification and Management. In: Proc. 10th British National Conference on Databases, Aberdeen, 1992, pp 192–208.

    Google Scholar 

  19. Bruynooghe RF, Parker JM, Rowles JS. PSS: A System for Process Enactment. In: Proc. 1st International Conference on the Software Process: Manufacturing Complex Systems, 1991.

    Google Scholar 

  20. Greenwood RM, Guy MR, Robinson DJK. The Use of a Persistent Language in the Implementation of a Process Support System. ICL Technical Journal 1992; 8,1:108–130.

    Google Scholar 

  21. Warboys B. The IPSE 2.5 Project: Process Modelling as the Basis for a Support Environment. In: Proc. 1st International Conference on System Development Environments and Factories, Berlin, Germany, 1989.

    Google Scholar 

  22. Philbrow PC. Indexing Strongly Typed Heterogeneous Collections Using Reflection and Persistence. In: Proc. ECOOP/OOPSLA Workshop on Reflection and Metalevel Architectures in Object-Oriented Programming, Ottawa, Canada, 1990.

    Google Scholar 

  23. Cooper RL, Atkinson MP, Dearie A, Aderrahmane D. Constructing Database Systems in a Persistent Environment. In: Proc. 13th International Conference on Very Large Data Bases, 1987, pp 117–125.

    Google Scholar 

  24. Fegaras L, Stemple D. Using Type Transformation in Database System Implementation. In: Kanellakis P, Schmidt JW (ed) 3rd International Conference on Database Programming Languages, Proc. 3rd International Workshop on Database Programming Languages, Nafplion, Greece. Morgan Kaufmann, 1991, pp 337–353.

    Google Scholar 

  25. Fegaras L, Sheard T, Stemple D. Uniform Traversal Combinators: Definition, Use and Properties. In: Proc. 11th International Conference on Automated Deduction (CADE-11), Saratoga Springs, New York, 1992. LNAI 607, pp. 148–162.

    Google Scholar 

  26. Stemple D, Sheard T, Fegaras L. Linguistic Reflection: A Bridge from Programming to Database Languages. In: Proc. 25th International Conference on Systems Sciences, Hawaii, 1992, pp 844–855.

    Google Scholar 

  27. Sheard T, Stemple D. Automatic Verification of Database Transaction Safety. ACM Transactions on Database Systems 1989; 12,3:322–368.

    Article  Google Scholar 

Download references

Author information

Authors and Affiliations

Authors

Editor information

Editors and Affiliations

Rights and permissions

Reprints and permissions

Copyright information

© 2000 Springer-Verlag Berlin Heidelberg

About this chapter

Cite this chapter

Stemple, D. et al. (2000). Type-Safe Linguistic Reflection: A Generator Technology. In: Atkinson, M.P., Welland, R. (eds) Fully Integrated Data Environments. Esprit Basic Research Series. Springer, Berlin, Heidelberg. https://doi.org/10.1007/978-3-642-59623-0_8

Download citation

  • DOI: https://doi.org/10.1007/978-3-642-59623-0_8

  • Publisher Name: Springer, Berlin, Heidelberg

  • Print ISBN: 978-3-642-64055-1

  • Online ISBN: 978-3-642-59623-0

  • eBook Packages: Springer Book Archive

Publish with us

Policies and ethics