資源描述:
《編譯原理理論教學(xué)大綱》由會(huì)員上傳分享,免費(fèi)在線閱讀,更多相關(guān)內(nèi)容在教育資源-天天文庫。
1、《編譯原理》理論教學(xué)大綱(2001年制訂,2004年修訂)課程編號(hào):英 文 名:CompilingPrinciple課程類別:專業(yè)主干課前 置 課:程序設(shè)計(jì)基礎(chǔ)、數(shù)據(jù)結(jié)構(gòu)、匯編語言、離散數(shù)學(xué)后 置 課:無學(xué) 分:4學(xué)分課 時(shí):72課時(shí)(其中理論教學(xué)54課時(shí),實(shí)驗(yàn)教學(xué)18課時(shí))主講教師:蘇杭麗等選定教材:呂映之,張素琴,蔣維杜.編譯原理.北京:清華大學(xué)出版社,2001年.課程概述:本課程是計(jì)算機(jī)科學(xué)與技術(shù)專業(yè)的專業(yè)主干課程,介紹了程序設(shè)計(jì)語言編譯程序構(gòu)造的一般原理、基本設(shè)計(jì)方法、主要實(shí)現(xiàn)技術(shù)方法和一些自動(dòng)構(gòu)造工具,如:語言基礎(chǔ)知識(shí)、詞法分析、語法分析、有限自動(dòng)機(jī)理論、形
2、式語言的識(shí)別、語義檢查、運(yùn)行時(shí)的存儲(chǔ)管理、代碼優(yōu)化和代碼生成以及整個(gè)編譯程序的構(gòu)造過程。教學(xué)目的:掌握編譯程序構(gòu)造的一般原理、基本設(shè)計(jì)方法、主要實(shí)現(xiàn)技術(shù)和一些自動(dòng)構(gòu)造工具,鞏固《程序設(shè)計(jì)語言》、《數(shù)據(jù)結(jié)構(gòu)》、《匯編語言》、《離散數(shù)學(xué)》等基礎(chǔ)知識(shí),能將編譯程序中的概念和技術(shù)應(yīng)用于一般的軟件設(shè)計(jì)之中,能夠獨(dú)立完成小型編譯程序。教學(xué)方法:理論講課與上機(jī)實(shí)驗(yàn)結(jié)合。首先從剖析一個(gè)簡單的編譯程序(PL/0)入手,對(duì)編譯程序設(shè)計(jì)的基本理論,如有窮自動(dòng)機(jī)、上下文無關(guān)文法等給予必要的介紹;對(duì)于廣泛使用的語法分析和語義分析技術(shù),如遞歸子程序法、算符優(yōu)先分析、LR分析及語法指導(dǎo)翻譯等進(jìn)行了詳細(xì)
3、講解;對(duì)編譯程序的結(jié)構(gòu)及其各部分功能、實(shí)現(xiàn)方法以及整體的設(shè)計(jì)考慮等給予描述。此外,還介紹了編譯原理的構(gòu)造工具。“編譯原理”是一門對(duì)實(shí)踐性要求較高的課程,教學(xué)中設(shè)置了實(shí)驗(yàn)課,強(qiáng)化對(duì)理論的理解。各章教學(xué)要求及教學(xué)要點(diǎn)第一章編譯程序概論課時(shí)分配:2課時(shí)教學(xué)要求:了解什么是編譯程序;了解編譯過程。教學(xué)內(nèi)容:第一節(jié) 什么是編譯程序一、編譯程序的基本知識(shí)第二節(jié) 編譯過程概述一、詞法分析階段二、語法分析三、語義分析階段四、中間代碼生成五、代碼優(yōu)化六、目標(biāo)代碼生成第三節(jié) 編譯程序的結(jié)構(gòu)一、編譯程序的6個(gè)基本過程二、編譯程序的兩個(gè)管理功能第四節(jié) 編譯階段的組合一、編譯的前端二、編譯的后端第
4、五節(jié) 編譯技術(shù)和軟件工具一、語言的結(jié)構(gòu)化編輯器二、語言的調(diào)試工具三、語言的測(cè)試工具四、高級(jí)語言之間的轉(zhuǎn)換工具五、并行編譯技術(shù)思考題:1.編譯程序的工作過程包括哪幾個(gè)基本階段?2.介紹詞法分析的概念。3.介紹語法分析的概念。4.介紹語義分析的概念。第二章PL/0編譯程序的實(shí)現(xiàn)課時(shí)分配:4課時(shí)教學(xué)目的:了解PL/0語言的描述;掌握PL/0語言的語法描述圖和EBNF表示;了解PL/0編譯程序的結(jié)構(gòu)、詞法分析、語法分析、目標(biāo)代碼結(jié)構(gòu)以及語法錯(cuò)誤處理;了解PL/0編譯程序的目標(biāo)代碼解釋執(zhí)行時(shí)的存儲(chǔ)分配。教學(xué)內(nèi)容:第一節(jié) PL/0語言描述一、PL/0語言的語法描述圖二、PL/0語言文
5、法的EBNF表示第二節(jié) PL/0編譯程序的結(jié)構(gòu)一、PL/0語言編譯程序的過程二、PL/0語言編譯程序的函數(shù)結(jié)構(gòu)第三節(jié) PL/0編譯程序的詞法分析一、PL/0編譯程序的詞法分析過程二、PL/0編譯程序的取字符過程第四節(jié) P/0編譯程序的語法分析一、語法分析程序的兩大部分的功能:說明部分的處理和程序體部分的處理二、程序block過程第五節(jié) PL/0編譯程序的目標(biāo)代碼結(jié)構(gòu)一、PL/0編譯程序的目標(biāo)指令二、舉例說明目標(biāo)指令第六節(jié) PL/0編譯程序的語法錯(cuò)誤處理一、PL/0編譯程序?qū)φZ法錯(cuò)誤、語義錯(cuò)誤、運(yùn)行錯(cuò)誤的處理方法二、給出PL/0文法非終結(jié)符的開始符號(hào)與后繼符號(hào)集合表三、介紹
6、PL/0編譯程序的test測(cè)試過程工作原理第七節(jié) PL/0編譯程序的目標(biāo)代碼解釋執(zhí)行時(shí)的存儲(chǔ)分配一、PL/0編譯程序的4個(gè)寄存器二、PL/0編譯程序的3個(gè)聯(lián)系單元的作用思考題:1.給出對(duì)PL/0語言作如下功能擴(kuò)充時(shí)的語法圖和BNF的語法描述。(1)擴(kuò)充一維整型數(shù)組。(2)擴(kuò)充條件語句的功能使其為:if<條件>then<語句>[else<語句>](3)擴(kuò)充repeat語句為:repeat<語句>{;<語句>}until<條件>2.對(duì)上題的(1)擴(kuò)充給出:(1)符號(hào)表數(shù)據(jù)結(jié)構(gòu)改動(dòng)后的格式。(2)數(shù)組上下界的越界處理。(3)數(shù)組元素地址計(jì)算方法。(4)增加的目標(biāo)指令形式及功能。
7、3.給出1中的(2)、(3)擴(kuò)充時(shí):(1)所生成的目標(biāo)代碼結(jié)構(gòu)示意圖。(2)編譯時(shí)此段目標(biāo)代碼生成的實(shí)現(xiàn)方法。第三章文法和語言課時(shí)分配:6課時(shí)教學(xué)目的:了解文法的直觀概念;了解符號(hào)和符號(hào)串;掌握文法和語言的形式定義;掌握文法的類型;掌握上下文無關(guān)文法及其語法樹;掌握句型的分析。教學(xué)內(nèi)容:第一節(jié) 文法的直觀概念一、文法的基本概念第二節(jié) 符號(hào)和符號(hào)串一、字母表的概念二、符號(hào)串的概念三、符號(hào)串連接的概念四、符號(hào)串方冪的概念第三節(jié) 文法和語言的形式定義一、文法的定義二、推導(dǎo)的概念三、直接推導(dǎo)的概念四、句型的概念五、句子的概念第四節(jié) 文