[Date Prev][Date Next][Thread Prev][Thread Next][Date Index][Thread Index]

Re: Dylan class system?



In article <920630154821_71501.1347_DHJ36-2@CompuServe.COM> 71501.1347@CompuServe.COM (Jim Hurd) writes:

   Path: kronos.arc.nasa.gov!ames!apple!cambridge.apple.com!71501.1347@compuserve.com
   From: 71501.1347@CompuServe.COM (Jim Hurd)
   Newsgroups: comp.lang.lisp.mcl
   Date: 30 Jun 92 15:48:22 GMT
   Sender: info-mcl-request@cambridge.apple.com
   Lines: 7
   Approved: comp.lang.lisp.mcl@Cambridge.Apple.C0M
   Original-To: MCL List <info-macl@cambridge.apple.com>

   I am waiting for my Dylan manual to arrive, but curiosity has gotten the best
   of me. Could someone please post a brief description of the Object system of
   Dylan? e.g. Multiple Inheritance? generic functions? user defined method
   combinations? Does it have CL style packages? 1st class continuations? 1st
   class environments? Engines?

   Jim Hurd

For completeness, I'm including the lisp FAQ submission from Andrew Shalit:
"
Dylan is a new object-oriented dynamic language (oodl), based on Scheme, CLOS,
and Smalltalk.  The purpose of the language is to retain the benefits of oodls
and also allow efficient application delivery.  The design stressed keeping
Dylan small and consistent, while allowing a high degree of expressiveness. A
manual/specification for the language is available from Apple Computer.  Send
email to dylan-manual-request@cambridge.apple.com or write to Apple Computer, 1
Main Street, Cambridge, MA 02142.  Include your complete address and also a
phone number (the phone number is especially important for anyone outside the
US). Comments on Dylan can be sent to the internet mail address
dylan-comments@cambridge.apple.com.

Apple hasn't announced plans to release Dylan as a product.  Also there is
no two way mailing list for discussing Dylan at this time.
"


As for myself, I just received the Dylan manual a few days ago. Here's
what I've gathered so far:

The object system looks very much like CLOS, including
multiple-inheritance, generic functions, multimethods, and a form of
call-next-method for method combination. :after and :before methods
aren't included. Methods can be defined on "singleton" classes,
somewhat like the #'eql specializer in CLOS. Classes and methods can
be "sealed" against the provided introspective functions and the
addition/removal of new methods. Built-in classes include the full
complement of numeric types and a "collection" class that subsumes the
sequences in CL and other aggregate data types such as hash tables.

--
Phil Chu
Artificial Intelligence Research Branch
NASA Ames Research Center
pchu@ptolemy.arc.nasa.gov