Muutke küpsiste eelistusi

E-raamat: Introducing Software Verification with Dafny Language: Proving Program Correctness

  • Formaat: PDF+DRM
  • Ilmumisaeg: 28-Feb-2022
  • Kirjastus: APress
  • Keel: eng
  • ISBN-13: 9781484279786
  • Formaat - PDF+DRM
  • Hind: 34,57 €*
  • * hind on lõplik, st. muud allahindlused enam ei rakendu
  • Lisa ostukorvi
  • Lisa soovinimekirja
  • See e-raamat on mõeldud ainult isiklikuks kasutamiseks. E-raamatuid ei saa tagastada.
  • Formaat: PDF+DRM
  • Ilmumisaeg: 28-Feb-2022
  • Kirjastus: APress
  • Keel: eng
  • ISBN-13: 9781484279786

DRM piirangud

  • Kopeerimine (copy/paste):

    ei ole lubatud

  • Printimine:

    ei ole lubatud

  • Kasutamine:

    Digitaalõiguste kaitse (DRM)
    Kirjastus on väljastanud selle e-raamatu krüpteeritud kujul, mis tähendab, et selle lugemiseks peate installeerima spetsiaalse tarkvara. Samuti peate looma endale  Adobe ID Rohkem infot siin. E-raamatut saab lugeda 1 kasutaja ning alla laadida kuni 6'de seadmesse (kõik autoriseeritud sama Adobe ID-ga).

    Vajalik tarkvara
    Mobiilsetes seadmetes (telefon või tahvelarvuti) lugemiseks peate installeerima selle tasuta rakenduse: PocketBook Reader (iOS / Android)

    PC või Mac seadmes lugemiseks peate installima Adobe Digital Editionsi (Seeon tasuta rakendus spetsiaalselt e-raamatute lugemiseks. Seda ei tohi segamini ajada Adober Reader'iga, mis tõenäoliselt on juba teie arvutisse installeeritud )

    Seda e-raamatut ei saa lugeda Amazon Kindle's. 

Get introduced to software verification and proving correctness using the Microsoft Research-backed programming language, Dafny.  While some other books on this topic are quite mathematically rigorous, this book will use as little mathematical symbols and rigor as possible, and explain every concept using plain English. It's the perfect primer for software programmers and developers with C# and other programming language skills.

Writing correct software can be hard, so you'll learn the concept of computation and software verification. Then, apply these concepts and techniques to confidently write bug-free code that is easy to understand. Source code will be available throughout the book and freely available via GitHub.

After reading and using this book you'll be able write correct, big free software source code applicable no matter which platform and programming language you use.  

What You Will Learn
  • Discover the Microsoft Research-backed Dafny programming language 
  • Explore Hoare logic, imperative and functional programs
  • Work with pre- and post-conditions
  • Use data types, pattern matching, and classes
  • Dive into verification examples for potential re-use for your own projects
Who This Book Is For

Software developers and programmers with at least prior, basic programming experience. No specific language needed.  It is also for those with very basic mathematical experience (function, variables).
About the Author ix
About the Technical Reviewer xi
Preface xiii
Languages and Systems xv
Chapter 1 Our First Program
1(6)
Chapter 2 Logic
7(12)
2.1 Prepositional Logic
7(7)
2.2 Predicate Logic and Quantifiers
14(5)
Chapter 3 Computation
19(18)
3.1 Variables and Assertions
20(2)
3.2 Methods and Functions
22(3)
3.3 Predicates (Triggers) and Lemmas
25(1)
3.4 Loops
26(4)
3.5 Types and Pattern Matching
30(7)
Chapter 4 Mathematical Foundations
37(10)
4.1 Set Theory
37(6)
4.2 Type Theory
43(4)
Chapter 5 Proofs
47(14)
5.1 Proofs by Truth Tables
49(2)
5.2 Three-Column Proofs
51(2)
5.3 Formal Proofs
53(3)
5.4 Sequent Calculus Notation
56(2)
5.5 Example: Proving a Mathematical Property
58(3)
Chapter 6 Specifications
61(16)
6.1 Hoare Logic
61(4)
6.2 Z3 and Dafny
65(2)
6.3 Preconditions and Postconditions
67(1)
6.4 Invariants
68(2)
6.5 Arrays
70(2)
6.6 Termination
72(2)
6.7 Example: Finding a Maximum Number in an Array
74(3)
Chapter 7 Mathematical Induction
77(8)
7.1 Induction in Dafny
79(2)
7.2 Manually Proving Induction in Dafny
81(4)
Chapter 8 Verification Exercises
85(28)
8.1 An Odd Implementation
85(2)
8.2 Sunday
87(1)
8.3 Mathematical Properties
88(1)
8.4 Algebra
89(1)
8.5 Miscellaneous Algorithms
90(7)
8.6 Prime Numbers
97(1)
8.7 Formal Proofs
98(2)
8.8 Solutions
100(13)
Chapter 9 Implementing a Formal System
113(6)
Appendix A Godel's Theorems 119(4)
Conclusion 123(2)
Bibliography 125(2)
Index 127
Boro Sitnikovski has over ten years of experience working professionally as a software engineer. He started programming with assembly on an Intel x86 at the age of ten. While in high school, he won several prizes in competitive programming, varying from 4th, 3rd, and 1st place. He is an informatics graduate - his bachelors thesis was titled Programming in Haskell using algebraic data structures, and his masters thesis was titled Formal verification of Instruction Sets in Virtual Machines. He has also published a few papers on software verification. Other research interests of his include programming languages, mathematics, logic, algorithms, and writing correct software. He is a strong believer in the open-source philosophy and contributes to various open-source projects. In his spare time, he enjoys some time off with his family.