Verified Functional Programming in Agda
暫譯: 驗證的函數式程式設計:使用 Agda

Aaron Stump

  • 出版商: Morgan & Claypool
  • 出版日期: 2016-02-01
  • 售價: $2,890
  • 貴賓價: 9.5$2,746
  • 語言: 英文
  • 頁數: 284
  • 裝訂: Paperback
  • ISBN: 1970001240
  • ISBN-13: 9781970001242
  • 海外代購書籍(需單獨結帳)

買這商品的人也買了...

商品描述

Agda is an advanced programming language based on Type Theory. Agda's type system is expressive enough to support full functional verification of programs, in two styles. In external verification, we write pure functional programs and then write proofs of properties about them. The proofs are separate external artifacts, typically using structural induction. In internal verification, we specify properties of programs through rich types for the programs themselves. This often necessitates including proofs inside code, to show the type checker that the specified properties hold. The power to prove properties of programs in these two styles is a profound addition to the practice of programming, giving programmers the power to guarantee the absence of bugs, and thus improve the quality of software more than previously possible. Verified Functional Programming in Agda is the first book to provide a systematic exposition of external and internal verification in Agda, suitable for undergraduate students of Computer Science. No familiarity with functional programming or computer-checked proofs is presupposed. The book begins with an introduction to functional programming through familiar examples like booleans, natural numbers, and lists, and techniques for external verification. Internal verification is considered through the examples of vectors, binary search trees, and Braun trees. More advanced material on type-level computation, explicit reasoning about termination, and normalization by evaluation is also included. The book also includes a medium-sized case study on Huffman encoding and decoding.

商品描述(中文翻譯)

Agda 是一種基於類型理論的先進程式語言。Agda 的類型系統足夠表達,能夠支持程式的完整功能驗證,分為兩種風格。在外部驗證中,我們編寫純函數式程式,然後為其撰寫屬性的證明。這些證明是獨立的外部產物,通常使用結構歸納法。在內部驗證中,我們通過豐富的類型為程式本身指定屬性。這通常需要在程式碼中包含證明,以向類型檢查器顯示所指定的屬性成立。在這兩種風格中證明程式屬性的能力是對程式設計實踐的深刻補充,使程式設計師能夠保證沒有錯誤,從而比以往更有效地提高軟體的質量。《Verified Functional Programming in Agda》是第一本系統性地闡述 Agda 中外部和內部驗證的書籍,適合計算機科學的本科生。書中不假設讀者對函數式程式設計或計算機檢查證明有任何熟悉度。書籍以熟悉的範例如布林值、自然數和列表開始介紹函數式程式設計,以及外部驗證的技術。內部驗證則通過向量、二元搜尋樹和布朗樹的範例進行考量。書中還包括有關類型層級計算、明確的終止推理和通過評估進行標準化的更高級材料。此外,書中還包含一個中型案例研究,探討霍夫曼編碼和解碼。