Summary of Thursday, January 30
Path Expressions
Programming is hard; Declarative expressions are easier.
-
CSP/Serializers
-
They are a programming form.
-
Programming is hard.
-
Path Expressions
-
They are declarative expressions.
-
Declarative expressions are easier and more natural than programming.
What is a Path Expression?
-
It is a declarative specification of synchronization between procedures.
-
Automatically generated code uses semaphores for the automatic enforcement of the synchronization.
-
There is a trade off between
-
the power of the synchronization mechanisms, (not exactly turbo charged...)
-
the efficiency of the generated code, and (run it during lunch break...)
-
the complexity of the language. (might as well program...)
The Translator
Path expression
translator
code
-
The path expression takes the form:
path
expr
,
expr
,...,
expr
end -
The translator is a simple set of rules that does the automatic code generation.
-
The code is a set of procedures with a prologue and an epilogue.
The prologue checks to see if the procedure can begin.
The epilogue tells when the procedure is finished.
Operators
The expressions are formed from the following operators (where x and y are procedures or path expressions):
-
sequencer: x;y
x must execute before y.
put; get -
restrictor: n:(x)
x has a maximum of n concurrent executions.
1:(write) -
derestrictor: [x]
x can have an unlimited number of concurrent executions.
[read] -
grouping: (...)
expresses precedence or nesting. -
compound example:
1:(write),[read]
The Comma
The comma can be a
-
OR - if procedure names on either side of the comma are different.
-
composition (seperator) - if procedure names on either side of the comma are the same.
Sean Timm
Wed., Feb. 5, 1997