形式化語言

2021-09-19 05:54:06 字數 3295 閱讀 7226

之前並沒有學習過語言形式化理論這門課,最多也就是了解編譯原理,知道有個符號系統能夠抽象詞法,語法。通過研究這套符合系統的內在規律,給出了驗證模型和相應的演算法。恩,這就是我所了解的電腦程式原理。本科畢業之後,我覺的自己已經很好地掌握了計算機(組成,結構和程式)。但我不太懂:計算機幹了什麼,以致我們需要它?

首先,這不是乙個好問題?為什麼,因為這個問題有問題,有歧義,不同的人有不同的理解?

有人認為大資料計算,有人認為自動化,有人說是資訊時代,降低生活成本,提高工作效率,還有人喊科技,創新等等。

其實我的意思是站在歷史的角度,當時沒有人知道有這麼個東西的時候,最開始有這個想法的人,是如何定義它呢?

說起來這個人和計算機壓根沒關係,還不是他沒見過計算機,而是他的貢獻離我們太遠了。韋達,這個十六世紀的法國數學家,第一次有意識地、系統地在數學中使用字母的學者。什麼?這個不是常識嗎,小學學的一元一次方程都是字母表示變數的好麼。但是,在之前確實還真不是,而且我國在在辛亥革命之前,也不是啊,2023年,京師大學堂使用的教科書上,仍然用天、地、人、元表示未知數,用符號「⊥」和「|」分別表示加和減,分數則自上而下讀。

不要說什麼貢獻小,事實上他的努力不僅推動了代數學的發展,而且對十七世紀的數學家和邏輯學家萊布尼茨啟發很大。因此,使數學本身有一套完美的、通用的符號,成為萊布尼茨在數學研究中的努力追求。萊布尼茨本人創立的微積分符號體系。在他的符號體系中, dx 表示 x 的微分, ddx 和 dddx 分別表示 x 的二階和三階微分。儘管在建立微積分的過程中,牛頓也曾創立了另一種不同的符號體系。由於民族的偏見,英國的數學家曾在很長的時間內對萊布尼茨的符號體系進行抵制並堅持採用牛頓的符號。但終因萊布尼茨的符號體系更為便利,從而得到了普遍的應用並一直沿用至今。萊布尼茨的工作,導致了他在數學符號發展史上佔據著重要的地位。直到今天,許多數學家都認為完美的符號系統促進了整個數學的發展。特別地,數學家克萊因對代數學的情況寫道:代數學上的進步是引進了較好的符號體系,這對它本身和分析的發展比 16 世紀技術的進步遠為重要。事實上,採取了這一步,才使代數有可能成為一門科學。」 (《古今數學思想》,第一冊,第 301 頁)。

很多人其實不太懂,為什麼大師會這麼推崇符號系統呢?其實有點開始引進我們的目的了。當時的符號體系就是今天的數學語言,這個本質上就是數學語言相對比自然語言有什麼優勢?

無窮性 就拿最簡單的算術語言來說,它研究的物件是 0,1 , 2 ,…, n ,…這些自然數的性質。之前的定理或當時的知識都有侷限性,為什麼,就是它驗證的資料是有限的,自然語言喜歡來個整數,再說也研究不到那麼多數啊!

統一性 由於數學語言中使用了特定的記號,從而使數學語言成為一種半形式化的符號語言,這樣以來,數學語言比任何一種自然語言更具有「統一性」。這就更明顯了,以前乙個村里兩個人都還有分歧,更別說數學可以跨種族的,全世界的人都認識符號「∫」表示積分。

可操作性 與自然語言相比,它與演算法建立了聯絡。法國數學家違達提出:我們可以用字母(即符號)表示已知量和未知量,並對此進行純形式的操作,也即我們可以擺脫問題的具體內容,而從一般角度總結出普遍的演算法。比如求得任何乙個一元一次方程的解需要5步:①去分母;②去括號;③移項;④合併同類項;⑤同除以未知數的係數。也就是抽象,把乙個具體問題從它本身的場景中剝離,不管是土地啊還是**,都不管!你想想我們小學考試小明可是把所有水果啊、書本啊以及掃帚都算了一遍,可我們也就只會解一元一次方程(想想自己小時候不會寫作業的時候的抱怨,可不就是笨嘛)。

另外數學語言與任何一種自然語言相比較,除了具有以上特點外,還具有無歧異性、簡明性等特點。

恩,數學語言好,但不是最好的!啊,還有更好的呢!2023年,邏輯學家弗雷格就想了,數學好是好,但是有一點缺點,可操作性。不錯這個可操作性不好,因為人太懶嘛!你說你雖然定下了一元一次方程的5步求解法,但是你每次都讓我算一遍。我去,想起小明整天買這買那忙著給我們出題,也是辛苦極了。那能不能在增加乙個可計算性呢,對不對!我一輸入數字,你就被答案告訴我了。有演算法(可操作性),有計算,恩!邏輯學家弗雷格越想越興奮,發表了名著《概念文字——一種模仿算術語言構造的純思維的形式語言》。

