What have you found for these years?

顯示具有 語言 標籤的文章。 顯示所有文章
顯示具有 語言 標籤的文章。 顯示所有文章

2008-05-03

Chomsky hierarchy

我之前寫 regular expression 一直會碰上一個問題——
沒有遞迴。後來我一直在思索究竟 regular expression
可否寫成真正的 parser? 我覺得很難,不如直接用真正的
parser generator, 會比寫 regular expression 容易得多。

根據 Chomsky hierarchy,
基本上大部分的程式語言都是屬於 context-free grammar,
所以通常要寫 parser 也是針對 context-free grammar;
然而,regular expression 僅是屬於 regular grammar,
他的層級比 context-free grammar 低了一層,
也就是說,regular expression 確實不可能能夠 parse 出
所有 context-free grammar 的 language.

而這之間的差異,在於 context-free grammar 可以在
右側置放 nonterminal 和 terminal 的組合;
然而 regular grammar 只能放一個 nonterminal?

至於 context-sensitive grammar 更可以在左側置放
terminal 與 nonterminal 的組合。這邊先不管詳細的定義,
還在試圖理解中... 總之,我想大概這就是為什麼 regular expression
難以表達一些比較複雜的 pattern, 也說明出為什麼 regular expression
會讓我有沒有「遞迴」的感覺,他確實是缺少某種程度上的遞迴。

支援遞迴的話呢?那 regular expression 就不再是 regular expression,
他必然會升級到 context-free grammar...

所以我要求的東西大概是不存在吧 :D
因為那超出其定義的範圍內了,就像超人其實不是人這樣?

==

有時候會貪婪地想知道一切
這也是為什麼會有:The Problem with Wikipedia
吧?

學問的終點無止盡啊!偏偏你又能找到好多相似的道理,看得讓人心癢癢的

latin

「我的拉丁文老師——瑞利太太(她的羅馬生日派對無法挽救
拉丁文的衰微)想要說服我們拉丁文的文法因其確定性、邏輯性
與一致性,會使得心智也變得確定、邏輯與一致(現在這種說法
是出自電腦程式語言的老師之口了)。」

——《語言本能》第四章「語言的運作」p. 123

訂閱: 文章 (RSS)