Path: utzoo!attcan!uunet!peregrine!ccicpg!cci632!rit!tropix!moscom!ur-valhalla!uhura.cc.rochester.edu!sunybcs!rutgers!rochester!pt.cs.cmu.edu!f.gp.cs.cmu.edu!bap
From: bap@f.gp.cs.cmu.edu (Barak Pearlmutter)
Newsgroups: comp.lang.misc
Subject: Re: Functional and Object Oriented Languages compared
Summary: Oaklisp = Normalize( Scheme + Smalltalk )
Keywords: Oaklisp functional languages object oriented Lisp Smalltalk Scheme
Message-ID: <5240@pt.cs.cmu.edu>
Date: 22 Jul 89 07:10:17 GMT
References: <11213@orstcs.CS.ORST.EDU> <6192@pdn.paradyne.com>
Organization: Carnegie-Mellon University, CS/RI
Lines: 45

There has apparently been some discussion on this newgroup of
combining the advantages of first class functions, as in Scheme, with
the type system and incremental method definitions of object-oriented
languages like Smalltalk.  In fact, such a unification was on our
minds when Kevin Lang and I designed Oaklisp, an object-oriented
superset of Scheme.  In Oaklisp, we attempted to preserve the
desirable properties of Scheme, in particular lexical scoping,
temporal consistency, and universal first classness, while adding
object-oriented features, namely multiple inheritance, instance
variables, and textually dispersed method definitions.

We accomplished these goals by introducing "first class types" into
the language, introducing "operations," which are analogous to
Smalltalk's selectors, and adding the special form ADD-METHOD, which
takes an operation (in an evaluated position), a type (also in an
evaluated position), and a chunk of code.

It turns out that LAMBDA can be defined as a macro in terms of
ADD-METHOD, so the language is build upside-down compared to
temporally inconsistent and non lexically scoped dialects like CLOS
and SCOOPS, namely with the object-oriented stuff on the bottom and
lisp on the top.

For further details, see the papers

    "Oaklisp: an Object-Oriented Dialect of Scheme", Lisp and Symbolic
    Computation, v1n1, published by Klewer Associates in Spring 1988.

    "Oaklisp: an Object-Oriented Scheme with First Class Types",
    Proceedings of the ACM conference OOPSLA-86, published as a
    special issue of SIGPLAN Notices.

There is a highly portable, surprisingly efficient, publicly available
implementation available by FTP from DOGHEN.BOLTZ.CS.CMU.EDU
(128.2.222.37), user anonymous, /usr/ftpguest/oaklisp/release.tar.Z,
be sure to transfer in binary mode.  If you do not have access to FTP,
perhaps someone will somehow make the system available on a Usenet
server.  If you would like a tape, send mail to
Catherine.Copetas@CS.CMU.EDU to make suitable arrangements, which
include a copying fee.  I will ignore requests to email the system.
Free hard copies of the draft language and implementation manuals are
also available by sending your physical address to copetas@CS.CMU.EDU.
-- 

						--Barak.
--