Project update
Mario
blamario@yahoo.com
Wed Feb 13 07:15:02 2002
Where can I read more about Slate? What I've found on the tunes-wiki
links looks interesting, but not very complete.
> I should mention that I'm going to de-emphasize the metaphor with Self
> and Beta, unfortunately, since the expectation of "object-oriented
> programming" principles creates a great deal of confusion when faced
> with a language like Slate that is only based on maps-containing-maps.
Maps-containing-maps looks exactly like description of the core idea of
GENS, the language from my master's thesis. Except I called them
environments. The thesis has shown that environments are powerful enough
to support programming in functional, logic and imperative (including
OO) style. Actually I went so far to implement lambda-calculus, and
subsets of ISWIM (a pure functional language), Prolog, Pascal and Sol
(an Oberon-style OO language) on top of GENS. It all fit in 39 KB.
If you're interested enough, take a look at the page 97 of the MPOOL
2001 proceedings on
http://www.fz-juelich.de/nic-series/Volume7/Volume7.html
> Some ideas I'm proposing include using certain kinds of combinators as
> evaluation primitives. They would take the surrounding object within
> the network of slots and transform it according to various basic
> rules. This would be an extensible language, probably with a
> pseudo-quote type operator (not like the quasi-quoting as Lisp has) to
> switch into the mode for accepting this rewriting input. My first
> thought is to reserve the semi-colon ";" for this.
Yup, GENS uses semicolon as a basic environment concatenation operator,
in other words a union. The other basic operator is ".". This one could
be thought of as the mathematical function-composition operator. In
short, "Env . Expr" means "evaluate Expr in environment Env", while "Env
; Expr" means "evaluate Expr in environment Env, and then merge it into
Env". So you can also think of the "." operator as a method call, and
";" as a sequence of operations, though they're capable of much more.