Why not LISP (was: HLL and misa)
Mon, 19 Jun 95 18:33:30 MET DST
>> yep, that is right. i find myself doing the same thing. i think that
>> using car and cdr is morally wrong.
> I agree and disagree.
>[of use of different constructors for different structures...]
You seem to be reinventing *typed* lambda-calculus !!!
This has already been done and well formalized, and languages like
ML (CAML or SML), Haskell (or Gofer, or Hope) are the fine result.
I'm sure these would be quite a better start for a HLL than LISP
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.
What we need is higher-order use of constructors/deconstructors.
We need be able to manipulate types together with their definitions
and their semantics. LISP does it, by allowing one to access cons cells
as a low-level implementation of objects. But one needn't have low-level
access or s-exps to do it. One just needs have first-class deconstructors.
Having both constructors and deconstructors automatically generated from
a structure's definition is fine, too; and being able to access them with
a nice syntax (not the way Coq does it, for instance) is nice, too !
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.
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.
-- , , _ v ~ ^ --
-- Fare -- email@example.com -- Francois-Rene Rideau -- +)ang-Vu Ban --
-- ' / . --
Join the TUNES project for a computing system based on computing freedom !
TUNES is a Useful, Not Expedient System
WWW page at URL: "http://www.eleves.ens.fr:8080/home/rideau/Tunes/"