Notes
Outline
Process
May declare fields and functions
May  be extended to define other processes
Object orientation a la Java and C++
Fields and functions are private unless declared public
Contain at least one constructor and a thread function
Interact with other object through port
Port
Special field of type interface
Interface
Declare function with input/output type without implementing them
Process access port through calling interface functions
An example process
Update
Function may change the state of media that implements the interface
Eval
Function may NOT change the state of the media…
Medium
Implements interfaces by providing code for the function of the interfaces
May define fields and functions
An example medium
await
The only construct in metamodel for synchronization
Implement critical sections
Await ( guard ; test list; set list){critical section}
Guard: condition that must hold for execution to continue
Test list: other process should not have set these
Set list: other process can not set theses now
Nondeterminism
Await{ ( g1 ; t1 ; s1 ) c1 , ( g2 ; t2 ; s2 ) c2…}
Another example process
Refinement
Netlist after Refinement
Constraints
Two mechanisms are supported to specify constraints:
   1. Propositions over temporal orders of states
execution is a sequence of states
specify constraints using linear temporal logic
good for scheduling constraints, e.g.
“if process P starts to execute a statement s1, no other process can start the statement until P reaches a statement s2.”
   2. Propositions over instances of transitions between states
particular transitions in the current execution: called “actions”
annotate actions with quantity, such as time, power.
specify constraints over actions with respect to the quantities
good for real-time constraints, e.g.
“any successive actions of starting a statement s1 by process P must take place with at most 10ms interval.”
Netlist after Refinement
Linear Temporal Logic