at:tutorial:symbiosis
Differences
This shows you the differences between two versions of the page.
Both sides previous revisionPrevious revisionNext revision | Previous revisionNext revisionBoth sides next revision | ||
at:tutorial:symbiosis [2007/04/06 16:00] – jdedecker | at:tutorial:symbiosis [2007/06/19 10:40] – jdedecker | ||
---|---|---|---|
Line 8: | Line 8: | ||
This chapter explains how both sides of this symbiotic relationship between Java and AmbientTalk can be leveraged. The goal of this symbiotic relationship is to complement the advantages of both languages and to alleviate their disadvantages. | This chapter explains how both sides of this symbiotic relationship between Java and AmbientTalk can be leveraged. The goal of this symbiotic relationship is to complement the advantages of both languages and to alleviate their disadvantages. | ||
+ | |||
+ | ===== 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: | ||
+ | |||
+ | {{: | ||
===== Accessing Java classes ===== | ===== Accessing Java classes ===== | ||
Line 18: | Line 23: | ||
===== Creating Java objects ===== | ===== Creating Java objects ===== | ||
- | Creating a new instance of the Vector | + | Java classes can be instantiated in AmbientTalk similar to how AmbientTalk objects are instantiated, |
+ | the Java constructor. For example, in the snippet code below **new** method is invoked | ||
< | < | ||
Line 25: | Line 31: | ||
</ | </ | ||
- | ===== Using Java wrappers | + | All constructors defined in the corresponding Java class can be accessed too. For example, |
+ | |||
+ | < | ||
+ | >aVector := Vector.new(30) | ||
+ | >>< | ||
+ | </ | ||
+ | |||
+ | ===== Invoking methods on Java objects | ||
+ | Java objects appear as AmbientTalk objects whose field and method slots correspond to public instance-level fields and methods in the Java object. These are accessed or invoked as if they were plain AmbientTalk slots. | ||
+ | |||
+ | < | ||
+ | >1.to: 10 do: { |i| aVector.add(i) } | ||
+ | >> | ||
+ | > | ||
+ | >>< | ||
+ | </ | ||
===== Overloading ===== | ===== Overloading ===== | ||
+ | |||
+ | ===== Concurrency ===== | ||
+ | |||
+ | ===== Distribution ===== | ||
+ | |||
+ | ===== Using Java wrappers ===== | ||
===== Symbionts ===== | ===== Symbionts ===== |
at/tutorial/symbiosis.txt · Last modified: 2013/05/17 20:25 by tvcutsem