《编译原理》课程教学大纲
《編譯原理》課程教學大綱
課程編號:773033
課程名稱(中/英文):編譯原理 / Compiler Principle
課程類型: 模塊課
總 學 時:5學時/周 講課學時:4學時/周 實驗學時:1學時/周
學 分:4學分
適用對象: 軟件開發各專業方向
先修課程:程序設計、計算機組成原理、數據結構、操作系統
后續課程:人工智能、數據挖掘
開課單位:軟件與應用科技學院
一、課程性質和教學目標
《編譯原理》課程是計算機科學與技術專業的一門重要專業課。本課程系統講述程序設計語言的編譯程序的概念、構造、以及實現的主要算法和技術。通過本課程的學習,使學生掌握編譯程序的前三個邏輯階段:在詞法分析中,深入理解正規表達式與有限自動機的理論和不確定的有限自動機轉化為確定有限自動機的方法;在語法分析中,理解上下文無關方法的概念,掌握自上而下分析和自下而上分析的方法,深入理解消除左遞歸、消除回溯、提取左因子的方法和LL(1)分析法;在語義分析和中間代碼生成中,掌握屬性文法和語法制導翻譯的基本思想、中間代碼的格式和語句翻譯的方法。了解編譯程序的后兩個階段:優化和目標代碼生成。除此之外,還需對符號表管理以及運行時存儲空間組織的管理方法加以了解。為今后從事編譯及其他有關軟件的研究和開發工作打下較為堅實的基礎。
二、教學基本要求
通過本課程的學習,應使學生達到以下基本要求:
1、正確理解什么是編譯程序,掌握編譯程序工作的基本過程及其各階段的基本任務,熟悉編譯程序總體框架,了解編譯程序的生成過程和構造工具。
2、熟悉并掌握上下文無關文法基本概念,包括:文法的定義、編寫、句型、句子、語言、語法樹、二義性等,理解三種參數傳遞方式:傳值、傳地址、傳名的含義。
3、熟悉并掌握詞法分析器功能及形式、詞法分析器設計的原理、狀態轉換圖的原理及使用方法。
4、熟悉并掌握自上而下分析的基本思想、遞歸下降分析的基本方法、消除左遞歸和回溯的方法、構造遞歸下降子程序的方法,預測分析程序的基本原理和預測分析表的構造方法、LL(1)方法。
5、熟悉并掌握自下而上語法分析的基本思想以及歸約、短語、句柄、分析樹等概念,掌握算符優先分析基本方法,算符優先表和和算符優先函數構造技術。
6、熟悉并掌握語法制導翻譯基本原理、基于屬性文法的處理方法、自上而下分析制導翻譯基本思想和實現方法。
7、掌握常見的幾種中間語言:四元式、三元式、逆波蘭表示,掌握各種語句到四元式的翻譯方法,包括簡單算術表達式,布爾表達式,控制語句,數組引用,過程調用等。
8、理解符號表的作用及符號表組織和使用方法,了解名字的作用范圍,了解符號表中一般應包含的內容。
三、教學內容及要求
第1章 引論
教學目的:理解并掌握編譯程序的各個邏輯階段及各階段的意義、遍的概念。
第2章 高級語言及其語言描述
1.程序語言的定義
2.高級語言的分類
3.語句與控制結構
4.上下文無關文法
5.語法分析樹與二義性
教學目的:理解并掌握符號串和符號串集合的相關概念以及相關運算、上下文無關文法、推導與歸約、語法分析樹、二義性、形式語言鳥瞰,即四種類型的文法。
第3章 詞法分析
1.詞法分析器的要求
2.詞法分析器的設計
3.正規表達式
4.有限自動機
5.詞法分析器的自動產生
教學目的:理解并掌握詞法分析器的相關概念、狀態轉換圖、NFA、DFA、NFA與DFA的轉換、DFA的化簡、正規式與正規集。
第4章 語法分析—自上而下分析
1.語法分析器的功能
2.自上而下分析面臨的問題
3.LL(1)分析法
4.遞歸下降分析程序構造
5.預測分析程序
6.LL(1)分析中的錯誤處理
教學目的:理解并掌握語法分析器的相關概念、自上而下分析面臨的問題、左遞歸的消除、公共左因子的提取、first集和follow集、LL(1)文法的條件以及LL(1)分析表的構造及預測分析過程。
第5章 語法分析—自下而上分析
1.自下而上分析基本問題
2.算符優先分析
3.語法分析器的自動產生工具
教學目的:理解并掌握算符優先分析算法、LR分析步驟、掌握LR(0)分析表、SLR分析表、規范LR分析表、LALR分析表的畫法。
第6章 屬性文法和語法制導翻譯
1.屬性文法
2.基于屬性文法的處理方法
3.S-屬性文法的自下而上計算
4.L-屬性文法和自頂而下翻譯
5.自上而下計算
教學目的:理解并掌握綜合屬性、繼承屬性、S-屬性文法、L-屬性文法、語法制導定義、翻譯模式。
第7章 語義分析和中間代碼生成
1.中間語言
2.說明語句
3.賦值語句的翻譯
4.Bool表達式的翻譯
5.控制語句的翻譯
6.過程調用的處理
7.類型檢查
教學目的:理解并掌握中間語言的表示形式、布爾表達式和控制語句的翻譯。
第8章 符號表
1.符號表的組織與作用
2.整理與查找
3.名字的作用與范圍
4.符號表的內容
教學目的:理解并掌握符號表的組織與作用。
四、課程建設與改革
編譯原理的教學內容涉及大量的理論知識,這些知識比較抽象且邏輯復雜,如形式語言理論、正規式、有限自動機理論、上下文無關文法、自下而上分析、自上而下分析,屬性文法和語法制導翻譯等。大量的概念、算法和符號很容易使學生對學習產生恐懼心理,而且大量的理論知識與有限的教學時間之間的沖突,使得教師很難將所有內容都詳細展開、深入講解。最終導致學生在學完整門課程之后,只在表面了解,而不知道各知識點在編譯器中究竟有什么作用。
為了解決上述問題,在課堂教學中,教師針對學生情況優化和調整教學內容,避免教師唱“獨角戲”,強調學生的參與性。以“問題”為中心,以“學習”為目標,堅持授人以漁的原則,引導學生、啟發學生,調整教師和學生在教學活動中的角色,在維持教師主導地位的同時,強調學生的主體地位。根據編譯原理的特點,可以使用兩種教學模式。一是在教師的組織下,學生通過問題進行學習,再通過學習來解決問題。二是使學生模擬科學家從事科研過程的方式,教師不直接參與其中,只在必要時給予學生一定的指導。
五、各教學環節學時分配
講課 習題課 討論課 實驗 其他 合計
第一章 引論 4 0 0 0 0 4
第二章 高級語言及其語言描述 8 0 0 2 0 10
第三章 詞法分析 12 2 0 2 0 16
第四章 語法分析—自上而上分析 10 0 0 4 0 14
第五章 語法分析—自下而上分析 16 0 0 4 0 20
第六章 屬性方法和語法制導翻譯 4 2 0 4 0 10
第七章 語義分析和中間代碼生成 2 0 0 0 0 2
第八章 符號表 1 3 0 0 0 4
合計 57 7 0 16 0 80
六、考核及成績評定方式
七、教材和參考書目 (黑體,小4號字)
教 材:《程序設計語言編譯原理 (第3版)》,陳火旺、劉春林編著,國防工業出版社,2007年。
參考書目:
(1)陳意云、張昱,編譯原理(第3版),高等教育出版社, 2014
(2)陳意云、張昱,編譯原理習題精選與解析(第3版),高等教育出版社,2014
(3)Alfred V.Aho,編譯原理,機械工業出版社,2009
(4)Alfred V.Aho, Ravi Sethi, Jeffrey D.Ullman, 編譯原理 技術與工具(英文版), 人民郵電出版社 ,2002
(5)Louden, K.C, 編譯原理及實踐(英文版), 中信出版社 ,2004
大綱制訂人:
大綱審定人:
制訂日期:
總結
以上是生活随笔為你收集整理的《编译原理》课程教学大纲的全部內容,希望文章能夠幫你解決所遇到的問題。
- 上一篇: 微软程序员利用测试账户套现千万美元,或面
- 下一篇: 《编译原理》实验教学大纲