Relay-Version: version B 2.10 5/3/83; site utzoo.UUCP Path: utzoo!mnetor!uunet!seismo!think!barmar From: barmar@think.COM (Barry Margolin) Newsgroups: comp.lang.lisp Subject: Re: Flavors and the like Message-ID: <6826@think.UUCP> Date: Thu, 23-Jul-87 18:07:09 EDT Article-I.D.: think.6826 Posted: Thu Jul 23 18:07:09 1987 Date-Received: Sat, 25-Jul-87 08:53:51 EDT References: <8232@labrea.STANFORD.EDU> Sender: news@think.UUCP Reply-To: barmar@godot.think.com.UUCP (Barry Margolin) Organization: Thinking Machines Corporation, Cambridge, MA Lines: 35 In article <8232@labrea.STANFORD.EDU> kriegs@Whitney.UUCP (David Kriegman) writes: >I was wondering if there are any object oriented programming systems >available for Common LISP. We're using Symbolics machines right now >and have been using flavors but we'd like our code to be portable to >other common lisp systems (e.g. LUCID and KCL). I've heard of something >called CLOS but I don't know anything about it. Is CLOS similar to >flavors? What else is out there? > >Thanks in advance... CLOS is Common Lisp Object System, and it is an object-oriented extension to Common Lisp that is being designed and developed by several members of the ANSI Common Lisp committee (much of the work seems to have been done by Symbolics and Xerox). It takes most of its ideas from Symbolics's New Flavors and Xerox's Common Loops. It is a functional superset of Flavors, but doesn't use Flavors syntax. One of the chief additions is "multimethods", i.e. the ability to choose a method based on the types of more than one argument to a generic function. It also is integrated with the regular Common Lisp type system, allowing methods to be defined for predefined types; for example, you can do somthing like: (defmethod foo ((arg1 integer) (arg2 integer)) ...) (defmethod foo ((arg1 integer) (arg2 float)) ...) (defmethod foo ((arg1 float) (arg2 integer)) ...) ... You can probably get the current draft documentation on this from Gregor Kiczales or Danny Bobrow at Xerox. Sorry, I don't know their network addresses, but my guess is Bobrow@XEROX.COM would get to him. Barry Margolin Thinking Machines Corp. barmar@think.com seismo!think!barmar