Download Free The Munich Project Cip Book in PDF and EPUB Free Download. You can read online The Munich Project Cip and write the review.

This book is the second of two volumes that present the main results which emerged from the project CIP - Computer-Aided, Intuition-Guided Programming - at the Technical University of Munich. Its central theme is program development by transformation, a methodology which is becoming more and more important. Whereas Volume I contains the description and formal specification of a wide spectrum language CIP-L particularly tailored to the needs of transformational programming, Volume II serves a double purpose: First, it describes a system, called CIP-S, that is to assist a programmer in the method of transformational programming. Second, it gives a non-toy example for this very method, since it contains a formal specification of the system core and transformational developments for the more interesting system routines. Based on a formal calculus of program transformations, the informal requirements for the system are stated. Then the system core is formally specified using the algebraic data types and the pre-algorithmic logical constructs of the wide spectrum language CIP-L. It is demonstrated how executable, procedural level programs can be developed from this specification according to formal rules. The extensive collection of these rules is also contained in the book; it can be used as the basis for further developments using this method. Since the system has been designed in such a way that it is parameterized with the concrete programming language to be transformed, the book also contains a guide how to actualize this parameter; the proceeding is exemplified with a small subset of CIP-L.
Proceedings of the NATO Advanced Research Workshop on Program Transformation and Programming Environments
The intention of this book is to show how algebraic specification methods can be used for software development to support reliability, modifiability and reusability. These methods are introduced by parameterized and module specifications through practical examples and case studies using algebraic specification languages and tools developed at TU Berlin.
"Specification and transformation of programs" is short for a methodology of software development where, from a formal specification of a problem to be solved, programs correctly solving that problem are constructed by stepwise application of formal, semantics-preserving transformation rules. The approach considers programming as a formal activity. Consequently, it requires some mathematical maturity and, above all, the will to try something new. A somewhat experienced programmer or a third- or fourth-year student in computer science should be able to master most of this material - at least, this is the level I have aimed at. This book is primarily intended as a general introductory textbook on transformational methodology. As with any methodology, reading and understanding is necessary but not sufficient. Therefore, most of the chapters contain a set of exercises for practising as homework. Solutions to these exercises exist and can, in principle, be obtained at nominal cost from the author upon request on appropriate letterhead. In addition, the book also can be seen as a comprehensive account of the particular transformational methodology developed within the Munich CIP project.
This volume gives a coherent presentation of the outcome of the project PROSPECTRA (PROgram development by SPECification and TRAnsformation) that aims to provide a rigorous methodology for developing correct software and a comprehensive support system. The results are substantial: a theoretically well-founded methodology covering the whole development cycle, a very high-level specification and transformation language family allowing meta-program development and formalization of the development process itself, and a prototype development system supporting structure editing, incremental static-semantic checking, interactive context-sensitivetransformation and verification, development of transformation (meta-) programs, version management, and so on, with an initial libraryof specifications and a sizeable collection of implemented transformations. The intended audience for this documentation is the academic community working in this and related areas and those members of the industrial community interested in the use of formal methods.
This book provides foundations for software specification and formal software development from the perspective of work on algebraic specification, concentrating on developing basic concepts and studying their fundamental properties. These foundations are built on a solid mathematical basis, using elements of universal algebra, category theory and logic, and this mathematical toolbox provides a convenient language for precisely formulating the concepts involved in software specification and development. Once formally defined, these notions become subject to mathematical investigation, and this interplay between mathematics and software engineering yields results that are mathematically interesting, conceptually revealing, and practically useful. The theory presented by the authors has its origins in work on algebraic specifications that started in the early 1970s, and their treatment is comprehensive. This book contains five kinds of material: the requisite mathematical foundations; traditional algebraic specifications; elements of the theory of institutions; formal specification and development; and proof methods. While the book is self-contained, mathematical maturity and familiarity with the problems of software engineering is required; and in the examples that directly relate to programming, the authors assume acquaintance with the concepts of functional programming. The book will be of value to researchers and advanced graduate students in the areas of programming and theoretical computer science.
Algebraic specification, nondeterminism and term rewriting are three active research areas aiming at concepts for the abstract description of software systems: Algebraic specifications are well-suited for describing data structures and sequential software systems in an abstract way. Term rewriting methods are used in many prototyping systems and form the basis for executing specifi cations. Nondeterminism plays a major role in formal language theory; in programming it serves for delaying design decisions in program development and occurs in a "natural" way in formalisations of distributed processes. Heinrich Hussmann presents an elegant extension of equational specification and term rewriting to include nondeterminism. Based on a clean modeltheoretic semantics he considers term rewriting systems without confluence restrictions as a specification language and shows that fundamental properties such as the existence of initial models or the soundness and completeness of narrowing, the basic mechanism for executing equational specifications, can be extended to nondeterministic computations. The work of Heinrich Hussmann is an excellent contribution to Algebraic Programming; it gives a framework that admits a direct approach to program verification, is suitable for describing concurrent and distributed processes, and it can be executed as fast as Prolog.