Execution Monitoring of High-Level Robot Programs. Giuseppe De Giacomo, Ray Reiter and Mikhail Soutchanski Imagine a robot that is executing a program on-line, and, insofar as it is reasonable to do so, it wishes to continue with this on-line program execution, no matter what exogenous events occur in the world. Execution monitoring is the robot's process of observing the world for discrepancies between the actual world and its internal representation of it, and recovering from such discrepancies. We provide a situation calculus-based account of such on-line program executions, with monitoring. This account relies on a specification for a single-step interpreter for the logic programming language Golog. The theory is supported by an implementation that is illustrated by a standard blocks world in which a robot is executing a Golog program to build a suitable tower. The monitor makes use of a simple kind of planner for recovering from malicious exogenous actions performed by another agent. After performing the sequence of actions generated by the recovery procedure, the robot eliminates the discrepancy and resumes executing its tower-building program.