A plan calculus is presented that is used to represent programs as well as a library of standard data and control abstractions in the Programmer’s Apprentice. Important features of this formalism include programming language independence, additivity, verifiability, and multiple points of view. The logical foundations of the representation are specified formally by using a situational calculus in which side effects and overlapping mutable data structures are accounted for. The plan calculus is compared with other formalisms such as program schemas, and its advantages are pointed out.
This chapter ...