You may have to Search all our reviewed books and magazines, click the sign up button below to create a free account.
Program analysis utilizes static techniques for computing reliable information about the dynamic behavior of programs. Applications include compilers (for code improvement), software validation (for detecting errors) and transformations between data representation (for solving problems such as Y2K). This book is unique in providing an overview of the four major approaches to program analysis: data flow analysis, constraint-based analysis, abstract interpretation, and type and effect systems. The presentation illustrates the extensive similarities between the approaches, helping readers to choose the best one to utilize.
This textbook is an introduction to the use of formal methods ranging from semantics of key programming constructs to techniques for the analysis and verification of programs. The authors use program graphs as the mechanism for representing the control structure of programs in order to find a balance between generality and conceptual complexity. The early chapters on program graphs and the Guarded Commands language are sufficient introduction for most readers to then enjoy a plug-and-play approach to the remaining chapters. These explain formal methods for analysing the behaviour of programs in various ways ranging from verification, via program analysis and language-based security, to model...
Semantics will play an important role in the future development of software systems and domain-specific languages. This book provides a needed introductory presentation of the fundamental ideas behind these approaches, stresses their relationship by formulating and proving the relevant theorems, and illustrates the applications of semantics in computer science. Historically important application areas are presented together with some exciting potential applications. The text investigates the relationship between various methods and describes some of the main ideas used, illustrating these by means of interesting applications. The book provides a rigorous introduction to the main approaches to formal semantics of programming languages.
The authors describe here a framework in which the type notation of functional languages is extended to include a notation for binding times (that is run-time and compile-time) that distinguishes between them. Consequently, the ability to specify code and verify program correctness can be improved. Two developments are needed, the first of which introduces the binding time distinction into the lambda calculus in a manner analogous with the introduction of types into the untyped lambda calculus. Methods are also presented for introducing combinators for run-time. The second concerns the interpretation of the resulting language, which is known as the mixed lambda-calculus and combinatory logic. The notion of "parametrized semantics" is used to describe code generation and abstract interpretation. The code generation is for a simple abstract machine designed for the purpose, it is close to the categorical abstract machine. The abstract interpretation focuses on a strictness analysis that generalizes Wadler's analysis for lists. It is also shown how the results of abstract interpretation may be used to improve the code generation.
The SPIN workshop is a forum for researchers interested in the subject of automata-based, explicit-state model checking technologies for the analysis and veri?cation of asynchronous concurrent and distributed systems. The SPIN - del checker (http://netlib.bell-labs.com/netlib/spin/whatispin.html), developed by Gerard Holzmann, is one of the best known systems of this kind, and has attracted a large user community. This can likely be attributed to its e?cient state exploration algorithms. The fact that SPIN’s modeling language, Promela, resembles a programming language has probably also contributed to its success. Traditionally, the SPIN workshops present papers on extensions and uses of SP...
This book constitutes the refereed proceedings of the 5th International Symposium on Static Analysis, SAS'98, held in Pisa, Italy, in September 1998. The 20 revised full papers presented were carefully reviewed and selected from a total of 48 submissions. Also included is an invited tutorial. The papers are organized in topical sections on data-flow analysis, logic programming, concurrency, abstract domains, partial evaluation, type inference, and optimization. The invited tutorial by David Schmidt and Bernhard Steffen is entitled "data-flow analysis as model checking of abstract interpretations".
Reinhard Wilhelm's career in Computer Science spans more than a third of a century. This Festschrift volume, published to honor him on his 60th Birthday on June 10, 2006, includes 15 refereed papers by leading researchers, his graduate students and research collaborators, as well as current and former colleagues, who all attended a celebratory symposium held at Schloss Dagstuhl, Germany.
This open access book constitutes the proceedings of the 8th International Conference on Principles of Security and Trust, POST 2019, which took place in Prague, Czech Republic, in April 2019, held as part of the European Joint Conference on Theory and Practice of Software, ETAPS 2019. The 10 papers presented in this volume were carefully reviewed and selected from 27 submissions. They deal with theoretical and foundational aspects of security and trust, including on new theoretical results, practical applications of existing foundational ideas, and innovative approaches stimulated by pressing practical problems.
Concurrent and distributed processes occur everywhere: in embedded systems, in information networks and databases, and in the form of applets roaming around on the World-Wide-Web. This book presents and develops state-of-the-art validation techniques for detecting safety violations; the focus is on the correctness of techniques that suffice for fully automatic validation of key components of such systems. It builds on and extends the notion of types, popular in many sequential programming languages as a technique for catching certain kinds of errors already at program development time, by incorporating behaviours (or structured effects) that are able to track the information flow in the presence of procedures, channel based communication, and the dynamic creation of network topologies. The technical development is performed for a language based on Concurrent ML.
Static analysis is a research area aimed at developing principles and tools for veri?cation, certi?cation, semantics-based manipulation, and high-performance implementation of programming languages and systems. The series of Static Analysis symposia has served as the primary venue for presentation and disc- sion of theoretical, practical, and application advances in the area. This volume contains the papers accepted for presentation at the 15th Inter- tional Static Analysis Symposium (SAS 2008), which was held July 16–18, 2008, in Valencia, Spain. The previous SAS conferences were held in Kongens Lyngby, D- mark (2007), Seoul, South Korea (2006), London, UK (2005), Verona, Italy (2004), Sa...