文法和語言總結與梳理

2022-08-26 00:09:22 字數 1516 閱讀 2505

1. 梳理第二章的內容,寫一篇理解與總結。

高階語言的定義

任何語言實現的基礎是語言定義,程式語言主要由語法和語義兩個方面定義。語法,即一組規則,一部分稱為詞法規則,另一部分稱為語法規則。語義,即符合構成規範的句子,要考慮意義,是指一組規則,使用它可以定義乙個程式的意義。

高階語言的一般特徵

程式語言的一般特性:程式結構、資料型別與操作、語句、控制結構。

程式語言的語法描述

與文法定義有關的幾個術語:字母表,符號,符號串,空字等。【注】用s*表示s上的所有符號穿的全體,空字也包括在其中。符號串的運算有連線,方冪,符號串集合的運算有和,連線積。此外,要注意,v+是v的正則閉包,v+=vv*,相當於無空字串存在。

上下文無關文法

文法是描述語言的語法結構的形式規則。上下文無關文法所定義的語法範疇是完全獨立於這種範疇可能出現的環境的。不宜於描述任何自然語言。對於乙個句子,可以用直接推導或者圖示化的方法來推導。上下文無關文法由四元組組成:一組終結符號(組成語言的基本符號,如基本字、識別符號、常數、算符和界符等),一組非終結符號(代表語法範疇,如算術表示式),乙個開始符號(特殊非終結符),以及一組產生式(定義語法範疇的書寫規則,乙個產生式的形式:a→a)。

語言的定義:

假定g是乙個文法,s是它的開始符號。如果s   (a (表示從s出發,經0步或若干步可推出a),則稱a是乙個句型。僅含終結符號的句型是乙個句子。文法g所產生的句子的全體是乙個語言,將它記為l(g).

l(g)=  

要掌握產生式和語言之間的轉換,掌握最左(最右)推導。  

語法分析樹與二義性

語法分析樹:簡稱語法樹,用來表示推導過程。乙個句型不只是對應一棵語法樹

第二章的難點在於文法和語言的相互推倒轉換,然後就是太多的定義需要去記住,剛開始接觸時,學習內容並沒有太高的難度,但是在往後的學習裡接觸到語法時對知識的運用並沒有很熟練,導致在做題時產生過多的錯誤

2. 嘗試寫出pl/0 語言的文法。(或者你認為比較好的語言規則)

整數n《數字》 => 0|1|2…7|8|9

識別符號i《識別符號》 → 《字母》

表示式e《表示式》 →  [+|-]《項》

條件語句《條件語句》 → if《條件》then《語句》

賦值語句《賦值語句》 → 《識別符號》:=《表示式》

復合語句《復合語句》 → begin《語句》end

賦值語句《賦值語句》 → 《識別符號》:=《表示式》

程式〈程式〉→〈分程式〉.

〈分程式〉→ [《常量說明部分》][《變數說明部分》][《過程說明部分》]〈語句〉

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

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

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

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

第四次作業 文法和語言總結與梳理

1.梳理第二章的內容,寫一篇理解與總結。一 定義 語言是乙個記號系統,包括語法和語義 文法最主要的成分是規則 產生式 我們可以通過規則進行推導生成語法樹。二 文法g四元組 vn,vt,p,s vn為非終結符集 vt為終結符集 p為規則 的集合 s為識別符或開始符,至少要在一條規則中作為左部出現。三 ...