This paper proposes a new logic programming language called GOLOG whos
e interpreter automatically maintains an explicit representation of th
e dynamic world being modeled, on the basis of user supplied axioms ab
out the preconditions and effects of actions and the initial state of
the world. This allows programs to reason about the state of the world
and consider the effects of various possible courses of action before
committing to a particular behavior. The net effect is that programs
may be written at a much higher level of abstraction than is usually p
ossible. The language appears well suited for applications in high lev
el control of robots and industrial processes, intelligent software ag
ents, discrete event simulation, etc. It is based on a formal theory o
f action specified in an extended version of the situation calculus. A
prototype implementation in Prolog has been developed. (C) 1997 Elsev
ier Science Inc., 1997.