the algorithm (together with its inputs), the input property, and the desired input-output relation. • Specification of an algorithm is a contract between the designer and users of the algorithm. • Abstraction is the process of hiding or ignoring the details irrelevant to the task so as to model a problem only by its essential features. • Specification abstracts a problem by the essential variables of the problem.
• The values of the variables in an algorithm define the state of the process. • Assignment statement changes the values of variables, and hence the state.