官术网_书友最值得收藏!

1.2.2 語法分析

語法分析是編譯的第二個(gè)步驟。語法分析器讀入詞法單元流,基于語言的語法規(guī)則推導(dǎo)并構(gòu)建語法分析樹,若輸入的詞法單元流在語法規(guī)則下能夠被推導(dǎo)并構(gòu)建為語法分析樹,則認(rèn)為該程序不包含語法錯(cuò)誤,語法分析器輸出語法分析樹,交予語義分析器進(jìn)行語義檢查。

例如,對(duì)于詞法分析獲得的詞法單元流:

其通過語法分析構(gòu)造的語法分析樹如下:

語法分析器分析得知,這條語句是一條賦值語句,首先聲明了變量iVarDec),然后給i賦值為123+b*c。語法推導(dǎo)過程中,符號(hào)的歸約具有優(yōu)先級(jí),例如乘法的運(yùn)算優(yōu)先級(jí)高于加法,乘法應(yīng)當(dāng)在加法之前進(jìn)行計(jì)算,因此首先歸約b*c,然后歸約123+b*c

在第2章中,我們將討論以下內(nèi)容:

●上下文無關(guān)文法,幾乎所有程序設(shè)計(jì)語言的語法規(guī)則都是通過上下文無關(guān)文法來定義的。

●自頂向下的語法分析算法。

●自底向上的語法分析算法。

主站蜘蛛池模板: 东明县| 平泉县| 小金县| 封开县| 历史| 成都市| 航空| 建阳市| 博罗县| 无棣县| 叶城县| 潼南县| 曲靖市| 香河县| 辽阳县| 宁海县| 包头市| 霍邱县| 讷河市| 新民市| 林西县| 镶黄旗| 衡水市| 玛沁县| 荔浦县| 台前县| 德清县| 景宁| 冕宁县| 宁明县| 三明市| 河北省| 渭源县| 文山县| 老河口市| 台州市| 桐梓县| 昆山市| 遵义市| 伽师县| 景泰县|