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.




Larch: Languages and Tools for Formal Specification


Book Description

Building software often seems harder than it ought to be. It takes longer than expected, the software's functionality and performance are not as wonderful as hoped, and the software is not particularly malleable or easy to maintain. It does not have to be that way. This book is about programming, and the role that formal specifications can play in making programming easier and programs better. The intended audience is practicing programmers and students in undergraduate or basic graduate courses in software engineering or formal methods. To make the book accessible to such an audience, we have not presumed that the reader has formal training in mathematics or computer science. We have, however, presumed some programming experience. The roles of fonnal specifications Designing software is largely a matter of combining, inventing, and planning the implementation of abstractions. The goal of design is to describe a set of modules that interact with one another in simple, well defined ways. If this is achieved, people will be able to work independently on different modules, and yet the modules will fit together to accomplish the larger purpose. In addition, during program maintenance it will be possible to modify a module without affecting many others. Abstractions are intangible. But they must somehow be captured and communicated. That is what specifications are for. Specification gives us a way to say what an abstraction is, independent of any of its implementations.




Hybrid Parallel Execution Model for Logic-based Specification Languages


Book Description

Parallel processing is a very important technique for improving the performance of various software development and maintenance activities. The purpose of this book is to introduce important techniques for parallel executation of high-level specifications of software systems. These techniques are very useful for the construction, analysis, and transformation of reliable large-scale and complex software systems. Contents: Current Approaches; Overview of the New Approach; FRORL Requirements Specification Language and Its Decomposition; Rewriting and Data Dependency, Control Flow Analysis of a Logic-Based Specification; Hybrid and-or Parallelism Implementation; Efficiency Considerations and Experimental Results; Mode Information Support for Automatic Transformation System; Describing Non-Functional Requirements in FRORL. Readership: Graduate students, engineers and researchers in computer science.




Algol-like Languages


Book Description

To construct a compiler for a modern higher-level programming languagel one needs to structure the translation to a machine-like intermediate language in a way that reflects the semantics of the language. little is said about such struc turing in compiler texts that are intended to cover a wide variety of program ming languages. More is said in the Iiterature on semantics-directed compiler construction [1] but here too the viewpoint is very general (though limited to 1 languages with a finite number of syntactic types). On the other handl there is a considerable body of work using the continuation-passing transformation to structure compilers for the specific case of call-by-value languages such as SCHEME and ML [21 3]. ln this paperl we will describe a method of structuring the translation of ALGOL-like languages that is based on the functor-category semantics devel oped by Reynolds [4] and Oles [51 6]. An alternative approach using category theory to structure compilers is the early work of F. L. Morris [7]1 which anticipates our treatment of boolean expressionsl but does not deal with procedures. 2 Types and Syntax An ALGOL-like language is a typed lambda calculus with an unusual repertoire of primitive types. Throughout most of this paper we assume that the primi tive types are comm(and) int(eger)exp(ression) int(eger)acc(eptor) int(eger)var(iable) I and that the set 8 of types is the least set containing these primitive types and closed under the binary operation -.




Advances in Design and Specification Languages for SoCs


Book Description

