《编译原理》课程标准
XX大學軟件學院
《編譯原理》課程標準
制定人:張晨光
課程代碼: 773033
課程名稱(中文 / 英文):編譯原理 / Compiler Principle
學時( 實驗學時 )/ 學分: 周5學時 / 4學分
課程性質:專業必修
先修課程:JAVA程序設計
后續課程:無
適用專業:軟件開發專業(JAVA、.NET方向)、軟件測試專業、信息工程專業
選用教材: 書名: 程序設計語言編譯原理???
作者: 陳火旺,劉春林,譚慶平等編著
??? 出版社: 國防工業出版社
??? 出版日期: 2007
一、教學目的與任務
通過對該課程的學習,使學生能夠了解編譯程序構造的一般原理、基本設計方法和主要實現技術。使學生掌握編譯程序的五個邏輯階段:在詞法分析中,深入理解正規表達式與有限自動機的理論和不確定的有限自動機轉化為確定有限自動機的方法;在語法分析中,理解上下文無關方法的概念,掌握自上而下分析和自下而上分析的方法,深入理解消除左遞歸、消除回溯、提取左因子的方法和LL(1)分析法;在語義分析和中間代碼生成中,掌握屬性文法和語法制導翻譯的基本思想、中間代碼的格式和語句翻譯的方法;在優化和目標代碼生成中,了解其基本方法。除此之外,還需對符號表管理以及運行時存儲空間組織的管理方法加以了解。
二、教學方法與特色
在學習編譯原理之前,首先要求學生對一些源語言(如C或Java)和目標機器有所了解。
在教學過程有,其方法和特色有:
(1)在介紹語言實現技術的同時,強調一些相關的理論知識,如形式語言和自動機理論、語法制導的定義和屬性方法、類型論等。
(2)在介紹編譯器各邏輯階段的實現時,強調形式化描述技術。
(3)強調對編譯原理和技術的宏觀理解和把握,而不把讀者的注意力分散到一些枝節的算法上。
(4)在教學過程中,不偏向于某種源語言或是目標機器。
(5)鼓勵學生在學習過程中用所學的知識去分析和解決實際問題,激發學生學習編譯原理和技術的積極性。
三、教學內容與要求
第1章 引論1、課程性質與任務
2、編譯過程概述
3、編譯程序的結構
第2章 高級語言及其語言描述
1、程序語言的定義
2、高級語言的分類
3、語句與控制結構
4、上下文無關文法
5、語法分析樹與二義性
第3章 詞法分析
1、 詞法分析器的要求
2、詞法分析器的設計
3、正規表達式
4、有限自動機
5、詞法分析器的自動產生
第4章 語法分析—自上而下分析
1、語法分析器的功能
2、自上而下分析面臨的問題
3、 LL(1)分析法
4、遞歸下降分析程序構造
5、預測分析程序
6、LL(1)分析中的錯誤處理
第5章 語法分析—自下而上分析
1、自下而上分析基本問題
2、算符優先分析
3、語法分析器的自動產生工具
第6章 屬性文法和語法制導翻譯
1、屬性文法
2、基于屬性文法的處理方法
3、S-屬性文法的自下而上計算
4、L-屬性文法和自頂而下翻譯
5、自上而下計算
第7章 語義分析和中間代碼生成
1、中間語言
2、說明語句
3、賦值語句的翻譯
4、Bool表達式的翻譯
5、控制語句的翻譯
6、過程調用的處理
7、類型檢查
第8章 符號表
1、符號表的組織與作用
2、整理與查找
3、名字的作用與范圍
4、符號表的內容
第9章 運行時存儲空間組織
1、目標程序運行時的活動
2、運行時存儲器的劃分
3、簡單的棧式存儲分配
第10章 優化
1、 局部優化
2、 循環優化
第11章 目標化碼生成
1、目標代碼生成的基本問題
2、目標機器模型
3、簡單的代碼生成器
4、寄存器分配
5、DAG的目標代碼
6、 窺孔優化
第12章 并行編譯基礎
1、 并行編譯的基本概念
2、 并行編譯的依賴關系
3、 依賴關系測試
4、 循環的向量化
5、 循環變換技術
四、教學安排及方式
本課程總學時90學時,課堂總學時72學時,實踐總學時18學時。
章次 內容 總學時 課堂學時數 實踐學時數
1 引論 4 4 0
2 高級語言及其語言描述 10 8 2
3 詞法分析 14 12 2
4 語法分析—自上而上分析 16 12 4
5 語法分析—自下而上分析 16 12 4
6 屬性方法和語法制導翻譯 10 8 2
7 語義分析和中間代碼生成 10 8 2
8 符號表 6 4 2
9 運行時存儲空間組織 1 1 0
10 優化 1 1 0
11 目標代碼生成 1 1 0
12 并行編譯基礎 1 1 0
90 72 18
五、考核方式
六、參考教材
(1) 陳意云, 張昱編. 編譯原理(第2版).高等教育出版社.
(2) Louden, K.C編. 編譯原理及實踐(文版).中信出版社.
(3) Aho,A. V., Sethi, R, Ullman,J.D.編. 編譯原理技術與工具(英文版).人民郵電出版社.
總結
以上是生活随笔為你收集整理的《编译原理》课程标准的全部內容,希望文章能夠幫你解決所遇到的問題。
- 上一篇: 大学编译原理试卷考试题
- 下一篇: Java反射课程教程