Why not LISP (was: HLL and misa)
Frank DiCostanzo
frdF93@hamp.hampshire.edu
Mon, 19 Jun 1995 17:38:57 -0400 (EDT)
On Mon, 19 Jun 1995, Francois-Rene Rideau wrote:
> > I agree and disagree.
> >[of use of different constructors for different structures...]
> You seem to be reinventing *typed* lambda-calculus !!!
not reinventing, just supporting :)
> Now there's the problem of reflectivity:
> LISP is great because of it's easy reflective nature;
> meta-programs are easily done in LISP. But people take for granted
> the trivial implementation of this reflectivity, and there it hurts:
> people assume too much about it, and their programs become too low-level,
> too little portable or efficiently compilable/adaptable/translatable.
it would seem however, that languages that make use of a hierarchical
system of class construction would group linked lists together with
arrays, etc under an abstract type called sequences. that would
obviously fall under a more abstract class like 'collection'. if the
accessors were written for those more abstract classes and were inherited
by linked lists, etc, would that not allow linked lists, etc to be used
at whatever level? i'm refering to hierarchies starting with smalltalk
but there are many others.
I was arguing that these heirarchies need to be based more on
behavioral, not structural, relationships.
> What we need is higher-order use of
constructors/deconstructors.
right
> A very *bad* thing about s-exps is higher-order extensibility:
> if semantics is expressed from a low-level implementation this way, it means
> the semantics cannot be dynamically extended. Because TUNES objects get
> migrated from worlds to worlds, and can be considered in completely
> different contexts, this cannot be in the TUNES HLL.
why can't symantics be extended? perhaps i don't understand this part...
what is so low level about a list of symbols? in my mind it is one of the
more abstract of constructs.
> To conclude, I see really no advantage in the s-exps.
> I quite prefer letting the user be free of the syntax he uses,
> arbitrarily connecting syntax from semantics.
although this is a different topic from the one i was talking about
above, i would like to speak for s-expr (perhaps in the minority)
the biggest advantage as i see it to s-expr is that they can be
represented in a way that the computer can manipulate. this allows for
things like lisps macro facility, etc in which the program can write code
itself in a (fairly) easy and straightforward way.
this means that s-expr can be stored as objects and therefore source code
is stored as objects for which routines can be used to inspect and
modify, a much more abstract and manipulatible medium than text streams.
from a syntactical perspective, s-expr are far less likely to have syntax
errors such as precedence errors.
lastly, i feel that it would be a relatively trivial operation to
generate a parser that produced s-expr allowing someone to place any
syntax they wanted on top of them, using the s-expr as a simple,
consistent base.
Frank DiCostanzo
frdF93@hamp.hampshire.edu
At the McDonalds restaurant I did write on the restroom wall,
"For a good time call swell.hampshire.edu."
- J.G.