Persistent programming with strongly typed linguistic reflection

The technique of linguistic reflection is of particular interest in persistent systems because it can allow long-lived data and programs to evolve in a type-safe manner. Existing reflective languages are hard to use because programs contain a mixture of several different kinds of code, with respect to their role in reflection. In some systems this problem is compounded by the presence of a high level of syntactic noise. The paper discusses some uses of strongly typed linguistic reflection in a persistent system and describes an attempt to improve the programmer's interface to reflection. This involves designing an extension to the strongly typed persistent language Napier88, called TemplateNapier. The paper also identifies some factors which make it difficult to write and to understand reflective programs.<<ETX>>