Theories of Programming and Formal Methods

Theories of Programming and Formal Methods
Author: Zhiming Liu
Publisher: Springer
Total Pages: 422
Release: 2013-07-24
Genre: Computers
ISBN: 3642396984

This Festschrift volume, dedicated to He Jifeng on the occasion of his 70th birthday in September 2013, includes 24 refereed papers by leading researchers, current and former colleagues, who congratulated at a celebratory symposium held in Shanghai, China, in the course of the 10th International Colloquium on Theoretical Aspects of Computing, ICTAC 2013. The papers cover a broad spectrum of subjects, from foundational and theoretical topics to programs and systems issues and to applications, comprising formal methods, software and systems modeling, semantics, laws of programming, specification and verification, as well as logics. He Jifeng is known for his seminal work in the theories of programming and formal methods for software engineering. He is particularly associated with Unifying Theories of Programming (UTP) , the theory of data refinement and the laws of programming, and the rCOS formal method for object and component system construction. His book on UTP with Tony Hoare has been widely read and followed by a large number of researchers, and it has been used in many postgraduate courses. He was a senior researcher at Oxford during 1984-1998, and then a senior research fellow at the United Nations University International Institute for Software Technology (UNU-IIST) in Macau during 1998-2005. He has been a professor and currently the Dean of the Institute of Software Engineering at East China Normal University, Shanghai, China. In 2005, He Jifeng was elected as an academician to the Chinese Academy of Sciences. He also received an honorary doctorate from the University of York. He won a number of prestigious science and technology awards, including a 2nd prize of Natural Science Award from the State Council of China, a 1st prize of Natural Science Award from the Ministry of Education of China, a 1st prize of Technology Innovation from the Ministry of Electronic Industry, and a number awards from Shanghai government.

Theories of Programming and Formal Methods

Theories of Programming and Formal Methods
Author: Jonathan P. Bowen
Publisher: Springer Nature
Total Pages: 417
Release: 2023-09-07
Genre: Computers
ISBN: 303140436X

This Festschrift volume, dedicated to Jifeng He on the occasion of his 80th birthday, includes refereed papers by leading researchers, many of them current and former colleagues, presented at a dedicated celebration in the Shanghai Science Hall in September 2023. Jifeng was an important researcher on the European ESPRIT ProCoS project and the Working Group on Provably Correct Systems, subsequently he collaborated with Tony Hoare on Unifying Theories of Programming. Jifeng returned to China in 1998, first to the United Nations University in Macau and then to the East China Normal University in Shanghai. He has since founded an Artificial Intelligence research institute that focuses on the application of technology in large-scale industrial software systems. His scientific contributions have been recognized through his election to membership of the Chinese Academy of Sciences. The first paper in the volume provides an overview of Jifeng’s research contributions, especially in the area of formal methods, and the following two papers detail developments in UTP and rCOS (refinement calculus of object systems). In the next two sections of the book, the editors included papers by colleagues and coauthors of Jifeng while he was at the University of Oxford and engaged with the European ProCoS project. The section that follows includes papers authored by colleagues from his later research in China and Europe. The final section includes a paper related to Jifeng’s recent roadmap for UTP.

A Practical Theory of Programming

A Practical Theory of Programming
Author: Eric C.R. Hehner
Publisher: Springer Science & Business Media
Total Pages: 257
Release: 2012-09-08
Genre: Computers
ISBN: 1441985964

There are several theories of programming. The first usable theory, often called "Hoare's Logic", is still probably the most widely known. In it, a specification is a pair of predicates: a precondition and postcondition (these and all technical terms will be defined in due course). Another popular and closely related theory by Dijkstra uses the weakest precondition predicate transformer, which is a function from programs and postconditions to preconditions. lones's Vienna Development Method has been used to advantage in some industries; in it, a specification is a pair of predicates (as in Hoare's Logic), but the second predicate is a relation. Temporal Logic is yet another formalism that introduces some special operators and quantifiers to describe some aspects of computation. The theory in this book is simpler than any of those just mentioned. In it, a specification is just a boolean expression. Refinement is just ordinary implication. This theory is also more general than those just mentioned, applying to both terminating and nonterminating computation, to both sequential and parallel computation, to both stand-alone and interactive computation. And it includes time bounds, both for algorithm classification and for tightly constrained real-time applications.

Understanding Formal Methods

