Skip to content
copton edited this page Jan 13, 2011 · 6 revisions
  1. T-Code: the input to the compiler. The semantics of T-Code is cooperative threads with blocking operations. There is no runtime of T-Code. Thus, there is no T-Code implementation of basic operations.
  2. E-Code: the output of the compiler. The semantics of E-Code is events with split-phase (aka. non-blocking) operations. The execution of E-code requires an event-based runtime platform and a PAL.
  3. runtime platform: the event-based environment for which the E-Code is generated. Examples include TinyOS and Contiki.
  4. basic operation: on the T-Code side this is a blocking function of the runtime platform. Examples include I/O operations and sleep. On the E-Code side, there is a split-phase implementation for each basic function included in the PAL.
  5. PAL: the platform abstraction layer is the platform dependant set of implementations of basic functions.
  6. critical function: a basic function is a critical function. A function which calls a critical function is itself critical.
  7. critical call: a call of a critical function.
  8. start routine: the first function of a thread where its execution begins.
  9. context variable: a local variable of a critical function whose state must be preserved beyond the scope of the enclosing function, for instance because of a critical call.
  10. continuation: information about where to continue the computation upon completion of a split-phase operation. Depending on the applied compilation scheme this is a function pointer, a computed goto or a marker.
  11. T-stack: A per-thread structure containing thread context information. This includes context variable and continuations.
  12. E-stack: this is the normal runtime stack of the E-code.
  13. platform configuration file: a file that describes the runtime platform. Among other things this includes the set of basic operations and their signatures.

Clone this wiki locally