正文 第六章 邏輯與計算機科學間的相互關係(2 / 3)

人們逐漸看出一些非常高級的語言,包括設計的泛函型程序設計語言,可用作規範說明語言。如果用程序設計語言說明用戶的需求,則“通過規範說明和變換的程序開發”就可以成為由函數向普通遞歸函數的原稿為英文譯變換。

因而,將一個用某種規範說明語言給出形式說明的程序轉換成一個可執行的程序這一過程是平行於這樣的過程的,即將一個由泛函方程係統定義的函數轉換成相應的遞歸函數。所以,遞歸函數論中那些與能行可定義函數和遞歸函數之間關係有關的結果,應當是與程序設計方法學有關的。我們建議一個使用變換型程序設計技術的程序開發項目可以為由超算術函數到遞歸函數的程序開發簡寫。

能行可定義函數及與其相對應的能行可計算函數

在數理邏輯和計算機科學的發展過程中,最能引起人們興趣的事實之一是,在計算機科學領域中科學家們遇到的許多問題正是一些與前一領域中的科學家們一直在著手處理或業已解決的問題相類似的問題。與變換型程序設計有關的問題似乎是一個突出的例子。不難弄清待解問題的用戶需求形式說明與嚴格意義上的程序之間的關係,關係與泛函方程係統中的有效定義的函數與相應的能行可計算函數之間的關係是相同的。

從曆史角度講,能行可定義函數類的構思出現在能行可計算函數類(其形式部分是遞歸函數類)之前,人們發現前者比後者要大,包括後者作為其一類。如上麵所言,前者是超算術的,下述事實是建立在遞歸論上。

50年代後期已有人提出過進。1957年澳大利亞提出了設計無地址計算機的思想。久以後,英國、美國在差不多同時獨左地提出了研製無地址機器的思想。60年代初布勞斯公司製成的85000就是這一類型的機器。

與此相反,一個以演算為基礎的係統在構成新的函數時要用到義表達式,要用到-組對變量進行代人的規則。借助表達式和有關的代人規則,能夠定義出一切類型的具有任意多個變元的可計算函數。這種自由度和威力是既有利也有弊的。這與通常的程序語言中的不加限製的控製語句的威力有著類似之處,即不加限製的自由度帶來了混亂。如果人們可以不斷地發明新的組合形式來適應特定情況的需要,像人們在義演算中能夠做到的那樣,人們將會熟悉那些足夠定義出所有可計算函數類型。這樣就能通過人們熟悉的一些泛函數形式來得到具有有用的性質的程序。這些程序具有這樣的結構,使得它們的動態的特性能夠通過代數技巧的機械地應用來理解和證明,這些代數技巧是和用來中學代數題的技巧類似的。

泛函形式和大多數程序設計的形式不一樣,不需要是作為一種權宜之計構造出來的。因為它們是一種相關的代數的運算。人們選出的那些泛函形式不僅提供了強有力的程序設計形式而且也具有優良的代數性質。

泛函形式

一個泛函形式是一個指示函數的表達式;這個函數是依賴於那些構成這個表達式的參數的函數或對象的。例如,如果和是函數,則是一個泛函形式,稱作和8的複合,這裏和8是它的參數。這一形式指這樣一個函數使得對一對象。