Understanding Formal Methods
Author: Jean-Francois Monin
Publisher: Springer Science & Business Media
Total Pages: 288
Release: 2012-12-06
Genre: Computers
ISBN: 1447100433

This is an excellent introduction to formal methods which will bring anyone who needs to know about this important topic up to speed. It is comprehensive, giving the reader all the information needed to explore the field of formal methods in more detail. It offers: a guide to the mathematics required; comprehensive but easy-to-understand introductions to various methods; a run-down of how formal methods can help to develop high-quality systems that come in on time, within budget, and according to requirements.

Concise Guide to Formal Methods

Concise Guide to Formal Methods
Author: Gerard O'Regan
Publisher: Springer
Total Pages: 336
Release: 2017-08-08
Genre: Mathematics
ISBN: 3319640216

This invaluable textbook/reference provides an easy-to-read guide to the fundamentals of formal methods, highlighting the rich applications of formal methods across a diverse range of areas of computing. Topics and features: introduces the key concepts in software engineering, software reliability and dependability, formal methods, and discrete mathematics; presents a short history of logic, from Aristotle’s syllogistic logic and the logic of the Stoics, through Boole’s symbolic logic, to Frege’s work on predicate logic; covers propositional and predicate logic, as well as more advanced topics such as fuzzy logic, temporal logic, intuitionistic logic, undefined values, and the applications of logic to AI; examines the Z specification language, the Vienna Development Method (VDM) and Irish School of VDM, and the unified modelling language (UML); discusses Dijkstra’s calculus of weakest preconditions, Hoare’s axiomatic semantics of programming languages, and the classical approach of Parnas and his tabular expressions; provides coverage of automata theory, probability and statistics, model checking, and the nature of proof and theorem proving; reviews a selection of tools available to support the formal methodist, and considers the transfer of formal methods to industry; includes review questions and highlights key topics in every chapter, and supplies a helpful glossary at the end of the book. This stimulating guide provides a broad and accessible overview of formal methods for students of computer science and mathematics curious as to how formal methods are applied to the field of computing.

Formal Methods for Software Engineering

Formal Methods for Software Engineering
Author: Markus Roggenbach
Publisher: Springer Nature
Total Pages: 538
Release: 2022-06-22
Genre: Computers
ISBN: 303038800X

Software programs are formal entities with precise meanings independent of their programmers, so the transition from ideas to programs necessarily involves a formalisation at some point. The first part of this graduate-level introduction to formal methods develops an understanding of what constitutes formal methods and what their place is in Software Engineering. It also introduces logics as languages to describe reasoning and the process algebra CSP as a language to represent behaviours. The second part offers specification and testing methods for formal development of software, based on the modelling languages CASL and UML. The third part takes the reader into the application domains of normative documents, human machine interfaces, and security. Use of notations and formalisms is uniform throughout the book. Topics and features: Explains foundations, and introduces specification, verification, and testing methods Explores various application domains Presents realistic and practical examples, illustrating concepts Brings together contributions from highly experienced educators and researchers Offers modelling and analysis methods for formal development of software Suitable for graduate and undergraduate courses in software engineering, this uniquely practical textbook will also be of value to students in informatics, as well as to scientists and practical engineers, who want to learn about or work more effectively with formal theories and methods. Markus Roggenbach is a Professor in the Dept. of Computer Science of Swansea University. Antonio Cerone is an Associate Professor in the Dept. of Computer Science of Nazarbayev University, Nur-Sultan. Bernd-Holger Schlingloff is a Professor in the Institut für Informatik of Humboldt-Universität zu Berlin. Gerardo Schneider is a Professor in the Dept. of Computer Science and Engineering of University of Gothenburg. Siraj Ahmed Shaikh is a Professor in the Institute for Future Transport and Cities of Coventry University. The companion site for the book offers additional resources, including further material for selected chapters, prepared lab classes, a list of errata, slides and teaching material, and virtual machines with preinstalled tools and resources for hands-on experience with examples from the book. The URL is: https://sefm-book.github.io

Formal Methods

Formal Methods
Author: P. N. Scharbach
Publisher:
Total Pages: 184
Release: 1989
Genre: Computers
ISBN:

This book is a self-contained exposition of formal methods for the specification, analysis and verification of system design. Representative applications of these methods are given to software specification and communications standardization.

Unifying Theories of Programming and Formal Engineering Methods

