Summary of lecture:
The third lecture on February 20th, 2012 was about implementation of Emerald:
- How objects are represented in memory,
- how remote invocations are implemented,
- how procedure calls are implemented using activation records on a stack,
- how objects have globally unique Object Identifiers (OID).
- How remote references are implemented by splitting objects into an object descriptor (a copy on each node that knows the object) and an Object Data Area with the actual data of the object and a code "object" where the code for the object is located.
I also described how objects are moved from one machine to another and how this may include actively executing Emerald processes (threads).
I did not have time to describe implementation of immutability: will do that in the fourth lecture as well as a minor language issue: how to do asyncrhonous calls in Emerald.
Almost all of the material can be found in my Ph.D. thesis most in Chapter 4.
See also pictures from the lecture whiteboard /bilder