A programming language is viewed as a language for expressing “instructions” for a computation to be performed by a particular machine. A class of abstract machines (which includes universal machines) is defined. These machines are viewed as devices which execute “instructions” expressed in programming languages. Using this model and an appropriate definition of a programming language, it is shown that there is at least one system of logic which has the following properties for all machines in this class.o(1) For three concepts of the equivalence of computations and of programs, this system can be used to show that two computations or programs are or are not equivalent.(2) Given a program and a finite number of functions, this system can be...