This paper describes a novel approach to high-level robot programming based on a highly developed logica] theory of action. The user provides a specification of the robot’s basic actions (their preconditions and effects on the environment) as well as of relevant aspects of the environment, in an extended version of the situation calculus. He can then specify robot behaviors in terms of these actions in a programming language that allows references to world conditions (e.g. if 3c(PoP-CAN(c) A ON_TABLE(c)) then PICK_UP(c)). The programs can be executed to drive the robot. The interpreter automatically maintains the world model required to execute programs based on the specification. The theoretical framework includes a solution to the frame problem and is very general -- it handles dynamic and incompletely known worlds, as well as perception actions. Given this kind of domain specification, it is Mso possible to support more sophisticated reasoning, such as task planning at run-time. The specification can also be used to prove the robot control programs correct. A simple mall delivery application is used to present the approach. Ongoing work on implementing the approach and handling outstanding problems, such as modeling noisy sensors, is also described.