I finally understand this!

Massimo Dentico m.dentico@teseo.it
Tue, 04 Apr 2000 17:44:03 +0200

Alan Grimes wrote:
> The biggest problem with the Tunes project, at its current phase, requires
> that contributers be elite computer scientests, rather than mere programmers.
> =\
> Also:
> Unless you can show me one technical word or symbol that has exactly the same
> meaning across all fields of math and science, I propose that we abandon the
> idea of a HLL and instead concentrate on a compiler system that will take
> domain specific languages and turn them into code. =)

IMHO  the  biggest  problem with the Tunes project  is  that  some
contributors don't understand its goals. This because we are in  a
different  paradigm, *not* because reflection (the  main  goal  of
Tunes) is a concept that only a computer scientist can grasp.

In  the past, self-modifying code (a primitive form of reflection)
was quite common, motivated by resource constraints above all. The
problem  with  self-modifying  code  is  that  if  not  adequately
constrained it's difficult to develop and control.

What  means  *adequately*  constrained?  Currently  it's  hard  to
establish.  I think that François have stopped the development  of
his  code for this reason: he is searching a solid and clear  base
(a  theory  of  reflection)  on which to  construct  a  Tunes-like
system.  From a different point of view, Brian is doing  the  same
with his Arrow System.

Reflection  encompass  and go well beyond  "traditional"  compiler
systems  for  Domain Specific Languages (DSLs). In  a  context  of
DSLs,   with  a  reflective  system,  you  can  switch  from   one
representation (language) of the "code"(1) to other more  suitable
for a specific task; all in a coherent framework. This is only  an
example of the (potential) power of reflection.

It's  not my intention to diminish the importance of DSLs; on  the
contrary, I want a system which can catch the full flexibility  of

(1)  In  meta-programming (and reflective) systems there  isn't  a
clear distinction between data and code.

Massimo Dentico