《編譯原理》課程教學(xué)大綱
Principlesof Compiler
課程代碼: 課程性質(zhì):專業(yè)課 必修
適用專業(yè):計(jì)算機(jī),、網(wǎng)絡(luò)、軟件 總學(xué)分?jǐn)?shù):3
總學(xué)時(shí)數(shù):48 修訂年月:
編寫年月:2014.3 執(zhí)筆 者:張巍
中文簡(jiǎn)介
《編譯原理》是計(jì)算機(jī)類專業(yè)的主干課程之一,。本課程講述高級(jí)程序設(shè)計(jì)語(yǔ)言的編譯程序構(gòu)造的基本原理和實(shí)現(xiàn)技術(shù),,是計(jì)算機(jī)軟件的核心技術(shù)之一。通過本課程的學(xué)習(xí),,學(xué)生應(yīng)掌握文法和形式語(yǔ)言基礎(chǔ)知識(shí),,具有分析和實(shí)現(xiàn)編譯程序的初步能力,加深對(duì)程序設(shè)計(jì)語(yǔ)言原理的理解,,并且提高中,、大型程序的分析和開發(fā)能力。
英文簡(jiǎn)介
Compiling Principle is the main course of the computer discipline.This course describes the fundamentals of programming language compiler and presentsits construction and implementation. Compiler is core technology of computersoftware. Through learning this course, students should master the basicgrammar and knowledge of the formal language. Students can analyze and solutethe simple problems based on compiling knowledge, and raise the large-scaleprogram analysis and development capabilities.
一,、課程目的
《編譯原理》是計(jì)算機(jī)類專業(yè)的主干課程之一,。本課程講述高級(jí)程序設(shè)計(jì)語(yǔ)言的編譯程序構(gòu)造的基本原理和實(shí)現(xiàn)技術(shù),,是計(jì)算機(jī)軟件的核心技術(shù)之一。通過本課程的學(xué)習(xí),,學(xué)生應(yīng)掌握文法和形式語(yǔ)言基礎(chǔ)知識(shí),,具有分析和實(shí)現(xiàn)編譯程序的初步能力,加深對(duì)程序設(shè)計(jì)語(yǔ)言原理的理解,,并且提高中,、大型程序的分析和開發(fā)能力。
二,、課程教學(xué)內(nèi)容及學(xué)時(shí)分配
教學(xué)課時(shí)分配
第1章 緒論?。?學(xué)時(shí))
主要內(nèi)容:編譯程序;解釋程序,;編譯程序的組成,;編譯程序的構(gòu)造。
重點(diǎn):掌握編譯程序的基本概念,;了解通用程序設(shè)計(jì)語(yǔ)言的主要特征,;了解編譯器在計(jì)算機(jī)系統(tǒng)中的地位和作用;了解編譯器的基本工作原理,;了解編譯器各個(gè)階段的工作與任務(wù),;理解對(duì)編譯程序性能的基本要求;了解編譯器的編寫工具,。
第3章 文法和形式語(yǔ)言基礎(chǔ) (7學(xué)時(shí))
主要內(nèi)容:符號(hào)串,;文法和語(yǔ)言的形式定義,;文法的分類;語(yǔ)法樹和二義性,;文法的限制和變換,。
重點(diǎn):文法和形式語(yǔ)言的基本概念,尤其是上下文無關(guān)文法與上下文無關(guān)語(yǔ)言,。
第4章 詞法分析?。?學(xué)時(shí))
主要內(nèi)容:詞法分析程序的任務(wù);詞法分析程序的設(shè)計(jì),;正則文法,、正則表達(dá)式和有限自動(dòng)機(jī);詞法分析程序,;PL/0詞法分析的設(shè)計(jì)與實(shí)現(xiàn)
重點(diǎn):了解詞法分析器的作用和基本工作方式,,理解構(gòu)詞規(guī)則與詞法分析的關(guān)系,掌握利用狀態(tài)轉(zhuǎn)換圖構(gòu)造詞法分析器的基本方法,。
第5章 自頂向下優(yōu)先分析分析?。?學(xué)時(shí))
主要內(nèi)容:遞歸子程序分析法;LL(1)分析法。PL/0語(yǔ)法分析程序的設(shè)計(jì)與實(shí)現(xiàn),。
重點(diǎn):LL(1)文法的相關(guān)技術(shù)方法,,遞歸下降分析器構(gòu)造方法和LL(1)分析表構(gòu)造方法。
第6,7章 自底向上語(yǔ)法分析 ?。?學(xué)時(shí)) 主要內(nèi)容:自底向上方法概述,,簡(jiǎn)單優(yōu)先分析法,LR(0)分析法,;SLR(1)分析法,; LR(1)分析法;LALR(1)分析法,。
重點(diǎn):LR族文法,、可歸前綴圖構(gòu)造以及分析表的構(gòu)造。
第8章 語(yǔ)法制導(dǎo)翻譯和中間代碼的生成?。?學(xué)時(shí))
主要內(nèi)容:逆波蘭表示,;三元式和樹表示;四元式,;簡(jiǎn)單賦值語(yǔ)句的翻譯;布爾表達(dá)式的翻譯;控制語(yǔ)句的翻譯;簡(jiǎn)單說明語(yǔ)句的翻譯;數(shù)組和結(jié)構(gòu)的翻譯,。
重點(diǎn):三種中間語(yǔ)言:四元式、三元式,、逆波蘭表示,;算術(shù)表達(dá)式的翻譯,布爾表達(dá)式的翻譯,,控制語(yǔ)句的翻譯,。PL/0語(yǔ)言語(yǔ)義分析程序的設(shè)計(jì)與實(shí)現(xiàn)。
第9章 符號(hào)表?。?學(xué)時(shí))
主要內(nèi)容: PL/0語(yǔ)言的符號(hào)表,。
第10章 目標(biāo)程序運(yùn)行時(shí)的存儲(chǔ)組織(5學(xué)時(shí))
主要內(nèi)容:數(shù)據(jù)空間的管理方法,棧式存儲(chǔ)分配,,參數(shù)傳遞,,過程調(diào)用、進(jìn)入和返回,。
重點(diǎn):棧式存儲(chǔ)分配的實(shí)現(xiàn),;分程序結(jié)構(gòu)的存儲(chǔ)管理;參數(shù)傳遞
第11章 代碼優(yōu)化?。?學(xué)時(shí))
主要內(nèi)容:合并常數(shù),;消除多余運(yùn)算;外提不變運(yùn)算,;削減運(yùn)算強(qiáng)度,;下標(biāo)變量?jī)?yōu)化,。
重點(diǎn):基本塊和循環(huán)相關(guān)的代碼優(yōu)化方法
第12章 代碼生成 (2學(xué)時(shí))
主要內(nèi)容:代碼生成概述,;PL/0編譯程序的目標(biāo)代碼結(jié)構(gòu)和代碼生成,。
重點(diǎn): PL/0編譯程序的目標(biāo)代碼結(jié)構(gòu)和代碼生成
三、課程教學(xué)的基本要求
本課程是計(jì)算機(jī)類專業(yè)的專業(yè)核心課程,,要求理論與實(shí)踐緊密結(jié)合,。
(1)總體目標(biāo)
① 對(duì)編譯程序的整體結(jié)構(gòu)有清晰的了解。
② 掌握詞法分析和語(yǔ)法分析的基本方法,。
③ 具有設(shè)計(jì)各種常見語(yǔ)言成分的目標(biāo)結(jié)構(gòu)的能力,。
④ 掌握靜態(tài)和動(dòng)態(tài)存儲(chǔ)分配技術(shù)。
⑤ 熟悉編譯程序中各種主要的數(shù)據(jù)結(jié)構(gòu),。
⑥ 具有分析和實(shí)現(xiàn)編譯程序的初步能力,。
四、本課程與其它課程的聯(lián)系與分工
先修課程:
《C語(yǔ)言程序設(shè)計(jì)》:高級(jí)語(yǔ)言是編譯程序的源語(yǔ)言,,其數(shù)據(jù)類型,、表達(dá)式、語(yǔ)句,、程序結(jié)構(gòu),、參數(shù)傳遞方式和存儲(chǔ)管理方法等,是設(shè)計(jì)和實(shí)現(xiàn)編譯程序的基礎(chǔ),。
《匯編語(yǔ)言程序設(shè)計(jì)》:匯編語(yǔ)言是編譯程序的目標(biāo)語(yǔ)言,,匯編語(yǔ)言的指令形式、寄存器,、變址器以及尋址方式等,,與編譯程序代碼生成直接相關(guān)。
《數(shù)據(jù)結(jié)構(gòu)》:在編譯過程中,,需要對(duì)源程序和中間語(yǔ)言程序的語(yǔ)法結(jié)構(gòu)和語(yǔ)義信息進(jìn)行組織,、管理和查找,,大量使用各種數(shù)據(jù)結(jié)構(gòu)及其算法,。
《離散數(shù)學(xué)》:編譯原理建立在形式語(yǔ)言與自動(dòng)機(jī)的理論基礎(chǔ)上,在編譯程序的詞法分析,、語(yǔ)法分析和代碼優(yōu)化等方面,,大量應(yīng)用離散數(shù)學(xué)的理論與方法。
五 建議教材與教學(xué)參考書
建議教材:
《編譯原理課(第二版)》 張素琴 呂映芝 清華大學(xué)出版社 2005年2月
建議參考書:
【1.】 《現(xiàn)代編譯原理--C語(yǔ)言描述 》 (美)Andrew W.Appel 譯者: 趙克佳,黃春,沈志宇人民郵電出版社 2003年2月
【2.】 《高級(jí)編譯器設(shè)計(jì)與實(shí)現(xiàn)》作者:(美)Steven S.Muchnick譯者: 趙克佳
機(jī)械工業(yè)出版社 2005年7月
【3.】 《編譯原理》[美]A.V.Aho等著,,李建中等譯,,機(jī)械工業(yè)出版社,2003
【4.】 《編譯原理及實(shí)踐》[美]K.C.Louden等著 英文影印版:機(jī)械工業(yè)出版社,, 2002 中文版:馮博琴等譯,,機(jī)械工業(yè)出版社,,2000
【5.】 《程序設(shè)計(jì)語(yǔ)言編譯原理》(第3版)陳火旺等, 國(guó)防工業(yè)出版社,2000
【6.】 《編譯原理課程設(shè)計(jì)》王雷 劉志成 周晶 機(jī)械工業(yè)出版社 2005年3月