Slate is Bootstrapped 29
aster_ken writes "The latest Slate compiler is finally able to compile itself. To quote the website: "Slate is a prototype-based object-oriented programming language based on Self, CLOS, and Smalltalk. Slate syntax is intended to be as familiar as possible to a Smalltalker, rather than engaging in divergent experiments in that respect.' The beta release is currently being written in Common LISP." The latest version of Slate, 0.3, is now available for download. It was previously mentioned in this Slashdot article."
Slate != Slate (Score:1, Funny)
And I thought... (Score:2)
I note that Slate was put up for sale recently, and am quietly wondering if that is a real reaction to editorial honesty.
Time to do the (Score:3, Funny)
Re:Time to do the (Score:1)
Common Lisp? (Score:2, Interesting)
Re:Common Lisp? (Score:5, Informative)
'Job's a good'un'.
Re:Common Lisp? (Score:2)
Smalltalk and Lisp both embody elegent simplicity. Yes, Slate is more like Smalltalk in a lot of ways, but the megaflexibility of Common Lisp- think macros and other features- make it an ideal language for language design and implementation.
So it complies it's self??!? (Score:4, Funny)
My Lord! So that's it! And I thought they took my spleen!
Cool (Score:4, Informative)
Now there are several such languages available (other than slate). Once they're all a bit more stable (some are stable now) it will be interesting to do a bake-off and see how they compare.
These seem to be the most influential and active (at least at the moment) :
Are there other major/active languages in this vein?
Re:Cool (Score:2)
Re:Cool (Score:2)
Re:Cool (Score:1)
Re:Cool (Score:2)
ob = Object.new
class "world"
Re:Cool (Score:3, Informative)
Hmm, maybe I'm misunderstanding what you mean, but you can modify and clone instances in Ruby:
Re:Cool (Score:1)
Re:Cool (Score:2)
Re:Cool (Score:3, Informative)
Have fun.
Peace & Blessings,
bmac
Re:Cool (Score:3, Interesting)
For instance in Perl you can do (after some setup of course):
$obj = Object->new; # get started
$obj->{name} = 'Joe';
$obj->{shoe_size} = 12;
$obj->{age} = 21;
$obj->{is_old_enough_to_drink} = sub {
shift->{age} >= 21;
};
etc.
Add a little syntactic sugar using AUTOLOAD and they look just like static classes. Add some more scaffolding and you have inheritence, and everything else.
Actually, many perl objects already let yo
Re:Cool (Score:3, Funny)
Re:Cool (Score:2)
The most popular proto-based language is Lua [lua.org]. Surprised you didn't mention it. It is used in a lot of games. It has a class system too, but is a lot like NewtonScript. NewtonScript itself is an *awesome* proto language, and it's fun to play with Lua, it being so close in some ways.
Re: Yes, Io is cool (Score:1)
From an author - Glad to see the interest now (Score:5, Informative)
So it looks like the original story here wasn't such a fluke after all. I was really kind of shocked that anyone would even look at it or want to use it given that it was written in Common Lisp [hackles.org] for experimentation.
The language we write the system code in is currently not quite Slate, but it's designed to make the C code more consistent and relatively safe. We spent some months debugging the new implementation, so this release is focussed on being debugged. Future releases will have more features, and so forth.
And, no, I still don't care about the online magazine of the same name. Just think of it as "Clean Slate" Smalltalk or Slate Smalltalk. Too many other things are named Slate or some variation thereof, anyway (see the USPTO's registry).
My partner on the project plans on full compilation without a C back-end, but also that it will take time, so I can't promise you guys a darned thing yet - don't hold your breath! (He's a talented guy, and great to work with, but things like this take time to develop.)
Re:From an author - Glad to see the interest now (Score:2)
Hey, compile it back to Lisp! CMUCL [cons.org] has a very effective lisp compiler! Gee, I'm a genius, wonder why I haven't created my own programming language yet...
Re:From an author - Glad to see the interest now (Score:4, Informative)
I realize you're joking, but that's actually what the original implementation did, up to a point (and it was decently non-abyssmal in performance). We had an inlining semi-compiler (to avoid the fact that Lisp implementations differ, you can't rely on specific ANSI-variable behaviors) with a few critical optimizations applied which we are now applying to the VM-based implementation (some are already present).
Let me just say that ANSI Common Lisp makes for a really poor virtual machine; that's really not what it excels at. It excels at optimizing Lisp programs, not other languages with a substantial impedance-mismatch. Slate super-heavily relies on polymorphism, and this just isn't something that Lisp compiler implementors focus on optimizing.
I CREATED MYSELF (Score:1)