為什麼所有的教科書中都不贊成手寫自底向上的語法分析器?

時間 2021-12-20 15:41:28

1樓:wkGCaSS

自底向上首先不是給你手寫的,其次也基本上不是人類能看的。

這玩意就是有乙個非常自然的自動生成實現,說白了就是邏輯爽、數學爽、機器爽、人不爽。

自頂向下手寫非常愜意,可讀性也高。想知道一條語句的解析過程,只要跟著parser的函式呼叫從上往下讀一遍就出來了。正因為可讀性高,也可以引入各種奇淫巧技,實現更複雜的syntax,這些都是自底向上(幾乎)做不到的。

2樓:

這貨沒有LL可讀性好.最大的問題是手寫工作量太大了...乙個功能完善的純正正則引擎不過十幾條文法規則的LALR的狀態少說200+以上...

更別說各種程式語言了,為何不試試輕鬆的機器自動生成,自己擼個yacc呢~

3樓:h8liu

手寫出來的不容易寫好看,不好維護,尤其是各種自底向上的,往往到最後基本等同於自己寫了一遍yacc。

您可以自己手寫乙個簡單的parser體驗一下(比如parse一下json?),在力所能及之內盡量把code整理得可讀一點,體驗一下箇中滋味,大概就心裡有譜了。教科書上那些古典的學術概念,在今天,我覺得知道個大概就行了。

我不是搞PL的,不過他們搞PL的人自己都經常會懷疑他們各種parser概念實際上沒那麼大用,雖然他們的經典教科書裡還是會花很大篇幅來講那些東西……

教科書中苯環為什麼要寫為凱庫勒式?

Jeon 突然發現這個5年前的問題裡面好多人居然不講 symmetry and representation 不理解量子力學卻用很多無關聯的現象來佐證論點,這都21世紀了。承認一下對稱性和量子力學有多難。 Wizard 苯的結構可以表示為乙個正六邊形中間加個圈 這種表示方法能比較形象地顯示出苯的閉合...

為什麼許多書中都推崇要人們要在物質上簡樸而要不斷追求精神的豐富?

人分為物質和精神兩個層面,人的本性都是喜歡追求愉悅的。物質層面的愉悅持續的比較短暫,我們得到了乙個東西或者吃了一頓美食,雖然當時會很愉快,但是快感消失地也快,而且我們身體本身有很強的適應性,同樣的東西帶來的快樂是會慢慢減少的,我們需要更多東西,更多的刺激才能維持原有的快樂水平。我們得到了我們想要的,...

為什麼幾乎所有的父母都不同意自己的孩子整容呢?整容到底值得提倡嗎,希望三觀正的人回答?

樓塔聖壇 我身邊的父母一半一半,一半人希望自己的好些去改變外觀,一般人的父母覺得你本來就不醜,畢竟父母沒有覺得子女醜這一說!而且主要也擔心不安全!至於整容值得提倡嗎?最早整容是改變一些面部有缺陷的人,整容但他們重拾生活的信心!臨床醫療面對的是身體不健康的人,做的是 雪中送炭 醫美面對的是希望更美麗的...