Unifying Theories of Programming and Formal Engineering Methods
Author: Zhiming Liu
Publisher: Springer
Total Pages: 292
Release: 2013-08-21
Genre: Computers
ISBN: 3642397212

This book presents 5 tutorial lectures by leading researchers given at the ICTAC 2013 Software Engineering School on Unifying Theories of Programming and Formal Engineering Methods, held in Shanghai, China in August 2013.The lectures are aimed at postgraduate students, researchers, academics, and industrial engineers. They cover topics such as component-based and service-oriented systems, real-time systems, hybrid systems, cyber physical systems, and present techniques such as inductive theorem proving, model checking, correction by construction through refinement and model transformations, synthesis, and computer algebra. Two of the courses are explicitly related to Hoare and He's Unifying Theories of Programming.

Programming Language Theory and Formal Methods

Programming Language Theory and Formal Methods
Author: Zoran Gacovski
Publisher: Arcler Press
Total Pages: 0
Release: 2022-12
Genre:
ISBN: 9781774694473

In this book - we present topics from: formal grammars in programming, programming languages semantics, finite automata, and formal methods and semantics in distributed software. Section 1 focuses on formal methods in programming, describing integrating formal methods in XP (extreme programming) - a conceptual solution, formal methods for commercial, applications issues vs. solutions, why formal methods are considered for safety critical systems, and integration of UML sequence diagram with formal specification methods-a formal solution based on Z. Section 2 focuses on programming languages semantics, describing declarative programming with temporal constraints, in the language CG, Lolisa: formal syntax and semantics for a subset of the solidity programming language in mathematical tool coq, ontology of domains. ontological description software engineering domain - the standard life cycle, guidelines based software engineering for developing software components, intelligent agent based mapping of software requirement specification to design model. Section 3 focuses on finite automata, describing the equivalent conversion between regular grammar and finite automata, controllability, reachability, and stabilizability of finite automata: a controllability matrix method, bounded model checking of ETL cooperating with finite and looping automata connectives, an automata-based approach to pattern matching, tree automata for extracting consensus from partial replicas of a structured document. Section 4 focuses on formal methods and semantics in distributed software, describing building requirements semantics for networked software interoperability, formal semantics of OWL-s with rewrite logic, web semantic and ontology, web services conversation adaptation using conditional substitution semantics of application domain concepts.

Theories of Programming

Theories of Programming
Author: Cliff B. Jones
Publisher: Morgan & Claypool
Total Pages: 450
Release: 2021-09-26
Genre: Computers
ISBN: 1450387314

Sir Tony Hoare has had an enormous influence on computer science, from the Quicksort algorithm to the science of software development, concurrency and program verification. His contributions have been widely recognised: He was awarded the ACM’s Turing Award in 1980, the Kyoto Prize from the Inamori Foundation in 2000, and was knighted for “services to education and computer science” by Queen Elizabeth II of England in 2000. This book presents the essence of his various works—the quest for effective abstractions—both in his own words as well as chapters written by leading experts in the field, including many of his research collaborators. In addition, this volume contains biographical material, his Turing award lecture, the transcript of an interview and some of his seminal papers. Hoare’s foundational paper “An Axiomatic Basis for Computer Programming”, presented his approach, commonly known as Hoare Logic, for proving the correctness of programs by using logical assertions. Hoare Logic and subsequent developments have formed the basis of a wide variety of software verification efforts. Hoare was instrumental in proposing the Verified Software Initiative, a cooperative international project directed at the scientific challenges of large-scale software verification, encompassing theories, tools and experiments. Tony Hoare’s contributions to the theory and practice of concurrent software systems are equally impressive. The process algebra called Communicating Sequential Processes (CSP) has been one of the fundamental paradigms, both as a mathematical theory to reason about concurrent computation as well as the basis for the programming language occam. CSP served as a framework for exploring several ideas in denotational semantics such as powerdomains, as well as notions of abstraction and refinement. It is the basis for a series of industrial-strength tools which have been employed in a wide range of applications. This book also presents Hoare’s work in the last few decades. These works include a rigorous approach to specifications in software engineering practice, including procedural and data abstractions, data refinement, and a modular theory of designs. More recently, he has worked with collaborators to develop Unifying Theories of Programming (UTP). Their goal is to identify the common algebraic theories that lie at the core of sequential, concurrent, reactive and cyber-physical computations.