1. Discuss an enrichment of the Larch specification language described in by allowing genericity. 2. Discuss the differences between specifying the behavior of objects of a certain class by using (1) State charts, (2) an algebraic language like Larch, and (3) preconditions, postconditions, and invariants. 3. Define a specification-design language for algebraic equations based on Larch and on the design notation of. Give examples of the use of this language, and sketch its translation into a programming language. The main idea is to move from the definition of an algebra to the definition of an abstract data type by specifying which operations become procedures and which become functions.