Most programming languages or modeling systems use either sequential c
ontrol or, in the other extreme, complete concurrency. We propose here
a control structure consisting essentially of dynamic priority relati
ons between elementary steps. Elementary steps may be executed if they
are ''enabled'' (executable) and if at that time no other elementary
step with a higher priority is enabled. This leaves much room for conc
urrency. Priorities can be changed after executing a step. Such a cont
rol structure can be imposed on Petri nets; this has been investigated
more closely for the modeling language MoMo (i.e., for its task layer
), which is based on colored Petri nets. The proposed task layer langu
age is presented here in some detail. It has been tried out with sever
al medium-size examples selected to find out to which limits this cont
rol principle is feasible. Few priorities have been needed and rarely
dynamic ones. Dynamic priorities can in principle be modeled in higher
Petri nets, but that easily leads to complicated structures. The sepa
rate control with priorities is much simpler and more flexible.