Re: Object oriented language implementation

Sean Levy <snl@rocketmail.com>
20 Apr 1997 12:13:14 -0400

          From comp.compilers

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)
| List of all articles for this month |

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]


--


Post a followup to this message

Return to the comp.compilers page.
Search the comp.compilers archives again.