scientific article; zbMATH DE number 1227059
Dependent on the used programming languages and programming technology there is still a lot of difficulties in the process of developing, maintaining, and reusing software. Techniques for encouraging software modularity, and improving software documentation as well as specification techniques can help to lessen these difficulties. Suitable reengineering approaches of legacy code can contribute to a better software quality, too. The book describes how to employ formal specification techniques to improve the ways programs are constructed and reengineered also in the case the underlying programming language lacks suitable support. The approach employs two levels of specification languages: 1. LSL (Larch Shared Language) is used to capture mathematical abstractions. They are programming language independent and are applied by the specification languages of the second level. 2. The Larch interface languages are specific to the intended implementation languages. Specification modules describe data and control transfer to and from the caller of a procedure. LCL (Larch/C Interface Language) -- a language of the second level -- is described in detail. It is an extended version of the LCL Version 1.0. A new construct are e.g. claims. Claims are logically redundant because they should follow from the specifications. On the other side they can be used to give problem-specific information about a specification and to check specifications. A big example demonstrates a software reengineering process and demonstrates how the approach supports the programming style. The book is a revised edition of a MIT doctoral thesis. It will be of interest to C programmers who are looking for support to write more modular code including abstract data types and who have to maintain legacy C code. It is also of interest to designers of specification languages.
This page was built for publication:
Report a bug (only for logged in users!)Click here to report a bug for this page (MaRDI item Q4220643)