ParC is an extension of the C programming language with block-oriented
parallel constructs that allow the programmer to express fine-grain p
arallelism in a shared-memory model, It is suitable for the expression
of parallel shared-memory algorithms, and also conducive for the para
llelization of sequential C programs. In addition, performance enhanci
ng transformations can be applied within the language, without resorti
ng to low-level programming, The language includes closed constructs t
o create parallelism, as well as instructions to cause the termination
of parallel activities and to enforce synchronization. The parallel c
onstructs are used to define the scope of shared variables, and also t
o delimit the sets of activities that are influenced by termination or
synchronization instructions. The semantics of parallelism are discus
sed, especially relating to the discrepancy between the limited number
of physical processors and the potentially much larger number of para
llel activities in a program.