Agora (programming language): Difference between revisions

Content deleted Content added
mixin deserves a link
WP:LINKs: update-standardizes, adds, needless WP:PIPEs > WP:NOPIPEs. Small WP:COPYEDITs WP:EoS WP:TERSE. Template:Official website add.
 
(14 intermediate revisions by 14 users not shown)
Line 1:
'''Agora''' is a [[Reflective programming|reflective]], [[prototypePrototype-based (programming)|prototype-based]], [[object-oriented (programming)|object-oriented]] [[programmingProgramming language|language]] that is based exclusively on [[message passing]] and not [[Delegation (object-oriented programming)|delegation]]. Agora was intended to show that even subject to that limitationlimit, it is possible to build a full-fledged object-oriented language that features [[Inheritance (object-oriented programming)|inheritance]], [[Clone (Java method)|cloning]], and reflective [[Operator (computer programming)|operators]].
 
==Overview==
The idea is that an [[Object (computer science)|object]] is fully [[Encapsulation (computer programming)|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 perfectlyfully capableable ofto cloningclone and extendingextend itself. This is accomplished by special [[Method (computer programming)|methods]] callednamed ''cloning'' methods and ''[[mixin|Mixin Method]]'' methods.
 
Agora has been implemented in [[Agora98C++]], the[[Java latest implementation of(programming Agoralanguage)|Java]], is done in [[JavaScheme (programming language)|JavaScheme]], and [[Smalltalk]]. Agora98, the latest implementation of Agora, done in Java, allows full access to all Java application programming interfaces ([[API]]s), including the ability to create [[Java applet|applets]]s from within Agora98. From the language point of viewviewpoint, Agora98 is a considerable simplification of previousprior Agora versions of Agora.
 
==References==
Line 14:
 
==External links==
* [http://prog{{Official website|soft.vub.ac.be/research/agora/ Agora home page]}}
 
[[Category:Prototype-based programming languages]]