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