User Tools

Site Tools


at:tutorial:symbiosis

Differences

This shows you the differences between two versions of the page.

Link to this comparison view

Both sides previous revisionPrevious revision
Next revision
Previous revision
Next revisionBoth sides next revision
at:tutorial:symbiosis [2007/06/20 14:36] jdedeckerat:tutorial:symbiosis [2007/07/04 22:42] jdedecker
Line 10: Line 10:
  
 ===== Symbiosis Architecture ===== ===== Symbiosis Architecture =====
-AmbientTalk has been implemented in Java. Because of this, Java plays two roles: it is both a symbiont language and the implementation language of AmbientTalk (and hence of the linguistic symbiosis itself). Figure \ref{fig:wrappers} illustrates the different objects that play a part in the AmbientTalk/Java symbiosis, according to the implementation model of Inter-language reflection. AmbientTalk objects are physically implemented as Java objects. This is illustrated by means of the ``represents'' relationship. To enable symbiosis, additional objects are required which denote the //appearance// of objects from one language in the other language. At the implementation level, such appearances are implemented as //wrapper// objects, which wrap an object from a different language and which perform the protocol mapping which translates between the semantics of the symbiont languages. +AmbientTalk has been implemented in Java. Because of this, Java plays two roles: it is both a symbiont language and the implementation language of AmbientTalk (and hence of the linguistic symbiosis itself). The figure below illustrates the different objects that play a part in the AmbientTalk/Java symbiosis, according to the implementation model of Inter-language reflection. AmbientTalk objects are physically implemented as Java objects. This is illustrated by means of the "representsrelationship. To enable symbiosis, additional objects are required which denote the //appearance// of objects from one language in the other language. At the implementation level, such appearances are implemented as //wrapper// objects, which wrap an object from a different language and which perform the protocol mapping which translates between the semantics of the symbiont languages. 
  
 {{:at:tutorial:wrapper-architecture.png?450|Symbiotic representation of AmbientTalk and Java Objects}} {{:at:tutorial:wrapper-architecture.png?450|Symbiotic representation of AmbientTalk and Java Objects}}
Line 58: Line 58:
  
 <code> <code>
-Add code that shows how to disambiguate between overloaded methods+aVector.remove.cast(jlobby.java.lang.Integer)(1) 
 +aVector.remove.cast(jlobby.java.lang.Object)(3)
 </code> </code>
- 
-==== Concurrency ==== 
  
 ===== Accessing AmbientTalk from within Java ===== ===== Accessing AmbientTalk from within Java =====
Line 114: Line 113:
  
 If Java invokes a method declared in an interface with an overloaded method signature, all overloaded invocations are transformed into the same method invocation on the AmbientTalk object. In other words, the AmbientTalk object does not take the types into consideration. However, if the Java method is overloaded based on arity, the AmbientTalk programmer can take this into account in the parameter list of the corresponding AmbientTalk method, by means of a variable-argument list or optional parameters. Otherwise, the Java invocation may fail because of an arity mismatch. If Java invokes a method declared in an interface with an overloaded method signature, all overloaded invocations are transformed into the same method invocation on the AmbientTalk object. In other words, the AmbientTalk object does not take the types into consideration. However, if the Java method is overloaded based on arity, the AmbientTalk programmer can take this into account in the parameter list of the corresponding AmbientTalk method, by means of a variable-argument list or optional parameters. Otherwise, the Java invocation may fail because of an arity mismatch.
- 
-==== Thread-Actor Symbiosis ==== 
at/tutorial/symbiosis.txt · Last modified: 2013/05/17 20:25 by tvcutsem