PROLOG 是個典型的邏輯式語言,但它缺乏資料類型的概念,導玫了一些使用上的不 便及奇怪的程式結果。我們將此程式語言加以擴充修正,而將資料類型的概念引入邏 輯程式規化的領域中,而設計出一個類型化的邏輯程式語言,稱作TYPLOG。 在TYPLOG中,我們採用格的結構來組織資料類型,此種結構易於描述在實際問題中各 型資料間的關係。由於TYPLOG是嚴謹的類型化語,所以在一個邏輯程式中所用到的各 個符號,包括變數、常數、函數、述語等,都必須事先宣告其相關的資料類型,以供 編譯器運用來判定該程式是否合於文法要求。 由於我們以格的方式來組織資料類型,藉此結構的幫助,我們可以在邏輯程式中對於 其中函數的意義稍為加以描述,這點在原來的PROLOG上是辦不到的。另外在查詢的回 答上,變數所屬的資料類型可提供對該項回答更深入的了解。故資料類型在TYPLOG中 不只提供了一層程式正確性的檢查功能,便在描述問題及程式規劃中扮演了重要的角 色。 在文中我們首先列舉一些在PROLOG中由於缺乏資料類型所造成的缺失,然後說明我們 在設計TYPLOG所做的一些抉擇。再以嚴謹而形式化的方式定義各項類型化邏輯程式規 化所引發的觀念,並提出一個同一化算則以針對TYPLOG之特殊需要。就語意上而言, 對宣告型語意,我們將赫本德釋意加以修正,以涵蓋類型領域的概念;對程序型語意 ,我們仍採用SLD - 化解法,不過同一化的定義已加以修正。在文中我們證明此二型 語意是完全一致的,一如原先在PROLOG然。
|