C C 的語法是 LL 1 語法嗎?

時間 2021-05-09 21:40:00

1樓:陳碩

C 語言的語法也不是 context-free,它有 the 「typedef-name: identifier」 problem。比如 X* y; 可以是乘法表示式語句,也可以是定義 y 為指向 X 的指標。

(T)*p, 可以是把 *p 強制轉型為 T,也可以是乘法表示式。

The context sensitivity of C's grammar

2樓:馮東

C++ 語法根本不是 context-free。AA bb(cc); 這句話根據八百萬行之前的定義不同,AST 天壤之別。

補充: @陳碩 提到了 C 也不是 context-free。不過「X* y;」可能是 C 裡唯一的例子。

而這個例子只要簡單的查一下 X 的型別就行。這個例子更像 Python 的縮排:縮排本身導致了 Python 不是 context-free,但是只要做乙個簡單的預處理就能變成 context-free。

而 C++「AA bb(cc);」本身可以是對乙個新名稱 bb 的 declaration,無法通過簡單的判定 AA 的型別來決定。所以 C++ 的語法複雜程度和 C 不是乙個層次的。

語文語法借鑑的英語語法嗎?

tess 個人覺得借鑑的是研究經驗,很難說具體借鑑某個東西。可能有英語也有別的語言,具體確實不是特別清楚,但是英語作為大語種,國際對語音和語法的研究都在中國之前,一定有借鑑前人是毋庸置疑的。無論是語音還是語法,都是借鑑研究經驗,有一些是相同之處,也有不同之處。 這個邏輯有問題,不是漢語借鑑英語的,而...

這樣的語法是正確的嗎?

凱恩德 你好。首先,這個句子在結構和意義還有語法上都是正確的,即,動名詞短語 helping you learn English well 做主語 is my task 為謂語,非謂語是動名詞 helping 問答一,因為 help sbdo 是固定搭配。問答二,一般是這樣。但一般是針對除謂語以外的...

聽說漢語語法是最混亂的語法。請問為什麼,與其他一些語言相比,又有什麼混亂 複雜之處

錢哥 爭論漢語的語法混亂與否,意義不大,對錯向來沒太大意思。不可否認的是 漢語的難度不利於漢文化的傳播。尤其不利於西方學習和了解中國。乙個國家的語言被全世界都認為很難學,這不能算是乙個優點 豆腐塊 舉個例子,英語 日語核心套路都差不多,都是西方或被西化的語言,喜歡用各種工具來組織語言的結構,例如喜歡...