Inheritance, Specification and Documentation Support for an Object-Oriented Language. Liang, J. Master's thesis, McMaster University, Hamilton, Ontario, Canada, August, 2004.
Inheritance, Specification and Documentation Support for an Object-Oriented Language [pdf]Paper  abstract   bibtex   
Lime is an object-oriented programming language with action-based concurrency. Concurrency in Lime has been previously implemented. Our current work integrates specification and documentation features into Lime and its compiler. The goal of this integration is to improve software quality, in particular correctness, extensibility, and maintainability in a uniform and coherent manner. Lime provides a flexible inheritance mechanism that separates subclassing (code sharing) from subtyping (substitutability). Any class can sever as a superclass (for the purpose of reuse) or/and as a supertype (for the purpose of specification) and any child class can either inherit the implementation, the interface specification, or both. Behavioral specifications are expressed by preconditions, postconditions and in- variants. These and other intermediate annotations can be written using quantifiers and other standard mathematical notation, and can be checked at run-time. The associated documentation tool generates a description of the behavioral inter- face of each class that includes the preconditions and postconditions of the methods, the class invariants, the subtype hierarchy, and subclass hierarchy.

Downloads: 0