This page is made by Rainer Blome (blome at de dot ibm dot com).
Sadly, the old home of this page doesn't host it any more (http://www.physik3.gwdg.de/~rainer/comp/lang/object-based.html).

Object-based PLs

Also commonly called Prototype-Based Languages. I prefer the term object- based because that's what they are. Other names for this type of object are frame and exemplar (see the chapter on Exemplar-Based Programming in Coplien's Advanced C++ Programming Styles and Idioms).
What follows is an almost alphabetical listing of the languages of this class that I know of (and are visible on the web).

Prototype Based Object-Oriented Programming
Deja News Query Profile on prototype-based

Self

The prototype itself.

Self
The bestest programming system in existence. outdated? See

Release

Release 4.0
Stunning. Megacool. Open since July 10, 1995. A must for anybody with a fast Sun at hand.
An FTP site in Europe
After I had to fetch it a second time due to an accident during installatio n (SUN NFS couldn't cope when there was not enough space left, it got so stuck, we had to delete the directory tree.), I backed it up on the next FTP server before trying again. Actually, I gzipped it first, to conserve about five megs of space. Since the sysop was so kind to permanently install it, germans might consider to get it from here.

Writings

Papers
Not just about Self but valuable for your OO programming abilities in general.
Self Tutorial
"Mango - A Parser Generator for Self"
I love this thing. The Parser is an object ("just as the grammar is" - wishful thinking that was. The grammar is NOT an object, it is written in a modified BNF form. I am just trying to fix that.). If anybody so much as hears of anything like this for lisp, don't hesitate to tell me!

People

Urs Hoelzle
Mark Theiding
implements customization for C++. He used to study in Göttingen.
Craig Chambers
David Ungar
Karel Driesen

Archive of Self Mailing List

Squeak

http://www.squeak.org

Agora

Agora the Langu age
Agora FTP site
From the VU Brussels. They have a concept they call `reifier'. `meta-message' (or `meta-object'?) might be another word to call them. They reify (part of?) the meta-level in the laguage level. C's `typedef' keyword is an excellent example.
Patrick Steyaert's Dissertation

Amulet
Amulet is the C++ version and successor to Garnet, also being developed at CMU (see below). It is a portable user interface development environment featuring "a prototype-instance object model, constraints, high-level input handling including automatic undo, and a full set of widgets."

Cecil

Cecil/Vortex Project at Univ.of Washington
A pure OOL with multi-methods, a prototype-based object model, computed inheritance, module-based encapsulation, and allows to mix statically- and dynamically-typed code. They now have an initial beta release of the system available for SPARCs running SunOS 4.1.
Cecil/Vortex Papers
Cecil paper: "Object-Oriented Multi-Methods in Cecil"
cf generic functions
Cecil paper: "Whole-Program Optimization of Object-Oriented Languages"

Garnet

Garnet entry in the AI Repository
Garnet is a complete (the best?) GUI package for Common Lisp systems, based on a prototypical object system and constraints. It is available for Mac and Unix and independent of CLOS.
Garnet FTP site
Ga rnet FAQ
Amulet Garnet (Rhodolite) Gemology and Lore
Rhodolite garnet is distinguished from others of the Garnet family by its pink-violet to purple-red color.
Brad Myers

Glyphic Script