在這本書中,弗雷格借鑑了兩種語言,一種是傳統邏輯使用的語言,另一種是數學語言。從而成功地構造了一種邏輯的形式語言,即:一種表意的符號語言,並且用這種語言建立了乙個一階謂詞演算系統,實現了萊布尼茨提出建立一種普遍語言的思想。

有同學看了上面的引用,借鑑兩種語言,數學語言我懂,但傳統邏輯使用的語言,我去什麼鬼。其實這這樣的,弗雷格想了想,人類是怎麼計算的呢?一般人有了數學的可操作性之後,然後在人腦中進行計算,按照5步操作一步一步來。哎,這不就是人腦的邏輯嘛。說幹就幹:

他用「?-」表示判斷符號,用「 ?﹁- 」表示否定符號,用「≡」表示內容統一符號,用「 f(a)」表示函式符號,等等。弗雷格使用這些符號,不僅表達了推理的形式和規則,而且還成功構造了第乙個初步自足地邏輯演算系統。但是,他使用的符號不利於印刷。1910-2023年,羅素和懷特海發表了《數學原理》。在這部邏輯著作中,他們改進了弗雷格的表述方式,發展和完善了弗雷格的形式語言和形式推理系統。

輸入集合或者輸入變數(i);

輸出集合或者輸出變數(o);

處理或者變化(p);

資料或者狀態(d)。

即computingmodel =(i,o,p,d)–注意其中用的是逗號(,),其中的輸入輸出是處理或者變化元素的輸入輸出。

當時正值兩次事件大戰,關於密碼的破解和飛彈管道計算迫在眉睫。圖靈提出了一種計算模型:圖靈機在已知輸入輸出情況下研究處理和資料的實現問題,即turing』s machine = (i,o;p,d)–注意其中用的是分號(;),處理就是演算法、程式programming,資料是datastructure。圖靈機的工程化技術已經成熟,包括從組合語言到uml語言在內的全系列軟體工程和程式語言,核心是結構化程式設計語言。

後來我們也有一些不需要計算結果的需要,但是也需要計算。比如:乙個機器,我按個按鈕,它就唱歌,再按一些就停止唱歌。我了解它的狀態,並且不需要計算結果。就提出了另乙個計算模型: petri網在已知變化狀態條件下研究輸入和輸出的網路結構問題,即petri nets =(p,d;i,o)–注意其中用的是分號(;)。 圖靈機是「從蛋(i,o)開始研究蛋(i,o)孵雞(p,d)」問題,而petri網是「從雞(p,d)開始研究雞(p,d)生蛋(i,o)」問題。兩者精確對偶,統一起來就可以完全解決了「蛋(i,o)孵雞(p,d)、雞(p,d)生蛋(i,o)」的自然迴圈,因此被我統稱為自然(或實)計算模型,目的是區別於我預計10年後才有可能研究成熟並公開的「虛計算模型」。

對偶定律告訴我們,對偶模型可以相互解決它倆各自所不能解決的問題。petri網的實踐(語用網)可以解決turing機所不能解決的「軟體模組復用(也就是計算協作)」問題;而 turing機的實踐(演算法分析-也就是軟體工程)解決了petri網所不能解決的「節點**」問題。這就是我把它倆統一起來研究的原因。

邏輯學語言

計算模型的統一分析

形式化關係查詢語言

tags 資料庫 在關聯式資料庫中,資料庫模式是指定義資料庫的結構,規定的域約束,參照完整性等。例項對應模式在某一時間的快照。關係模式和關係例項也如此。在這裡,乙個關係對應資料庫的一張表,乙個元組對應表內一行資料,屬性對應字段。形式化關係查詢語言是sql所基於的形式化模型,同時它也是其他關係查詢語言...

形式化 半形式化和非形式化

形式化 半形式化和非形式化是三種類 型的規範風 格。形式化規範就是用一套基於明確定義的數學概念的符號來書寫,並且通常伴隨著支援性的解釋 非形式化 語句。這些數學概念被用來定義符號的句法和語義,以及支援邏輯推理的證明規則。支援形式化符號的句法和語義規則應該定義如何明確地識別其結構和確定其含義。並且必須...

形式化方法

軟體形式化方法最早可追溯到20世紀50年代後期對於程式語言編譯技術的研究,即 j.backus 提出bnf 描述algol60 語言的語法,出現了各種語法分析程式自動生成器以及語法制導的編譯方法,使得編譯系統的開發從 手工藝製作方式 發展成具有牢固理論基礎的系統方法。形式化方法的研究高潮始於20 世...