A Self / BETA Language Hybrid Project

btanksley@hifn.com btanksley@hifn.com
Wed, 12 Jan 2000 09:32:04 -0800

> From: Brian T. Rice [mailto:water@tunes.org]
> Subject: A Self / BETA Language Hybrid Project

> Hello all,
> 	I'd like to announce a new programming language project 
> called Slate
> (http://www.tunes.org/~water/slate-home.html) that attempts 
> to take the
> best of the Self and BETA programming languages, and provide 
> a coherent
> framework for these ideas.


> Although the language will 
> primarily be dynamic
> in the style of Self, it will also extensively use the benefits of
> pattern-programming and the various abstractions that BETA 
> has shown to be so useful.

Yes, that sounds very useful indeed.  Do you also plan for your language to
be functional?

> The language will also incorporate the abstract syntax tree
> (similar to Lisp's SEXP notation) structure 

Wait.  Lisp's SEXPs form a concrete syntax, not an abstract one.  ASTs are
used in parsing and building portable binary formats (there's yet another
effort at one at http://caesar.ics.uci.edu/laski/portablecode.html and
http://www-nt.cs.berkeley.edu/home/necula/public_html/pcc.html, based on a
combination of Juice and formal proofs).

Did you mean that the syntax would be Lisp-based?

> and a functional character for
> its object semantics. This will allow for some cleaner 
> semantics and better
> meta-programming facilities within the language itself than 
> are available
> for other object-oriented languages.

Yes, true.  For an example of a language which produces OO semantics in a
purely functional way, take a look at ...oops, I've lost the link.  I don't
believe it.  Darn!  And now I can't find it _anywhere_.  The interesting
thing about this language (whatever its name was) is that it models changing
state by making the object actually be a sequence of values, and your code
moves the current object back and forth along that sequence.

Mozart/Oz at http://www.mozart-oz.org/ is also interesting, but looks much
more conventional (good combo of logical and functional programming,

> 	Brian T. Rice