編譯原理的文法和語言總結與梳理

2022-05-02 18:48:10 字數 917 閱讀 6762

我們都知道,一種語言必定他的文法去描述,它的完整定義包括語法和語義兩個方面。語言和語法是指一組規則,用它可以形成和產生乙個合適的程式。目前廣泛使用的是上下文無關文法,也就是用上下文無關文法作為程式設計的描述工具,比如用a:=b+c表示是乙個合法的賦值語句,則a:=b+就不是合法的賦值語句。

什麼是文法?文法相當於語言學(人類語言)中的語義分析,即分析乙個句所表示的含義。它是產生中間**或目標**的依據。

用ebnf(ebnf是一種稱為擴充套件巴克斯正規化的形式描述)表示就是:《句子》 ::= 《主語》《謂語》

《主語》 ::= 《代詞》< 名詞》

《代::= 我 | 你  | 他

《名::= 王明 | 大學生 | 工人 | 英語

《謂 ::= 《動詞》《直接賓語》

《動 ::= 是 | 學習

《直接賓 ::=《代詞》 |《名詞》

(1)文法的形式化定義:

(2)符號串運算:

正閉包a+與閉包a*:a*=∪a+

(3)文法分類:

(4)語言的定義與運算

語言:在某一確定字母表上的特定符號串的集合。 空集ε,集合也是符合此定義的語言。

語言運算舉例:

(5)句型、句子和語言:

(6)語法樹求短語、簡單短語和控制代碼:

(7)語義的二義性

如果文法g中的某個句子存在不只一棵語法樹,則稱該句子是二義性的。如果文法含有二義性的句子,則稱該文法是二義性的。

ebnf 表示的符號說明。

pl/0 語言文法的 ebnf 表示:

文法和語言總結與梳理

1.梳理第二章的內容,寫一篇理解與總結。高階語言的定義 任何語言實現的基礎是語言定義,程式語言主要由語法和語義兩個方面定義。語法,即一組規則,一部分稱為詞法規則,另一部分稱為語法規則。語義,即符合構成規範的句子,要考慮意義,是指一組規則,使用它可以定義乙個程式的意義。高階語言的一般特徵 程式語言的一...

編譯原理 文法與語言

作者注 這是一篇大學生寫的編譯原理系列,文章並非提供令人望而卻步的長篇論述,意在用簡單有趣的方式分享我所學到的knowledge。至於你所感興趣的深層論述這裡盡可能會給你提供一些簡單的連線供你使用。這裡我要十分感謝我的周老師,我的編譯原理知識,她無疑是最大的貢獻者。二 語法樹與二義性 1.1 如何理...

文法和語言總結與梳理(作業四)

1 梳理第二章的內容,寫一篇理解與總結。什麼是文法?個人理解來說,文法相當於自然語言中的語義分析,即分析乙個句所表示的含義。根據文法可以產生一些句子,就像自然語言中根據語法就能把一些單詞拼湊成句子。但是有些句子在不同的環境有不同的含義,就如文法產生句子的方式不止一種,有可能畫出兩棵語法樹這樣。然後文...