Download Free Algebraic System Specification And Development Book in PDF and EPUB Free Download. You can read online Algebraic System Specification And Development and write the review.

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.
Methods for the algebraic specification of abstract data types were proposed in the early 1970s in the USA and Canada and became a major research issue in Europe shortly afterwards. Since then the algebraic approach has come to play a central role in research on formal specification and development, as its range of applications was extended to the specification of complete software systems, to the formal description of the program development process, and to the uniform definition of syntax and semantics of programming languages. Today this approach extends beyond just software to the development of integrated hardware and software systems. These flourishing activities in the area of algebraic specifications have led to an abundance of approaches, theories and concepts, which have universal algebra, category theory and logic as a common mathematical basis. This volume is an annotated bibliography which provides an up-to-date overview of past and present work on algebraic specification. No attempt is made to provide a coherent introduction to the topic for beginners; the intention is rather to provide a guide to the current literature for researchers in algebraic specification and neighboring fields. Some indications of how the different approaches are related are included, together with some ideas concerning possible future directions.
The aim of this book is to present fundamentals of algebraic specifications with respect to the following three aspects: fundamentals in the sense of a carefully motivated introduction to algebraic specifications, which is easy to understand for computer scientists and mathematicians; fundamentals in the sense of mathematical theories which are the basis for precise definitions, constructions, results, and correctness proofs; and fundamentals in the sense of concepts, which are introduced on a conceptual level and formalized in mathematical terms. The book is equally suitableas a text book for graduate courses and as a reference for researchers and system developers.
Software Engineering with OBJ: Algebraic Specification in Action is a comprehensive introduction to OBJ, the most widely used algebraic specification system. As a formal specification language, OBJ makes specifications and designs more precise and easier to read, as well as making maintenance easier and more accurate. OBJ differs from most other specification languages not just in having a formal semantics, but in being executable, either through symbolic execution with term rewriting, or more generally through theorem proving. One problem with specifications is that they are often wrong. OBJ can help validate specifications by executing test cases, and by proving properties. As well as providing a detailed introduction to the language and the OBJ system that implements it, Software Engineering with OBJ: Algebraic Specification in Action provides case studies by leading practitioners in the field, in areas such as computer graphics standards, hardware design, and parallel computation. The case studies demonstrate that OBJ can be used in a wide variety of ways to achieve a wide variety of practical aims in the system development process. The papers on various OBJ systems also demonstrate that the language is relatively easy to understand, implement, and use, and that it supports formal reasoning in a straightforward but powerful way. Software Engineering with OBJ: Algebraic Specification in Action will be of interest to students and teachers in the areas of data types, programming languages, semantics, theorem proving, and algebra, as well as to researchers and practitioners in software engineering.
This IFIP report is a collection of fundamental, high-quality contributions on the algebraic foundations of system specification. The contributions cover and survey active topics and recent advances, and address such subjects as: the role of formal specification, algebraic preliminaries, partiality, institutions, specification semantics, structuring, refinement, specification languages, term rewriting, deduction and proof systems, object specification, concurrency, and the development process. The authors are well-known experts in the field, and the book is the result of IFIP WG 1.3 in cooperation with Esprit Basic Research WG COMPASS, and provides the foundations of the algebraic specification language CASL designed in the CoFI project. For students, researchers, and system developers.
CASL, the Common Algebraic Specification Language, was designed by the members of CoFI, the Common Framework Initiative for algebraic specification and development, and is a general-purpose language for practical use in software development for specifying both requirements and design. CASL is already regarded as a de facto standard, and various sublanguages and extensions are available for specific tasks. This book illustrates and discusses how to write CASL specifications. The authors first describe the origins, aims and scope of CoFI, and review the main concepts of algebraic specification languages. The main part of the book explains CASL specifications, with chapters on loose, generated and free specifications, partial functions, sub- and supersorts, structuring specifications, genericity and reusability, architectural specifications, and version control. The final chapters deal with tool support and libraries, and present a realistic case study involving the standard benchmark for comparing specification frameworks. The book is aimed at software researchers and professionals, and follows a tutorial style with highlighted points, illustrative examples, and a full specification and library index. A separate, complementary LNCS volume contains the CASL Reference Manual.
Language prototyping provides a means to generate language implementations automatically from high-level language definitions. This volume presents an algebraic specification approach to language prototyping, and is centered around the ASF+SDF formalism and Meta-Environment. The volume is an integrated collection of articles covering a number of case studies, and includes several chapters proposing new techniques for deriving advanced language implementations. The accompanying software is freely available.
This is a report on the formal definition of the CafeOBJ algebraic specification language, which is a modern successor to the famous algebraic language OBJ. While the equational core of CafeOBJ is just a reshaping of OBJ, CafeOBJ significantly extends OBJ by incorporating several recent major developments in the area of algebraic specification, such as behavioural specification and rewriting logic. The definition of the language parallels its logical semantics based on the so-called institutions, which also provide a methodological framework for structuring the presentation of the basic constructs of the language and their semantics. This report presents all the basic constructs of the language together with their semantics and addresses both the programming in-the-small and in-the-large levels. However, it also discusses proof systems and technologies, as well as methodologies. Examples are provided throughout the report as intuitive support for the definitions of the constructs and for illustrating proof techniques and methodologies.
Since the early seventies concepts of specification have become central in the whole area of computer science. Especially algebraic specification techniques for abstract data types and software systems have gained considerable importance in recent years. They have not only played a central role in the theory of data type specification, but meanwhile have had a remarkable influence on programming language design, system architectures, arid software tools and environments. The fundamentals of algebraic specification lay a basis for teaching, research, and development in all those fields of computer science where algebraic techniques are the subject or are used with advantage on a conceptual level. Such a basis, however, we do not regard to be a synopsis of all the different approaches and achievements but rather a consistently developed theory. Such a theory should mainly emphasize elaboration of basic concepts from one point of view and, in a rigorous way, reach the state of the art in the field. We understand fundamentals in this context as: 1. Fundamentals in the sense of a carefully motivated introduction to algebraic specification, which is understandable for computer scientists and mathematicians. 2. Fundamentals in the sense of mathematical theories which are the basis for precise definitions, constructions, results, and correctness proofs. 3. Fundamentals in the sense of concepts from computer science, which are introduced on a conceptual level and formalized in mathematical terms.
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.