Agora (programming language)

Agora is a reflective, prototype-based, object-oriented programming language that is based exclusively on message passing and not delegation. Agora was intended to show that even subject to that limit, it is possible to build a full object-oriented language that features inheritance, cloning, and reflective operators.

Overview
The idea is that an object is fully encapsulated and can only be subject to message passing. But seen from the inside of the object, the object knows all about its own structures. It is therefore fully able to clone and extend itself. This is accomplished by special methods named cloning methods and mixin methods.

Agora has been implemented in C++, Java, Scheme, and Smalltalk. Agora98, the latest implementation of Agora, done in Java, allows full access to all Java application programming interfaces (APIs), including the ability to create Java applets from within Agora98. From the language viewpoint, Agora98 is a considerable simplification of prior Agora versions.