基本介紹
- 中文名:霍爾邏輯
- 學科:計算機
起源,霍爾三元組,命令式編程,
起源
Hoare 邏輯(也叫做Floyd–Hoare 邏輯)是英國計算機科學家C. A. R. Hoare開發的形式系統,隨後為 Hoare 和其他研究者所精製。它發表於 Hoare 1969年的論文"電腦程式的公理基礎"中。這個系統的用途是為了使用嚴格的數理邏輯推理電腦程式的正確性提供一組邏輯規則。
Hoare 認可 Robert Floyd的早期貢獻,他為流程圖提供了類似的系統。
霍爾三元組
霍爾邏輯的中心特徵是霍爾三元組(Hoare triple)。這種三元組描述一段代碼的執行如何改變計算的狀態。Hoare三元組有如下形式
這裡的P和Q是斷言而C是命令。P叫做前條件而Q叫做後條件。斷言是謂詞邏輯的公式。這個三元組在直覺上讀做:只要P在C執行前的狀態下成立,則在執行之後Q也成立。注意如果C不終止,也就沒有"之後"了,所以Q在根本上可以是任何語句。實際上,你可以選擇Q為假來表達C不終止。事實上,這種情形叫做 "部分正確(partial correctness)"。如果C終止並且在終止時Q是真,則表達式被稱作 "全部正確性(total correctness)"。終止必須被單獨證明。
霍爾邏輯為簡單的命令式程式語言的所有構造提供了公理和推理規則。除了給Hoare論文中的簡單語言的規則,其他語言構造的規則也已經被Hoare和很多其他研究者開發完成。包括並發、過程、goto語句,和指針。