LEADER 03155nam 22004335 450 001 9910349292603321 005 20211005190703.0 010 $a3-030-05156-0 035 $a(MiAaPQ)EBC5924993 035 $a(PPN)238491080 035 $a(CKB)4100000008707598 035 $a(EXLCZ)994100000008707598 100 $a20190716d2019 u| 0 101 0 $aeng 135 $aurnn#008mamaa 181 $ctxt$2rdacontent 182 $cc$2rdamedia 183 $acr$2rdacarrier 200 10$aFormal Methods $eAn Appetizer /$fby Flemming Nielson, Hanne Riis Nielson 205 $a1st ed. 2019. 210 1$aCham :$cSpringer International Publishing :$cImprint: Springer,$d2019. 215 $a1 online resource (XVII, 160 pages) 327 $aProgram 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. 330 $aThis 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 grades of 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#. 606 $aComputers 606 $aSoftware engineering 606 $aTheory of Computation$3https://scigraph.springernature.com/ontologies/product-market-codes/I16005 606 $aSoftware Engineering/Programming and Operating Systems$3https://scigraph.springernature.com/ontologies/product-market-codes/I14002 615 0$aComputers. 615 0$aSoftware engineering. 615 14$aTheory of Computation. 615 24$aSoftware Engineering/Programming and Operating Systems. 676 $a004.0151 700 $aNielson$b Flemming$4aut$4http://id.loc.gov/vocabulary/relators/aut$0714740 702 $aRiis Nielson$b Hanne$4aut$4http://id.loc.gov/vocabulary/relators/aut 906 $aBOOK 912 $a9910349292603321 996 $aFormal Methods$92543122 997 $aUNINA