Codeworks -- Introduction
Codeworks is a very small, yet powerful, interactive object oriented development environment. The included Glyphic Script programming language I really like, it is like Self with a little variation in the direction of Common Lisp. Someday I'll make a complete list of differences, here's just a taste:
o Ability to write receiver and message selector in either order (Depends on WYSIWYG formatting, I really like that. Some special character syntax might be used for text devices.)
o Positional arguments in addition to keyword ones
o Keyword arguments may be written in any order.
o Methods accept less than the defined arguments -> optional args (`Wrong number of args' errors must be explicitly enforced. I think they should be the default instead.)
Since it is interpreted, it is a lot slower than Self, of course. But it runs on small computers. Unfortunately, only a Mac version is available now, but they plan to port to Windows and Unix.
Glyphic Technology Corporation
What's New and Points of Departure
See Mark with CU-SeeMe

Javascript

Documentation: JavaScript
JavaScript Semantics Experiments

Kevo

Directory of /pub/kevo
Excerpt from the README: Kevo is a prototypical (= classless) object-oriented system built around a straightforward multitasking threaded code interpreter.
The system has been implemented to experiment with a new kind of an object model that is based neither on conventional inheritance nor delegation (a la Self). Instead, Kevo uses _concatenation_: unrestricted composition of object interfaces.
Syntactically the language resembles Forth, but is far more advanced in many respects. An integrated Macintosh Finder -like iconic object browser is provided for object inspection, definition and manipulation. Currently, only the Macintosh version of Kevo is available publicly.
Directory cs.uta.fi/pub/kevo/Papers
There's also a paper about the related Forth issues

Lua
Since there is no fixed definition of the term ``prototype-based language'' (yet), one can never be sure whether a language is prototype-based. But Lua at least comes close. Associative arrays (aka. frames) are a built-in type. They are (of course) dynamically extensible, and you can put methods in there, too.
Quoting from the manual:
Lua is an extension programming language designed to be used as a configuration language for any program that needs one.
Lua is a dynamically typed language. [...]
The type table implements associative arrays, that is, arrays that can be indexed not only with numbers, but with any value (except nil). Therefore, this type may be used not only to represent ordinary arrays, but also symbol tables, sets, records, etc. To represent records, Lua uses the field name as an index. The language supports this representation by providing a.name as syntactic sugar for a["name"]. Tables may also carry methods. Because functions are first class values, table fields may contain functions. The form t:f(x) is syntactic sugar for t.f(t,x), which calls the method f from the table t passing itself as the first parameter.

Merlin

Jecel's
Jecel's Bookmarks
The Merlin System
Integrates the OS with the PL used to implement the OS. Since its implementation is completely open, it is fully reflective.
Little Deadlocks
A cute story about the history of Merlin's concurrency model.
Merlin's Adaptive Compilation
Bootstrapping Merlin

Moostrap

Moostrap
This article by Philippe Mulet and Pierre Cointe describes Moostrap, a language based on behavioral reflection and concatenation, implemented in Scheme. Its full title is:
Definition of a Reflective Kernel for a Prototype-Based Language
Moostraps meta-object protocol is determined by the (fixed) decomposition of message sending into a lookup and an apply phase. Meta-objects are also used to associate atomic objects with their methods, which enables one to change even their behavior.
Article FTP Directory of Philippe Mulet
Langages de prototypes et réflexion
The research group of Pierre Cointe at EMN
EMN Département Informatique
L' Ecole de Mines de Nantes
EMN References '94
Soutenance thèse Philippe Mulet
Invitation to Philippe Mulet's thesis defense``Reflexion et Langages a Prototypes'', with a short summary (in french).
Ultimardrev-Self
An implementation of Self with behavioral reflection in Smalltalk.
[Link is defunct]
Prototalk (ftp via http at LIRMM)
Prototalk is a Smalltalk platform to test and evaluate prototybe-based languages.

NDim

NDim
The n-dim project (obsolete?)
BOS/stitch- toolkit used to build ndim

Newton Script

Apple's Newton system is the most modern computer system on the market, I'd say: It deals with removable devices, doesn't use a filesystem, copes with extremely limited resources (almost all of the firmware is compressed, dynamically decompressed versions are cached in RAM) and uses a very sophisticated dynamic language.
NewtonScript, the Newton's language, was expressedly inspired by Self. It features prototypes and double prioritized delegation.
All objects have exactly two inharitance slots, delegation goes depth-first first into the 'is-a'-slot, then into the 'is-in' slot (there's almost) no formal difference b/w the two except priority. I call it is-in because it is intended to be used as a link of some (graphical) object to its container. It may thus inherit e.g. background color or position.)
The other formal difference between is-a and is-in slots provides for a form of copy-on-write semantics which can be very handy when RAM is severely limited.

Walter Smith's Publications
See here for articles about NewtonScript and the Newton OS.
OOPSLA 95 Article (local copy)
The title is "Using a Prototype-based Language for User Interface: The Newton Project's Experience". This copy is gzipped to save 90% bandwidth.
Fundamentals of NewtonScript

Interesting Features

foreach with Slot Names
foreach with Frames
Multilevel Slot Creation
Coll, but doesn't this invite bugs?
Creating Slots
Path Expressions

Walter Smith's Home Page
Steve Weyer's Newton Releases
He offers a programming environment that runs on the Newton Message Pad itself.
Interview with Steve Capps

Apple's FTP Server

These links are not maintained any more, but still seem to work.

The Newton Operating System
The Newton Application Architecture
Describes NewtonScript, the Newton's language.
SELF and the Origins of NewtonScript

The World of Newton

Obliq

Obliq
is a new language being developed at DEC, prototype-based, with distributed lexical scoping and concurrency. Beautifully simple, if you ask me.
DEC SRC - Research: Programming Languages
Home of Luca Cardelli, creator of Obliq.
Ambit
Luca Cardelli
Luca Cardelli - HotPage

Omega

uses objects as types. Objects cannot be modified once created (but you can replace them with a modified copy).

Omega
is available for Macs.
Günther Blaschek
has written Omega.
Andreas Frick
uses Omega in Karlsruhe.

OScheme

OScheme overview
OScheme prototype-based object model
It isn't really prototype-based, p. are just one of the primitive types available.
OScheme secure mode description
OScheme Help [local]
Boehm's GC for C and C++
Koala at Bull

SK8
As far as I know, this project has been cancelled.
SK8 is an OO programming environment being developed at Apple ATG. Excerpt from the page:
[It] is designed for rapid development of customizable and extensible media authoring tools and titles. It is not a product.
Alas, they don't say anything about the object technology there. The only thing discernible is that it seems to use delegation for inheritance ("parents").
ECOOP'96 Workshop on Prototype Based Object-Oriented Programming
The Silver Bullet of Language Design
-- Proposal for a Reflective Prototype-Based Compiler
My first article, a position paper presented at the ECOOP '96 Workshop on Prototype-Based Object-Oriented Programming.