Fundamentals of Algebraic Specification 1


Book Description

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.




Semantics and Algebraic Specification


Book Description

proceedings of the symposium. Somecontributorswereunabletoattendthe event.




Foundations of Algebraic Specification and Formal Software Development


Book Description

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 Approaches to Program Semantics


Book Description

In the 1930s, mathematical logicians studied the notion of "effective comput ability" using such notions as recursive functions, A-calculus, and Turing machines. The 1940s saw the construction of the first electronic computers, and the next 20 years saw the evolution of higher-level programming languages in which programs could be written in a convenient fashion independent (thanks to compilers and interpreters) of the architecture of any specific machine. The development of such languages led in turn to the general analysis of questions of syntax, structuring strings of symbols which could count as legal programs, and semantics, determining the "meaning" of a program, for example, as the function it computes in transforming input data to output results. An important approach to semantics, pioneered by Floyd, Hoare, and Wirth, is called assertion semantics: given a specification of which assertions (preconditions) on input data should guarantee that the results satisfy desired assertions (postconditions) on output data, one seeks a logical proof that the program satisfies its specification. An alternative approach, pioneered by Scott and Strachey, is called denotational semantics: it offers algebraic techniques for characterizing the denotation of (i. e. , the function computed by) a program-the properties of the program can then be checked by direct comparison of the denotation with the specification. This book is an introduction to denotational semantics. More specifically, we introduce the reader to two approaches to denotational semantics: the order semantics of Scott and Strachey and our own partially additive semantics.




Software Engineering with OBJ


Book Description

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.




Algebraic Methods in Semantics


Book Description

This book, which contains contributions from leading researchers in France, USA and Great Britain, gives detailed accounts of a variety of methods for describing the semantics of programming languages, i.e. for attaching to programs mathematical objects that encompass their meaning. Consideration is given to both denotational semantics, where the meaning of a program is regarded as a function from inputs to outputs, and operational semantics, where the meaning includes the sequence of states or terms generated internally during the computation. The major problems considered include equivalence relations between operational and denotational semantics, rules for obtaining optimal computations (especially for nondeterministic programs), equivalence of programs, meaning-preserving transformations of programs and program proving by assertions. Such problems are discussed for a variety of programming languages and formalisms, and a wealth of mathematical tools is described.




Algebraic Specification Techniques in Object Oriented Programming Environments


Book Description

"The main aim of this monograph is to provide a framework for the integrated design of object-oriented programs with algebraic specification techniques. The design method pursued relies fundamentally on the structuring of systems based on the notion of data types. Depending on the level of abstraction, data types are described in an object-oriented way by algebraic specifications or by machine-executable object-oriented programs. The treatment involves two main aspects. First, object-oriented programs have to be related by a notion of correctness that models the transition from specifications to program implementations. The author presents a notion of correctness which relies on the idea of abstraction functions. Second, in order to obtain an integrated design environment, a uniform structuring concept for object oriented programs and algebraic specifications has to be provided. Inheritance, subtyping and clientship are three central notions of object-oriented structuring. Theauthor uses them to develop the kernel of a typed object- oriented programming language. The monograph provides the formal foundation for a unified framework of algebraic specifications and object-oriented programs. A major guideline is the development of a design method supporting the structured design and reuse of software in this environment."--PUBLISHER'S WEBSITE.




Language Prototyping


Book Description

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.




CAFE: An Industrial-Strength Algebraic Formal Method


Book Description

This book contains selected papers on the language, applications, and environments of CafeOBJ, which is a state-of -the-art algebraic specification language. The authors are speakers at a workshop held in 1998 to commemorate a large industrial/academic project dedicated to CafeOBJ. The project involved more than 40 people from more than 10 organisations, of which 6 are industrial. The workshop attracted about 30 talks and more than 70 attendees.The papers in the book however, are either heavily revised versions presented at the workshop, to reflect recent advancements or research; or completely new ones, written especially for this book. In this regard, the book is not a usual postpublication after a workshop. Also, although it is a compendium of papers that are related to CafeOBJ, the book is not a manual, reference, or tutorial of CafeOBJ. Probably the best description is that it is a collection of papers that investigate how to use, or to make it easy to use, CafeOBJ. Reflecting the diverse nature of the project and its participants (most of the authors are participants to the project), the papers, put together, offer a comprehensive picture from this methodological perspective.Some papers deal with various advanced aspects of the language, such as rewriting logic and behavioural logic. For rewriting logic, a couple of significant applications were reported. In particular, UML, now considered de facto standard language for modelling systems, is the subject of one paper. For behavioural logic, new methodological guidelines are presented. Some papers shed new light on a more traditional paradigm in the language; order-sorted equational specifications. One paper, in particular, deal with a way to associate CafeOBJ with object-oriented programming. The other papers deal with environments for writing and vertifying specifications written in CafeOBJ. Underlying those papers are two major considerations: user interfaces for manipulating specifications, and systematic supports for proofs. All the environments explained in the papers assume and support distributed computing, and de facto standard network technologies, such as WWW and http, are incorporated.




Logics of Specification Languages


Book Description

This book presents comprehensive studies on nine specification languages and their logics of reasoning. The editors and authors are authorities on these specification languages and their application. In a unique feature, the book closes with short commentaries on the specification languages written by researchers closely associated with their original development. The book contains extensive references and pointers to future developments.