Related articles |
---|
Object oriented language implementation ionut@cs.colostate.edu (Ionut D Aron) (1997-04-18) |
Re: Object oriented language implementation snl@rocketmail.com (Sean Levy) (1997-04-20) |
From: | Sean Levy <snl@rocketmail.com> |
Newsgroups: | comp.compilers |
Date: | 20 Apr 1997 12:13:14 -0400 |
Organization: | Compilers Central |
References: | 97-04-126 |
Keywords: | OOP, books |
Ionut D Aron <ionut@cs.colostate.edu> wrote:
> I'm trying to find some good references for OO language design and
> implementation. Does anyone know a good book/paper which he would
> recommend?
In my experience, your best bet would probably be to read some things
on implementation of specific OO languages, cover a couple different
varieties that way, and derive what general principles you can (I'm
also not so theoretically inclined as I might be, and so leave the
pointing out of references that try to treat the subject as a whole in
a more formal manner to others who surely know the lit. better).
_A Little Smalltalk_ by Tim Budd is a good place to start. Concise,
well-written and full of examples. There is also code freely availble
on the net (or was last time I checked) that implements his version of
Smalltalk, so you can play around as you read and think.
The Smalltalk-80 books by Goldberg, et al. are quite a bit more
detailed but also really good. There's one specifically dealing with
more grunty implementation details, but I don't have any of them handy
to give a better ref, and it's been years since I've read them.
I'd also recommend looking up the Self project at
http://self.smli.com/ mainly because I just think it's wonderful
stuff, and it's what inspired me to fool around with implementing OO
languages/environments (which, for completeness, I include this
incredibly out-dated link: http://www.ndim.edrc.cmu.edu/bosstitch.html
... very sketchy, subsumed by a paper in OOPSLA96 for which I don't
have a ref handy, and not so much about language design as the
language/environment implementation, but since I'm plugging things I
think are cool... ;-).
The BETA language is very well covered by the BETA folks in two books
that I'm aware of: _Object-Oriented Programming in the BETA Language_
and ... damn. I don't have the other, but it is essentially a
collection of many years of BETA-related papers that cover all aspects
of this extremely fascinating language/environment. The BETA folks are
also quite fond of philosophising/generalizing, and at least one
section in the _OOP in the B. Lang_ book covers OOP and the design of
OO languages at a fairly general level (albeit through their
BETA-colored sunglasses... still, great fun. How often do you see
Aristotle referred to from a book on programming languages, after all?
;-). There is also a comp.lang.beta newsgroup. Not sure what the S/N
ratio on it is, but last time I looked all the main implementors read
it reguarly, and seemed quite friendly about answering questions.
The book _Object Oriented Programming and the Objective-C Language_ is
a good description of Objective-C, but might be a bit short on design
rationale for you; I would not ignore Objective-C though, as it it
represents quite a comfortable spot between Smallktalk and C, which a
lot of people (including myself) have found very agreeable.
Naturally, you should read Bjarne Stroustrup on C++, but as I'm not a
big fan of that religion, I don't have any better refs.
I'm sure others who read comp.compilers will come up with other good
starting places (specifically, I'm sure I recall some good stuff about
CLOS and its predecessors, but I have almost none of my papers at home
;-( ). And the Java camp has made a reasonable collection of
papers/tutorials available online, some of which cover their thoughts
about OOPL design as it related to their work on Java (for
completeness again: http://www.javasoft.com/ and
http://www.gamelan.com/ are my canonical web references; I'm sure
there are other places to look as well).
Hope this helps.
Pax,
:: Sean
===
:: sean levy :::: hacker at large ::: snl@rocketmail.com ::::::::::::
[I always figured your best bet was to look at what they did in C++ and do
the opposite. -John]
--
Return to the
comp.compilers page.
Search the
comp.compilers archives again.