Article View: comp.lang.misc
Article #262Re: Functional and Object Oriented Languages compared
From: Barak Pearlmutter
Date: Sun, 18 Jun 1989 07:10
Date: Sun, 18 Jun 1989 07:10
46 lines
2909 bytes
2909 bytes
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.
--
Technical Details
Message-ID:
<5240@pt.cs.cmu.edu>Path:
arc1-ca.pugleaf.net!utzoo!utgpu!jarvis.csri.toronto.edu!mailrus!tut.cis.ohio-state.edu!cs.utexas.edu!rutgers!rochester!pt.cs.cmu.edu!f.gp.cs.cmu.edu!bapReferences:
<11213@orstcs.CS.ORST.EDU> <6192@pdn.paradyne.com>Show Full Headers
Complete Article Headers
Path: arc1-ca.pugleaf.net!utzoo!utgpu!jarvis.csri.toronto.edu!mailrus!tut.cis.ohio-state.edu!cs.utexas.edu!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: 18 Jun 89 07:10:17 GMT References: <11213@orstcs.CS.ORST.EDU> <6192@pdn.paradyne.com> Organization: Carnegie-Mellon University, CS/RI Lines: 45