《程式設計原本 》一導讀

2021-09-23 09:24:58 字數 1058 閱讀 1238

本書將演繹方法應用於程式設計,討論程式與保證它們能正確工作的抽象數學理論之間的聯絡.書中把反映這些理論的規程(speci.cation),基於這些理論寫出的演算法,以及描述演算法性質的引理和定理一起呈現給讀者.這些演算法在一種實際程式語言裡的實現是本書的中心.雖然規程主要是供人閱讀,但它們也應該(或者說必須)嚴格地與非形式化的、供機器使用的**相結合,必須在通用的同時又是抽象而且精確的.

與在其他科學和工程領域裡的情況一樣,適合作為程式設計的基礎的同樣是演繹方法.演繹方法能幫助我們將複雜系統分解為一些具有特定數學行為的元件,而這種分解又是設計高效、可靠、安全和經濟的軟體的前提.

本書是想奉獻給那些希望更深入地理解程式設計的人們,無論他們是專職軟體開發人員,還是把程式設計看作其專業活動中乙個重要組成部分的科學家或工程師.

本書編寫的基本想法是讓讀者從頭到尾完整閱讀.讀者只有通過閱讀**、證明引理、完成練習,才能真正理解書中的各方面材料.此外我們還建議了一些專案,其中有些是完全開放的.本書的內容很緊湊,認真的讀者最終會看到書中各部分之間的聯絡,以及我們選擇這些材料的理由.發現本書在體系結構方面的原理應該是讀者的乙個目標.

第1 章 基礎

1.1理念範疇:實體,類別,類屬

1.2值

1.3物件

1.4過程

1.5規範型別

1.6規範過程

1.7概念

1.8總結

第2 章變換及其軌道

2.1變換

2.2軌道

2.3碰撞點

2.4軌道規模的度量

2.5動作

2.6總結

第3 章可結合運算

3.1可結合性

3.2計算乘冪

3.3程式變換

3.4處理特殊情況的過程

第4 章線性序

4.1關係的分類

4.2全序和弱序

4.3按序選取

4.4自然全序

4.5派生過程組

4.6按序選取過程的擴充套件

4.7總結

《程式設計原本 》一1 4 過程

乙個過程 procedure 是乙個指令序列,它修改某些物件的狀態,也可能構造或 者銷毀一些物件.根據程式設計師的意圖,與乙個過程互動的物件分為四類.1.輸入輸出 input output 指該過程通過其引數或返回值直接或間接傳遞的那些物件.2.區域性狀態 localstate 該過程在其一次呼叫期...

《程式設計原本 》一2 3 碰撞點

如果不知道定義而只能觀察其行為,我們無法確定乙個變換的一條特定軌道是否無窮,因為它完全可能在任意一點結束或者迴圈.如果知道一條軌道是有窮的,那就可以用乙個演算法來確定該軌道的形狀了.因此,本章針對軌道的所有演算法都有乙個有關軌道有窮性的隱含前條件.顯然可以寫乙個簡單而平凡的演算法,讓它儲存已訪問的每...

《程式設計原本 》一1 5 規範型別

存在這樣一組過程,如果把它們包含到乙個型別的計算基中,就能方便地把物件放入各種資料結構,或者通過演算法把物件從乙個資料結構複製到另一資料結構.我們稱具有這樣的基的型別為規範的 regular 因為使用這樣的型別可以保證程式行為的規範性,進而獲得型別之間的互操作性.1 可以從內部型別,如bool in...