本課程主要內(nèi)容包括:編譯程序/系統(tǒng)概述,,形式語(yǔ)言、文法和自動(dòng)機(jī)的基礎(chǔ)知識(shí),,詞法分析,,語(yǔ)法分析,語(yǔ)法制導(dǎo)的語(yǔ)義處理基礎(chǔ),,語(yǔ)義分析和中間代碼生成,,符號(hào)表組織,運(yùn)行時(shí)存儲(chǔ)組織,,代碼優(yōu)化和目標(biāo)代碼生成,。
1、課程定位
編譯程序/系統(tǒng)在計(jì)算機(jī)科學(xué)技術(shù)的發(fā)展歷史中發(fā)揮了巨大作用,是計(jì)算機(jī)系統(tǒng)的核心支撐軟件,。編譯原理一直以來(lái)是國(guó)內(nèi)外大學(xué)計(jì)算機(jī)相關(guān)專(zhuān)業(yè)的重要課程,,其知識(shí)結(jié)構(gòu)貫穿程序設(shè)計(jì)語(yǔ)言、系統(tǒng)環(huán)境以及體系結(jié)構(gòu),,其理論基礎(chǔ)是聯(lián)系計(jì)算機(jī)科學(xué)和計(jì)算機(jī)系統(tǒng)的典范,。
本課程是計(jì)算機(jī)專(zhuān)業(yè)核心課,主要講授編譯程序/系統(tǒng)構(gòu)造的基本原理和技術(shù),,為學(xué)生深入學(xué)習(xí)計(jì)算機(jī)系統(tǒng)相關(guān)的專(zhuān)業(yè)知識(shí)以及今后從事科學(xué)研究或技術(shù)開(kāi)發(fā)工作打下扎實(shí)的基礎(chǔ),。
2、課程簡(jiǎn)介
本課程主要內(nèi)容包括:編譯程序/系統(tǒng)概述,,形式語(yǔ)言,、文法和自動(dòng)機(jī)的基礎(chǔ)知識(shí),詞法分析,,語(yǔ)法分析,,語(yǔ)法制導(dǎo)的語(yǔ)義處理基礎(chǔ),語(yǔ)義分析和中間代碼生成,,符號(hào)表組織,,運(yùn)行時(shí)存儲(chǔ)組織,代碼優(yōu)化和目標(biāo)代碼生成,。
3,、教學(xué)要求
本課程的教學(xué)目的是系統(tǒng)掌握編譯程序/系統(tǒng)的設(shè)計(jì)原理以及實(shí)現(xiàn)技術(shù)。要求學(xué)生:
(1)深入理解編譯程序/系統(tǒng)的基本構(gòu)造原理,;
(2)掌握常用語(yǔ)言機(jī)制的實(shí)現(xiàn)技術(shù),;
(3)經(jīng)歷開(kāi)發(fā)一個(gè)小型編譯程序的主要階段;
(4)具有學(xué)習(xí)和使用特定編譯構(gòu)造工具的能力,;
(5)會(huì)將所學(xué)的通用方法和技術(shù)應(yīng)用于類(lèi)似軟件的設(shè)計(jì)和實(shí)現(xiàn)中;
(6)具備綜合運(yùn)用知識(shí)開(kāi)發(fā)具有一定規(guī)模的軟件系統(tǒng)的能力,。
4,、教學(xué)內(nèi)容
第1講 課程概述
基礎(chǔ)概念;邏輯結(jié)構(gòu),;組織方式,;伙伴程序;生成環(huán)境
第2講 實(shí)驗(yàn)項(xiàng)目介紹
項(xiàng)目框架的總體結(jié)構(gòu),;實(shí)驗(yàn)內(nèi)容,;實(shí)驗(yàn)環(huán)境;實(shí)驗(yàn)安排,;考核方案
第3講 文法/正規(guī)式/有限自動(dòng)機(jī) ─ 基礎(chǔ)知識(shí)
形式語(yǔ)言概念,;上下文無(wú)關(guān)文法及語(yǔ)言;正規(guī)語(yǔ)言及其描述
第4講 詞法分析
詞法分析概述;詞法分析程序的設(shè)計(jì)與實(shí)現(xiàn),;詞法分析程序的自動(dòng)構(gòu)造
第5講 符號(hào)表
符號(hào)表的作用,;符號(hào)表的常見(jiàn)屬性;符號(hào)表上的操作,;符號(hào)表的組織,;符號(hào)表與作用域
第6講 自頂向下語(yǔ)法分析
自頂向下分析思想;自頂向下預(yù)測(cè)分析,;LL(1)分析,;幾種文法變換;LL(1)分析的出錯(cuò)處理
第7講 自底向上語(yǔ)法分析
自底向上分析思想,;移進(jìn)-歸約分析,;LR分析基礎(chǔ);LR(0),、SLR(1),、LR(1)、LALR(1)等系列分析方法,;二義文法在LR 分析中的應(yīng)用,;LR 分析的出錯(cuò)處理;幾類(lèi)分析文法之間的關(guān)系
第8講 語(yǔ)法制導(dǎo)的語(yǔ)義處理基礎(chǔ)
屬性文法,;基于屬性文法的語(yǔ)義處理,;翻譯模式;基于翻譯模式的語(yǔ)義處理
第9講 語(yǔ)義分析與中間代碼生成
語(yǔ)義分析與中間代碼生成概述,;常規(guī)處理介紹(類(lèi)型檢查,、說(shuō)明語(yǔ)句、賦值語(yǔ)句及算數(shù)表達(dá)式,、數(shù)組說(shuō)明和數(shù)組元素引用,、布爾表達(dá)式、控制語(yǔ)句,、拉鏈與代碼回填技術(shù),、過(guò)程調(diào)用)
第10講 運(yùn)行時(shí)存儲(chǔ)組織
運(yùn)行時(shí)存儲(chǔ)組織概述;程序運(yùn)行時(shí)存儲(chǔ)空間的布局,;存儲(chǔ)分配策略,;活動(dòng)記錄;過(guò)程調(diào)用與參數(shù)傳遞,;面向?qū)ο蟪绦蜻\(yùn)行時(shí)組織
第11講 目標(biāo)代碼生成及代碼優(yōu)化
基本塊,、流圖和循環(huán);數(shù)據(jù)流分析基礎(chǔ)(數(shù)據(jù)流方程,,典型數(shù)據(jù)流分析舉例,,UD鏈,DU鏈);基于 DAG 表示的局部?jī)?yōu)化,;目標(biāo)代碼生成技術(shù)(代碼生成基礎(chǔ),,一個(gè)簡(jiǎn)單的代碼生成算法,圖著色物理寄存器分配算法),;代碼優(yōu)化技術(shù)簡(jiǎn)述