[DGD] reflective programming under DGD

Kirk Smith kirk at kirktis.net
Thu Jun 21 18:21:49 CEST 2007



C/P from DMOZ:
=========================================================
Reflection: a
method or means to let a system maintain information about itself (meta-information), and to use
such to alter its behavior, to change, adapt; something acting upon itself. This is higher-order
behavior than strict imperative models.

More concretely, reflection is also an ability (for users) to modify software (even system
software) of the underlying system during runtime, without leaving that system. Most programs
written today are not reflective. With non-reflective systems, if one modifies (edits) any source
code, one must recompile, and then restart it, thus leaving the system. With a reflective system,
one can modify code (even kernel code), recompile, and replace the running system code as the
system runs, with no restarting, rebooting, or often even leaving the editor. This allows and
promotes more dynamic, fluid, productive work style. Such runtime modifiability is similar to what
an extensible operating system (OS) allows, which can be viewed as a limited type of
(application-level) OS reflectivity. 

 Reflection, where program = data, simplifies writing compilers, interpreters, optimizers,
theorem provers, and defining higher order functions. 

Reflective programming languages are those that take advantage of such traits and abilities, to
various ends. Many exist. Some are used daily, in working systems, but they do not dominate, and
are not mainstream, yet. They are a very interesting and promising class of languages. Some are
found in research, where they form a fascinating branch of computer science. Some experts say they
will grow more important in the future as computer power rises, programs grow more complex, and
artificial intelligence properties are grafted onto, or blended with, languages. Or, like so many
other technologies, they may remain more marginal, used only in certain areas and applications.

=========================================================


> Pardon me for
being an utter noob, but what in tarnation does "reflective" mean?
> 
>
Not a term I'm familiar with, especially wrt. dgd.
> 
> On 6/20/07, Felix A. Croes
<felix at dworkin.nl> wrote:
>> Carter Cheng <carter_cheng at yahoo.com>
wrote:
>>
>> > I have been wondering if it is possible to do
>> > reflective programming under DGD? I figure this sort
>> > of thing
could be quite powerful in perhaps helping to
>> > implement certain features like
an incremental
>> > (object) garbage collector provided i had access to
>> > the variable list and the types of the variables and a
>> > way to
reflectively load them.
>>
>> DGD does not support this directly.  What you
could do is write your
>> own LPC-to-LPC compiler (others have done this, though
typically as
>> a LPCish-to-LPC compiler) that preserves the information you need
>> for reflection.
>>
>> Regards,
>> Dworkin
>> ___________________________________________
>>
https://mail.dworkin.nl/mailman/listinfo/dgd
>>
>
___________________________________________
>
https://mail.dworkin.nl/mailman/listinfo/dgd
>



More information about the DGD mailing list