Agora (programming language): Difference between revisions

Content deleted Content added
Danakil (talk | contribs)
m ext links
WP:LINKs: update-standardizes, adds, needless WP:PIPEs > WP:NOPIPEs. Small WP:COPYEDITs WP:EoS WP:TERSE. Template:Official website add.
 
(20 intermediate revisions by 18 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 it'sits 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-]]'' methods.
 
Agora has been implemented in [[C++]], [[Java (programming language)|Java]], [[Scheme (programming language)|Scheme]], and [[Smalltalk]]. Agora98, the latest implementation of Agora, is done in Java and, allows full access to all Java application programming interfaces ([[API']]s), including the ability to create applets[[Java applet]]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:Programming languages]]
[[Category:Object-oriented programming languages]]
[[Category:Prototype-based programming languages]]