For my purposes, a situated agent is a system that has an ongoing interaction with a dynamic environment. It could be a mobile robot, a factory controller, or a software-based meeting scheduler. Traditional models of program specification and correctness are not directly suited for use in situated agents. What Is Important about such agents is their situatedness how they are connected to and affected by their environment. Situated automata theory, developed by Stanley Rosenschein and myself, provides a formal method for characterizing the Interactions between an agent and its situating environment. The designer of an agent can provide declarative, symbolic specifications of the agent's knowledge and behavior, but these specifications can be compiled into a compact, efficient computation to be performed by the agent. In addition, situated automata theory allows the analysis of different choices of representation of the internal state of an agent. This analysis provides a technical basis for arguing that, in many cases, traditional "symbolic" representations are inefficient and difficult to maintain correctly. It also points out cases In which symbolic representations are to be preferred.