Formal Methods An Appetizer

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 balanc...

Full description

Bibliographic Details
Main Authors: Nielson, Flemming, Riis Nielson, Hanne (Author)
Format: eBook
Language:English
Published: Cham Springer International Publishing 2019, 2019
Edition:1st ed. 2019
Subjects:
Online Access:
Collection: Springer eBooks 2005- - Collection details see MPG.ReNa
LEADER 02571nmm a2200301 u 4500
001 EB001890230
003 EBX01000000000000001053591
005 00000000000000.0
007 cr|||||||||||||||||||||
008 200120 ||| eng
020 |a 9783030051563 
100 1 |a Nielson, Flemming 
245 0 0 |a Formal Methods  |h Elektronische Ressource  |b An Appetizer  |c by Flemming Nielson, Hanne Riis Nielson 
250 |a 1st ed. 2019 
260 |a Cham  |b Springer International Publishing  |c 2019, 2019 
300 |a XVII, 160 p  |b online resource 
505 0 |a Program Graphs -- Guarded Commands -- Program Verification -- Program Analysis -- Language-Based Security -- Model Checking -- Procedures -- Concurrency -- Epilogue -- App. A, The MicroC Language -- App. B, Programming Projects -- App. C, Realisation in F# -- App. D, A Learning Environment -- Symbols -- Index 
653 |a Software engineering 
653 |a Computer science 
653 |a Software Engineering 
653 |a Theory of Computation 
700 1 |a Riis Nielson, Hanne  |e [author] 
041 0 7 |a eng  |2 ISO 639-2 
989 |b Springer  |a Springer eBooks 2005- 
028 5 0 |a 10.1007/978-3-030-05156-3 
856 4 0 |u https://doi.org/10.1007/978-3-030-05156-3?nosfx=y  |x Verlag  |3 Volltext 
082 0 |a 40,151 
520 |a 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 checking. The remaining chapters present language extensions with procedures and concurrency and cover their semantics. The book is suitable for advanced undergraduate and graduate courses in software development, and the text is supported throughout with exercises of varying gradesof difficulty. The authors have developed an online learning environment that allows students to create examples beyond those covered in the main text, and in the book appendices they present programming projects aimed at implementing central parts of the development using the functional language F#