2010-04-19 137 views
6

這是什麼意思,編程語言是一種正式的編程語言?哪些語言是正式的編程語言?哪些是非正式的編程語言?什麼是正式編程語言?

我還沒有找到一個很好的解釋呢。

+12

這取決於他們如何着裝。 :-) – 2010-04-19 16:38:50

+0

這只是第七個問題被標記爲正式 - http://stackoverflow.com/questions/tagged/formal-languages - 所以不管它是(或不是)它不是Facebook。或Twitter。 – amelvin 2010-04-19 16:40:11

+0

也許你的意思是「正式」,你的意思是圖靈完整? – FrustratedWithFormsDesigner 2010-04-19 16:42:06

回答

9

每種編程語言都是一種形式語言,所以我說「正式的編程語言」對我來說沒有什麼意義有人知道一個非正式的編程語言?)

形式語言與數學上的精確構造規則的語言。或者,更確切地說,它是一些字母表上的單詞。例如,如果您採用由字母a,bc組成的字母,則該字母表上的正式語言可以是一組{a,aa, aba,ca}。當然,這樣的語言不會很有用 - 重要的是,通過一套體面的構建規則,您可以創建一種語言,如C或PostScript。對於「構造規則」,它們可以是形式語法(參見CSS的語法),正則表達式(對於由RFC 822定義的電子郵件地址,請參閱此gorgeous regex),自動機或通用算法。


如果你覺得你不理解的東西多一點點,不要絕望,因爲這是不是一個很好的解釋:-)有很多思維形式語言的背後的概念。我建議你嘗試並消化Wikipedia entry並尋找更多教程和書籍。這很有趣,你會學到很多關於編譯器,正則表達式,圖靈機和數字人類其他奇蹟的背景知識。

+0

也許僞碼是一種非正式語言? – tloflin 2010-04-19 17:42:26

+0

「非正式程序設計」對我來說似乎是一個矛盾,但你說得對,我猜這個僞碼可以被認爲是一種非正式的編程語言。 (關於對「編程」的充分模糊的解釋) – zoul 2010-04-19 17:50:38

+0

我聽說過人們談論正式的編程語言,所以我只是認爲必須有一些東西叫做非正式編程語言。但我猜不。如上所述,僞代碼可能是最接近的一個。謝謝 – Orjanp 2010-04-23 08:59:45

2

正式的手段很好的定義。每種可用於定義可執行程序的編程語言都必須定義好,以便機器能夠理解它。

0

那是從wikipedia提取

「約翰·雷諾茲強調,正式的規範語言是一樣多的編程語言如打算執行的語言。他還認爲,文字和圖形,即使輸入格式影響計算機的行爲是編程語言,儘管事實上它們通常不是圖靈完成的,並且認爲編程語言概念的無知是輸入格式中存在許多缺陷的原因「

+0

形式規範語言!=形式語言。 – zoul 2010-04-19 17:51:55

+0

查看全部摘錄pls「他還辯稱影響計算機行爲的文本和圖形輸入格式是編程語言」 – 2010-04-19 17:56:31

0

形式語言是隻考慮對良好性沒有別的語言。這意味着充足和必要的條件是遵守其規則。 一個例子規則:

對於如。如果我們將十進制數的語言定義爲{x |不帶前導零的有限數字}。 (簡單地說,小數表示的數字序列。)

所以,如果含有上述規則的語言是正式的,就應該堅持遵守給定的規則。

但在實際使用中,如果語言把001作爲一個十進制數,我們可以得出結論:編程語言是不正規的,因爲它的不完全根據規則設置定義。

通常,語言解析器會檢查這些規則。 因此,一個正式的語言應該始終是良構的(嚴格遵循自己的規則)

0

它不是一種「正式語言」,它是一種正式的編程方法:Wikipedia。它不必是一種特定的語言,而是您編寫規範和驗證代碼的方式。

0

其他答案與計算機科學的正式編程語言的定義有關。然而,這個答案是根據Social(wannabe)科學的正式編程語言的定義。

根據dictionary.com,「形式」的定義之一是being in accordance with the usual requirements, customs, etc.; conventional

正式的編程語言是一種被廣泛使用並且被討論的人所接受的編程語言。因此,它是具體的領域和對話。也許更好的措辭是'流行','傳統','主流'或'廣泛接受'的編程語言。例如,在商業和工業中,這是指SQL,Java, C#,C++,PythonPHP

非正式編程語言的例子是SPL(莎士比亞編程語言),FORTRANCoffeeScript。更準確地說,一種語言比另一種語言更傳統,更正式,而不是說一種語言是正式的,另一種語言是非正式的。 畢竟,Lisp將是一個非常非正式的編程語言,用於製作一個網站,但是一個用於開發人工智能研究的非常正式的編程語言。