As an alternative to planning, an approach to high-level agent control base
d on concurrent program execution is considered. A formal definition in the
situation calculus of such a programming language is presented and illustr
ated with some examples. The language includes facilities for prioritizing
the execution of concurrent processes, interrupting the execution when cert
ain conditions become true, and dealing with exogenous actions. The languag
e differs from other procedural formalisms for concurrency in that the init
ial state can be incompletely specified and the primitive actions can be us
er-defined by axioms in the situation calculus. Some mathematical propertie
s of the language are proven, for instance, that the proposed semantics is
equivalent to that given earlier for the portion of the language without co
ncurrency. (C) 2000 Elsevier Science B.V. All rights reserved.