Type-Safe Linguistic Reflection: A Generator Technology

D. Stemple, R. B. Stanton, T. Sheard, P. Philbrow, R. Morrison, G. N. C. Kirby, L. Fegaras, R. L. Cooper, R. C. H. Connor, M. P. Atkinson, S. Alagic

Research output: Book/ReportOther report


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.
Original languageEnglish
PublisherESPRIT BRA Project 3070 FIDE
Publication statusPublished - 1992


  • XschoolX Xpersistent_disabledX Xarchitecture_disabledX reflection
  • school


Dive into the research topics of 'Type-Safe Linguistic Reflection: A Generator Technology'. Together they form a unique fingerprint.

Cite this