Search the FAQ Archives

3 - A - B - C - D - E - F - G - H - I - J - K - L - M
N - O - P - Q - R - S - T - U - V - W - X - Y - Z
faqs.org - Internet FAQ Archives

FAQ: Scheme Frequently Asked Questions 1/2 [Monthly posting]
Section - [1-8] How do I do object-oriented programming in Scheme?

( Part1 - Part2 - Single Page )
[ Usenet FAQs | Web FAQs | Documents | RFC Index | Cities ]


Top Document: FAQ: Scheme Frequently Asked Questions 1/2 [Monthly posting]
Previous Document: [1-7] Standards for Scheme -- What are R4RS and IEEE P1178?
Next Document: [1-9] Repositories of Scheme Software
See reader questions & answers on this topic! - Help others by sharing your knowledge

Some Scheme implementations (for example, MacScheme, Feel, Oaklisp, XScheme,
and PC-Scheme) include built-in object-oriented extensions.  

BOS (Bryan's Object System) is a very small object system for Scheme.
It is based around generic functions and multiple inheritance.  BOS
provides more or less the same features as Meroon and the Tiny CLOS
base language. Even though it has not been optimised, it should be
quite a bit faster than those because it does not include a MOP.
BOS has been tested under Scheme 48 and SCM, and should run under any
fairly modern Scheme implementation (especially any which runs SLIB)
with little or no change.  It is available by anonymous ftp from
   ftp.maths.tcd.ie:/pub/bosullvn/misc/bos.tar.gz
and the CMU AI Repository in
   ftp://ftp.cs.cmu.edu/user/ai/lang/scheme/oop/bos/
For more information, write to Bryan O'Sullivan <bosullvn@maths.tcd.ie>.

MEROON is a package written in Scheme to provide the basic facilities
of an object-oriented programming style through three macros:
define-class, define-generic, and define-method. MEROON offers simple
inheritance, reflective metaclasses and simple dispatching generic
functions with support for multimethods. MEROON also offers indexed
fields subsuming Scheme vectors without inheritance restrictions.
Meroon runs in Scheme->C, PC-Scheme, Chez Scheme, Elk, Bigloo, SCM
with SLIB, and MacGambit. MEROON sources and documentation may be
found in the Scheme Repository as
   ftp://ftp.cs.indiana.edu/pub/scheme-repository/new/.*.tar.Z
and also from
   ftp://ftp.inria.fr/pub/INRIA/icsla/Programs/*.tar.gz [128.93.1.26]
The file meroonet*.tar.gz is a toy version of meroon. For more
information, contact Christian Queinnec <queinnec@polytechnnique.fr>
or <Christian.Queinnec@inria.fr>.

SCOOPS (Scheme Object Oriented Programming System) is an object system
for Scheme written by Amitabh Srivastava/Texas Instruments with 
re-writes by Steve Sherin <sherin@linc.cis.upenn.edu>. [Email to this
address bounced 7/7/93.] This package needs first-class environments.
It is available from the Scheme Repository as
/pub/scheme-repository/scm/scoops.sha. 

Tiny CLOS is a Scheme implementation of a `kernelized' CLOS, with a
metaobject protocol. The implementation is even simpler than the
simple CLOS found in `The Art of the Metaobject Protocol,' weighing in
at around 850 lines of code, including (some) comments and
documentation. Tiny CLOS is available by anonymous ftp from
parcftp.xerox.com:/pub/mops/. Tiny CLOS runs in MIT Scheme 11.74 and
should run with only minor modifications in other Schemes as well. If
you want to be added to the mops@parc.xerox.com mailing list
(technical questions and discussion only), send mail to Gregor Kiczales
<gregor@parc.xerox.com>.

YASOS (Yet Another Scheme Object System) is fairly functional in style
and uses delegation.  The implementation includes multiple inheritance
and "send to super" and is much smaller than class-based OO systems.
See Ken Dickey, "Scheming with Objects", AI Expert 7(10):24-33,
October 1992. A copy of the article and YASOS code is available from
the Scheme Repository in pub/scheme-repository/txt/swob.txt. YASOS is also
included as part of SLIB. For further information, contact Ken Dickey
<kend@newton.apple.com>.

User Contributions:

Comment about this article, ask questions, or add new information about this topic:




Top Document: FAQ: Scheme Frequently Asked Questions 1/2 [Monthly posting]
Previous Document: [1-7] Standards for Scheme -- What are R4RS and IEEE P1178?
Next Document: [1-9] Repositories of Scheme Software

Part1 - Part2 - Single Page

[ Usenet FAQs | Web FAQs | Documents | RFC Index ]

Send corrections/additions to the FAQ Maintainer:
ai+lisp-faq@cs.cmu.edu





Last Update March 27 2014 @ 02:12 PM