This is an old revision of the document!
In this section, we explain how the object-oriented programming paradigm is implemented in AmbientTalk.
In AmbientTalk, objects are not instantiated from classes. Rather, they are either created ex-nihilo or by cloning and adapting existing objects, like prototypes in the SELF programming language. The definition of such a prototypical object contains a number of fields and methods that represent the object's state and behaviour respectively.
The following code illustrates the ex-nihilo creation of an object:
> def Point := object: { def x := 0; def y := 0; def init(m,n) { x := m; y := n; } def sumofsquares() { x*x + y*y }; } >><object:439658>
This object can be instantiated to create new points as follows:
> def initialPoint := Point.new(0,0)
In AmbientTalk, computation is expressed in terms of object sending messages to one another.