2016-01-08 10:21:25 公務(wù)員考試網(wǎng) 文章來(lái)源:華圖教育
*資料包涵蓋但不限于以上內(nèi)容
保存小程序碼至
手機(jī)進(jìn)行掃碼
編譯原理方面基礎(chǔ)知識(shí)
編譯原理這方面需要考生能掌握編譯程序的基本原理,方法和實(shí)現(xiàn)技術(shù)?忌芾斫獬绦蛘Z(yǔ)言以及內(nèi)部機(jī)制?忌獙(duì)編譯程序結(jié)構(gòu)、編譯程序生成、程序語(yǔ)言基本的詞法,語(yǔ)法和語(yǔ)言等概念,語(yǔ)法分析、語(yǔ)義分析,以及運(yùn)行時(shí)的存儲(chǔ)空間有個(gè)基本的了解。
編譯程序:如果源語(yǔ)言為高級(jí)語(yǔ)言,目標(biāo)語(yǔ)言為某臺(tái)計(jì)算機(jī)上的匯編語(yǔ)言或機(jī)器語(yǔ)
言,則此翻譯程序稱為編譯程序。
源程序:源語(yǔ)言編寫的程序稱為源程序。
目標(biāo)程序:目標(biāo)語(yǔ)言書(shū)寫的程序稱為目標(biāo)程序。
編譯程序的前端:它由這樣一些階段組成:這些階段的工作主要依賴于源語(yǔ)言而與目標(biāo)機(jī)無(wú)關(guān)。通常前端包括詞法分析、語(yǔ)法分析、語(yǔ)義分析和中間代碼生成這些階段,某些優(yōu)化工作也可在前端做,也包括與前端每個(gè)階段相關(guān)的出錯(cuò)處理工作
符后端:指那些依賴于目標(biāo)機(jī)而一般不依賴源語(yǔ)言,只與中間代碼有關(guān)的那些階段,即目標(biāo)代碼生成,以及相關(guān)出錯(cuò)處理和符號(hào)表操作。
遍:是對(duì)源程序或其等價(jià)的中間語(yǔ)言程序從頭到尾掃視并完成規(guī)定任務(wù)的過(guò)。
一個(gè)典型的編譯程序通常由哪些部分組成?各部分的主要功能是什么?
一個(gè)典型的編譯程序通常包含 8 個(gè)組成部分,它們是詞法分析程序、語(yǔ)法分析程序、語(yǔ)義分析程序、中間代碼生成程序、中間代碼優(yōu)化程序、目標(biāo)代碼生成程序、表格管理程序和錯(cuò)誤處理程序。其各部分的主要功能簡(jiǎn)述如下。
詞法分析程序:輸人源程序,拼單詞、檢查單詞和分析單詞,輸出單詞的機(jī)內(nèi)表達(dá)形式。
語(yǔ)法分析程序:檢查源程序中存在的形式語(yǔ)法錯(cuò)誤,輸出錯(cuò)誤處理信息。
語(yǔ)義分析程序:進(jìn)行語(yǔ)義檢查和分析語(yǔ)義信息,并把分析的結(jié)果保存到各類語(yǔ)義信息中。
中間代碼生成程序:按照語(yǔ)義規(guī)則,將語(yǔ)法分析程序分析出的語(yǔ)法單位轉(zhuǎn)換成一定形式的中間語(yǔ)言代碼,如三元式或四元式。
中間代碼優(yōu)化程序:為了產(chǎn)生高質(zhì)量的目標(biāo)代碼,對(duì)中間代碼進(jìn)行等價(jià)變換處理。
目標(biāo)代碼生成程序:將優(yōu)化后的中間代碼程序轉(zhuǎn)換成目標(biāo)代碼程序。
表格管理程序:負(fù)責(zé)建立、填寫和查找等一系列表格工作。表格的作用是記錄源程序的各類信息和編譯各階段的進(jìn)展情況,編譯的每個(gè)階段所需信息多數(shù)都從表格中讀取,產(chǎn)生的中間結(jié)果都記錄在相應(yīng)的表格中。可以說(shuō)整個(gè)編譯過(guò)程就是造表、查表的工作過(guò)程。需要指出的是,這里的“表格管理程序”并不意味著它就是一個(gè)獨(dú)立的表格管理模塊,而是指編譯程序具有的表格管理功能。
錯(cuò)誤處理程序:處理和校正源程序中存在的詞法、語(yǔ)法和語(yǔ)義錯(cuò)誤。當(dāng)編譯程序發(fā)現(xiàn)源程序中的錯(cuò)誤時(shí),錯(cuò)誤處理程序負(fù)責(zé)報(bào)告出錯(cuò)的位置和錯(cuò)誤性質(zhì)等信息,同時(shí)對(duì)發(fā)現(xiàn)的錯(cuò)誤進(jìn)行適當(dāng)?shù)男U,目的是使編譯程序能夠繼續(xù)向下進(jìn)行分析和處理。
何謂翻譯程序、編譯程序和解釋程序?它們?nèi)咧g有何種關(guān)系?
翻譯程序是指將用某種語(yǔ)言編寫的程序轉(zhuǎn)換成另一種語(yǔ)言形式的程序的程序,如編譯程序和匯編程序等。
編譯程序是把用高級(jí)語(yǔ)言編寫的源程序轉(zhuǎn)換(加工)成與之等價(jià)的另一種用低級(jí)語(yǔ)言編寫的目標(biāo)程序的翻譯程序。
解釋程序是解釋、執(zhí)行高級(jí)語(yǔ)言源程序的程序。解釋方式一般分為兩種:一種方式是,源程序功能的實(shí)現(xiàn)完全由解釋程序承擔(dān)和完成,即每讀出源程序的一條語(yǔ)句的第一個(gè)單詞,則依據(jù)這個(gè)單詞把控制轉(zhuǎn)移到實(shí)現(xiàn)這條語(yǔ)句功能的程序部分,該部分負(fù)責(zé)完成這條語(yǔ)句的功能的實(shí)現(xiàn),完成后返回到解釋程序的總控部分再讀人下一條語(yǔ)句繼續(xù)進(jìn)行解釋、執(zhí)行,如此反復(fù);另一種方式是,一邊翻譯一邊執(zhí)行,即每讀出源程序的一條語(yǔ)句,解釋程序就將其翻譯成一段機(jī)器指令并執(zhí)行之,然后再讀人下一條語(yǔ)句繼續(xù)進(jìn)行解釋、執(zhí)行,如此反復(fù)。無(wú)論是哪種方式,其加工結(jié)果都是源程序的執(zhí)行結(jié)果。目前很多解釋程序采取上述兩種方式的綜合實(shí)現(xiàn)方案,即先把源程序翻譯成較容易解釋執(zhí)行的某種中間代碼程序,然后集中解釋執(zhí)行中間代碼程序,最后得到運(yùn)行結(jié)果。廣義上講,編譯程序和解釋程序都屬于翻譯程序,但它們的翻譯方式不同,解釋程序是邊翻譯(解釋)邊執(zhí)行,不產(chǎn)生目標(biāo)代碼,輸出源程序的運(yùn)行結(jié)果。而編譯程序只負(fù)責(zé)把源程序翻譯成目標(biāo)程序,輸出與源程序等價(jià)的目標(biāo)程序,而目標(biāo)程序的執(zhí)行任務(wù)由操作系統(tǒng)來(lái)完成,即只翻譯不執(zhí)行。
↓↓↓↓2022年國(guó)家公務(wù)員考試相關(guān)推薦↓↓↓↓ | |||
國(guó)考 備考策略 |
國(guó)考 問(wèn)答百科 |
各部委 職位分析 |
萬(wàn)人 ?即筚 |
相關(guān)內(nèi)容推薦:
貼心微信客服
貼心微博客服
上一篇:2016年國(guó)家公務(wù)員面試出入境檢驗(yàn)檢疫局:考務(wù)考情及命題趨勢(shì)分析
下一篇:2016年國(guó)家公務(wù)員面試銀監(jiān)會(huì)-計(jì)算機(jī)專業(yè)之軟件工程考點(diǎn)
公告啥時(shí)候出?
報(bào)考問(wèn)題解惑?報(bào)考條件?
報(bào)考崗位解惑   怎么備考?
沖刺資料領(lǐng)?
10萬(wàn)+
閱讀量150w+
粉絲1000+
點(diǎn)贊數(shù)
國(guó)家公務(wù)員考試公告 國(guó)家公務(wù)員考試大綱 國(guó)家公務(wù)員考試專業(yè)分類目錄 國(guó)家公務(wù)員考試職位表 國(guó)家公務(wù)員考試報(bào)名入口 國(guó)家公務(wù)員考試報(bào)考條件 國(guó)家公務(wù)員考試報(bào)名費(fèi)用 國(guó)家公務(wù)員考試報(bào)名人數(shù) 國(guó)家公務(wù)員考試報(bào)名確認(rèn) 國(guó)家公務(wù)員考試準(zhǔn)考證打印 國(guó)家公務(wù)員考試行測(cè)備考 國(guó)家公務(wù)員考試申論備考 國(guó)家公務(wù)員考試考試時(shí)間 國(guó)家公務(wù)員考試考試流程 國(guó)家公務(wù)員考試考試科目 國(guó)家公務(wù)員考試答題須知 國(guó)家公務(wù)員考試考場(chǎng)規(guī)則 國(guó)家公務(wù)員考試真題解析 國(guó)家公務(wù)員考試成績(jī)查詢 國(guó)家公務(wù)員考試分?jǐn)?shù)線 國(guó)家公務(wù)員面試公告 國(guó)家公務(wù)員面試名單 國(guó)家公務(wù)員考試資格復(fù)審 國(guó)家公務(wù)員考試調(diào)劑名單 國(guó)家公務(wù)員面試技巧 國(guó)家公務(wù)員面試禮儀 國(guó)家公務(wù)員結(jié)構(gòu)化面試 國(guó)家公務(wù)員無(wú)領(lǐng)導(dǎo)小組討論 國(guó)家公務(wù)員考試體檢考察 國(guó)家公務(wù)員考試錄用公示