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. --