Reflexão Computacional em Linguagens de Programação: Um Estudo de Comparativo

Rômulo C. Silva, Sand L. Corrêa, Cecília M. F. Rubira e Luiz E. Buzato

Traditional programming languages hide their implementations from their users. However, there are situations where is advantageous to allow users to change implementation of languages. A language which has ability to modify itself is called reflexive. Reflexive languages use meta-objects to alter the implementation of the based-level objects through a set of rules called meta-objects protocol. There are three main reflection models: (i) meta-object; (ii) metaclass and (iii) metacommunication. Generally, reflexive languages implement some of these models or other variants. This work introduces a comparative study between the metalevel architectures of some reflexive languages. We describe its characteristics and limitations.