關於形式語言的語言學的研究可以追溯到本世紀20年代產生的邏輯語言學,這一領域在1950年後發展成“模型論”,但模型論的範圍較前期邏輯語言學為窄50年代中期計算機的高級語言產生後,開始了程序設計語言的語法學與語言學的研究。這種語言學就是計算機科學中的形式語言學。
目前的形式語言學有三個分支,即1.操作語言學,2.申指稱語言學,3.公理語言學。操作語言學將一個特定程序中包含計算過程看作這一程序的語言;指稱語言學將一個特定程序的輸人輸出函數看作這一程序的語言;公理語言學則是將程序的語言看作是由一組公理和推理規則來定義的(這裏所說的定義是“隱定義”)。
這三種語言學中最先產生的是操作語言學。它產生於60年代初,後來曾在編譯等方麵得到應用。指稱語言學和公理語言學均產生於60年代末。指稱語言學被認為是一種較好的理論研究工具。
這三種語言學都應用了邏輯的方法和概念。公理語言學和邏輯的關係尤其明顯。計算機語言學建立在某種程序邏輯之上,而程序邏輯則是由通常的一階邏輯加進程序算子而得到的邏輯係統。
操作語言學和指稱語言學很不相同而互有短長。操作語言學反映程序特點較多,抽象程度較低,便於在編譯等領域應用。指稱語言學反映程序設計的特點較少,抽象程度較高,作為一種理論研究工具是較好的,但實際應用中效率不高。現在的趨勢是尋找抽象程度介乎這兩者之間的語言學。
計算複雜性理論
計算複雜性理論有兩種:1.抽象計算複雜性理論,2.機器計算複雜性理論。前者是研究理論可計算函數的複雜性的,是“可計算函數理論”(即遞歸函數論)又稱“可計算性理論”的一支;後者是研究在計算機上可計算的函數的複雜性的,是計算機科學的-支分支。我們在本節中要討論的是後者以及它和數理邏輯的關係。
關於什麼是理論上可以算出的函數,這在可計算性理論中已嚴格的在假定論題的前提我們可以認為理論上可卜算的函數就是在圖靈機上可計算的函數。至於什麼是計算機上可計算的函數,問題要難得多。目前一般有關的研究工作者是將這種可計算性有的文獻中稱之為“可行性”計算出多項式時間內計算,增長函數是多項式的(如線性的,二次式的,二次式的有些研究工作者對此種疑問。他們認為如果增長函數的次數比較高。
此外,由此出現的?問題至今未能解決。呢乂他也在1979年證明:對於可以根據需要任意調用新的處理機的多處理機係統而言,這一理論顯然是與數理邏輯密切有關的。
計算機的產生對邏輯的影響
就計算機科學的領域中應用邏輯概念與方法的情形作了介紹,就計算機科學的發展對邏輯的影響談一些情況。
近幾十年來,數理邏輯的發展之中,至少有下列幾個領域是直接受到計算機技術發展的影響,或者可以說是為了試圖解決計算機技術中提出的問題而發展起來的。各種非古典邏輯的發展
非古典邏輯中最早的一種“直覺主義邏輯”產生於本世紀初,當時為了避免集合論中出現的“悖論”(所謂“悼論”即一種邏輯矛盾。曆史上有名的“悖論”有“俘論”等,這種邏輯與古典邏輯的不同在於否認“排中律”在有關無窮集合的出現中的有效性,因而不允許用間接證明,而隻承認構造性證明。這種邏輯有時也稱作“構造主義邏輯”。計算機產生後有些計算機科學家認為這種邏輯可以在程序的自動生成等問題有應用,而對之作了進一步的研究。
有些人更進時研究“有窮主義邏輯”以及“嚴格有窮主義邏輯”,後者即是研究不僅有窮而是計算機上能實現的推理的規律。這方麵的研究現在僅僅是開始。
多值邏輯中的三值邏輯原是一種純邏輯理論,似近年來關於二值邏輯的研究顯然是為了應用於程序推理的需要。在這種研究中將一種解釋為“真”,“假”和“無定義”。於是這種理論就成為一種部分定義的謂詞的理論。由於程序中很大部分是部分有定義的(即不是對所有輸人都能有計算結果的這種三值邏輯在程序驗證理論中是可以有應用的。
計算機科學中人工智能的研究推動:非古典邏輯的發展。近年所發展的“知道邏輯”等。後者近年來美國有一些人在研究,過不止一次的討論會。《智能閏際學報》在1981年出一期《非單調邏輯專輯》。
所謂“非單調邏輯”是說通常的演陣推理的前提與結論之叫的關係具有單調性也就足說.當前提增加時,結論隻會增加,不會減少。
邏輯在程序設計中應用的概述