The seventh book in the CHDL Series is composed of a selection of the best articles from the Forum on Specification and Design Languages (FDL'04). FDL is the European Forum to learn and exchange on new trends on the application of languages and models for the design of electronic and heterogeneous systems. The forum was structured around four workshops that are all represented in the book by outstanding articles: Analog and Mixed-Signal Systems, UML-based System Specification and Design, C/C++-Based System Design and Languages for Formal Specification and Verification. The Analog and Mixed-Signal Systems contributions bring some answers to the difficult problem of co-simulating discrete and continuous models of computation. The UML-based System Specification and Design chapters bring insight into how to use the Model Driven Engineering to design Systems-on-Chip. The C/C++-Based System Design articles mainly explore system level design with SystemC. The Languages for FormalSpecification and Verification is represented by an invited contribution on the use of temporal assertions for symbolic model checking and simulation. And finally chapter in this book contributed by preeminent members of the automotive design industry presents the recent industry standard AutoSAR. Overall Advances in Design and Specification Languages for SoCs is an excellent opportunity to catch up with the latest research developments in the field of languages for electronic and heterogeneous system design.




Software Abstractions


Book Description

An approach to software design that introduces a fully automated analysis giving designers immediate feedback, now featuring the latest version of the Alloy language. In Software Abstractions Daniel Jackson introduces an approach to software design that draws on traditional formal methods but exploits automated tools to find flaws as early as possible. This approach—which Jackson calls “lightweight formal methods” or “agile modeling”—takes from formal specification the idea of a precise and expressive notation based on a tiny core of simple and robust concepts but replaces conventional analysis based on theorem proving with a fully automated analysis that gives designers immediate feedback. Jackson has developed Alloy, a language that captures the essence of software abstractions simply and succinctly, using a minimal toolkit of mathematical notions. This revised edition updates the text, examples, and appendixes to be fully compatible with Alloy 4.




Semantics of Specification Languages (SoSL)


Book Description

SoSL was the first International Workshop on Semantics of Specification Languages, held from 25-27 October 1993 in Utrecht, the Netherlands. The workshop was organized by the Department of Philosophy of Utrecht University with financial support from the Nationale Faciliteit Informatica of the Nederlandse Organisatie voor Wetenschappelijk Onderzoek (NWO), and under the auspices of the British Computer Society'S specialist group in Formal Aspects of Computing Science (BCS FACS). The concern of the workshop was the semantics of specification languages, and the issues closely related to this area, such as type checking and the justification of proof rules and proof obligations. Its aim was the exchange of problems and ideas in this field of formal methods, and the identification of common programs of work for further investigation. The program of SoSL consisted of 3 invited lectures presenting the developments of the semantics of 3 major specification languages. Furthermore, there were 16 presentations of submitted papers. This volume provides a direct account of the workshop. It contains 3 papers that match the invited lectures and the 16 selected papers. The editors want to thank all those who have contributed to the workshop; the Program Committee and the referees for selecting the contributed papers, the invited speakers for their interesting talks, the Organizing Committee for all their efforts, and of course the participants. We have the feeling that the workshop was worthwhile and should be repeated.




Answer Set Programming


Book Description

Answer set programming (ASP) is a programming methodology oriented towards combinatorial search problems. In such a problem, the goal is to find a solution among a large but finite number of possibilities. The idea of ASP came from research on artificial intelligence and computational logic. ASP is a form of declarative programming: an ASP program describes what is counted as a solution to the problem, but does not specify an algorithm for solving it. Search is performed by sophisticated software systems called answer set solvers. Combinatorial search problems often arise in science and technology, and ASP has found applications in diverse areas—in historical linguistic, in bioinformatics, in robotics, in space exploration, in oil and gas industry, and many others. The importance of this programming method was recognized by the Association for the Advancement of Artificial Intelligence in 2016, when AI Magazine published a special issue on answer set programming. The book introduces the reader to the theory and practice of ASP. It describes the input language of the answer set solver CLINGO, which was designed at the University of Potsdam in Germany and is used today by ASP programmers in many countries. It includes numerous examples of ASP programs and present the mathematical theory that ASP is based on. There are many exercises with complete solutions.




The Formal Semantics of Programming Languages


Book Description

The Formal Semantics of Programming Languages provides the basic mathematical techniques necessary for those who are beginning a study of the semantics and logics of programming languages. These techniques will allow students to invent, formalize, and justify rules with which to reason about a variety of programming languages. Although the treatment is elementary, several of the topics covered are drawn from recent research, including the vital area of concurency. The book contains many exercises ranging from simple to miniprojects.Starting with basic set theory, structural operational semantics is introduced as a way to define the meaning of programming languages along with associated proof techniques. Denotational and axiomatic semantics are illustrated on a simple language of while-programs, and fall proofs are given of the equivalence of the operational and denotational semantics and soundness and relative completeness of the axiomatic semantics. A proof of Godel's incompleteness theorem, which emphasizes the impossibility of achieving a fully complete axiomatic semantics, is included. It is supported by an appendix providing an introduction to the theory of computability based on while-programs. Following a presentation of domain theory, the semantics and methods of proof for several functional languages are treated. The simplest language is that of recursion equations with both call-by-value and call-by-name evaluation. This work is extended to lan guages with higher and recursive types, including a treatment of the eager and lazy lambda-calculi. Throughout, the relationship between denotational and operational semantics is stressed, and the proofs of the correspondence between the operation and denotational semantics are provided. The treatment of recursive types - one of the more advanced parts of the book - relies on the use of information systems to represent domains. The book concludes with a chapter on parallel programming languages, accompanied by a discussion of methods for specifying and verifying nondeterministic and parallel programs.




Advances in Design and Specification Languages for Embedded Systems


Book Description

This book is the latest contribution to the Chip Design Languages series and it consists of selected papers presented at the Forum on Specifications and Design Languages (FDL'06), in September 2006. The book represents the state-of-the-art in research and practice, and it identifies new research directions. It highlights the role of specification and modelling languages, and presents practical experiences with specification and modelling languages.