《編譯原理》2019教學大綱 劉陽

2022-10-06 04:33:03 字數 5283 閱讀 4009

《編譯原理》課程教學大綱

課程編號:08120060

課程名稱:編譯原理/ complier principle

課程總學時/學分:40/2.5 (其中理論40學時,實驗0學時)

適用專業:電腦科學與技術專業、軟體工程專業本科

一、課程簡介

編譯原理是電腦科學與技術專業的一門重要課程,專業理論課程,必修課程。主要介紹編譯程式設計的理論知識。它以形式語言與自動機理論為課程的基本理論支柱。

重點介紹形式文法、自動機、語法分析方法、語義分析方法、執行時儲存與**優化。本課程理論嚴謹,邏輯性強,抽象思維能力強,需要運用資料結構與演算法的基礎理論來進行分析,同時對理解軟體工程實際有一定的聯絡。通過本課程的學習,使學生掌握編譯程式構造的一般原理、基本設計方法、主要實現技術。

提高分析問題和解決問題的能力,煅煉研究性的學習能力,為進行電腦科學研究打下一定的基礎。

二、教學目的和任務

本課程的教學目的和要求是使學生掌握形式語言理論與編譯實現相關的基礎概念,掌握編譯程式的構造的一般原理、基本設計方法、主要實現技術方法和一些自動構造工具,能獨立完成小型編譯程式的設計。另外,能將編譯程式中的概念和技術應用於一般的軟體設計之中。從形式語言理論的角度,進一步認識與理解程式語言及其與編譯程式的聯絡。

本課程以講授為主,輔以課堂討論和練習。本課程是在學習高階語言、組合語言、離散數學、資料結構之後進行的。可以進一步增加適當的實驗課時與課程設計,要求構造乙個詞法分析程式,構造乙個表示式翻譯及計值程式,如此方能深入理解編譯原理的一些概念與方法。

三、教學基本要求

通過本課程的學習,要求學生達到:

1、深入了解編譯過程的詞法分析、語法分析、語義分析及中間**生成、優化處理和目標**生成五個階段各自的任務、採用的基本原理和實現技術。

2、深入了解編譯過程中符號表的使用、儲存組織和單元分配的基本實現技術。

3、基本素質要求:通過編譯原理課程的學習,能深入理解軟體工程思想與高階語言的語法、語義與語用。

4、創新能力要求:構造乙個詞法分析程式,構造乙個表示式翻譯及計值程式。

四、教學內容與學時分配

第一章編譯程式概論 (2學時)

[教學目的]通過本章的學習,了解編譯程式的一此些基本概念。

[教學難點與重點]

重點:編譯程式的概念及編譯過程。

難點:編譯程式的邏輯結構。

[教學內容綱目]

1.編譯程式概念,基本任務。

2.編譯過程的階段劃分及各階段主要任務。

3.編譯程式的組成結構。

4.編譯程式的分遍。

第二章形式語言概論 (4學時)

[教學目的]通過本章的學習,掌握文法及相關的基本概念,充分理解產生式、句型、

短型、控制代碼等概念和文法的分析方法。

[教學難點與重點]

重點:文法及語言的形式定義、推導、歸納、語法樹的概念。

難點:文法及語言的形式定義。

[教學內容綱目]

1、文法的直觀概念

2、文法的型別

3、句型的分析

第三章有窮自動機 (6學時)

[教學目的]通過本章的學習,掌握自動機及相關的基本概念,充分理解確定型有窮自動機、非確定型有窮自機與正規文法之間的等價性。

[教學難點與重點]

重點:自動機概念及非確定有窮自動機到確定有窮自動機轉換演算法(子集法)。

難點:e-closure構造演算法和thompson演算法

[教學內容綱目]

1、確定有窮自動機

2、非確定有窮自動機

3、正規表示式其自動機之間的轉化

第四章詞法分析 (4學時)

[教學目的]掌握詞法分析程式的設計原理及單詞的描述和識別機制。

[教學難點與重點]

重點:詞法分析技術及自動機理論。

難點:自動機理論。

[教學內容綱目]

1、單詞的描述工具

2、有窮自動機

3、正規式,正規文法,有窮自動機的關係

第五章自頂向下語法分析方法 (4學時)

[教學目的] 掌握自頂向下語法分析思想及幾種分析方法

[教學難點與重點]

重點:自頂向下語法分析基本思想,遞迴子程式法和**分析法

難點:ll(1)文法的判定,**分析表構造。

[教學內容綱目]

1、確定自頂向下分析思想

2、ll(1)文法的判別

3、某些非ll(1)文法到ll(1)文法的等價變換

4、不確定自頂向下分析思想

5、確定分析的方法。

第六章自底向上優先分析法 (4學時)

[教學目的]掌握自底向上優先分析思想及幾種分析方法。

[教學難點與重點]

重點:自底向上語法分析基本思想,簡單優先分析法和算符優先分析法

難點:優先關係的確定

[教學內容綱目]

1、引言: 自底向上做優先分析法概述及簡單優先分析法的介紹

2、算符優先分析法

第七章 lr分析法 (4學時)

[教學目的]掌握lr(k)分析的基本的思想和當k≤1時lr分析器的基本構造原理

和方法。

[教學難點與重點]

重點:lr語法分析基本思想,lr(0)分析法,slr(1)分析法,lr(1)分析法,lalr(1)分析法

難點:lr(0),lr(1)專案規範集族的構造,lr分析表的構造。

[教學內容綱目]

1、lr分析概述

2、lr(o)分析

3、slr(1)分析

4、lr(1),lalr(1)分析器工作過程

第八章語法制導翻譯和中間**生成 (4學時)

[教學目的]掌握常見語言結構的翻譯方法和中間**生成方法。

[教學難點與重點]

重點:語法制導翻譯基本思想,常見的中間**,常見程式語句的四元式的翻譯

難點:屬性文法,帶注釋的語法樹的構造,控制語句的四元式的翻譯

[教學內容綱目]

1、語法制導概論

2、中間**與簡單賦值語句的翻譯

3、布林表示式的翻譯

4、控制結構的翻譯

5、說明語句,陣列和結構翻譯

第九章目標程式執行時的儲存組織 (2學時)

[教學目的]了解目標程式執行儲存組織和環境的建立。

[教學難點與重點]

重點:分配策略基本思想,活動記錄、執行時棧的組織

難點:靜態分配策略的基本思想

[教學內容綱目]

1、資料空間的使用和管理方法。

2、儲存分配等實現

3、引數傳遞,過程呼叫和返回。

第十章符號表 (2學時)

[教學目的]了解符號表的作用及組織和管理方式

[教學難點與重點]

重點:符號表的作用與內容

難點:符號表的組織

[教學內容綱目]

1、資料空間的屬性

2、符號表及其組織和管理方式。

第十一章**優化 (2學時)

[教學目的]掌握**優先化的作用及方法

[教學難點與重點]

重點:常用優化技術,區域性優化過程,迴圈優化過程。

難點:dag圖的構造,程式流圖的構造及迴圈的查詢。

[教學內容綱目]

1、優化技術簡介

2、區域性優化

3、控制流分析和迴圈優化

4、資料流的分析與全域性優化(選修)

第十二章**生成 (2學時)

[教學目的]通過乙個簡單的**生成器模型了解**生成方法,**生成器的設計。

[教學難點與重點]

重點:基於m計算機的**生成演算法。

難點:暫存器分配策略。

[教學內容綱目]

1、暫存器分配,臨時變數分配

2、乙個簡單的**生成器的實現

3、**生器的自動生成

五、教學方法及手段

採用現代化教學裝置,注重推理過程的演示,注重啟發式教學,注重任務驅動式的課堂教學方法,課堂教學時採用課堂提問式,課後思考作業的布置的方式來進行。

六、實驗或上機內容

無七、先修課程、後續課程

先修課程:高階語言程式設計、組合語言程式設計、離散數學、資料結構、作業系統

後續課程:本科階段沒有必須以編譯原理為基礎的後續課程

八、考核方式

平時課堂(30%)+閉卷考試(70%)

九、教材及主要參考資料

[1] 何炎祥.編譯原理(第一版). 機械工業出版社,2010.1

[2] 陳火旺.《程式語言編譯原理》(第三版).國防工業出版社,2000.1。

[3] 杜淑敏.《編譯程式設計原理》.北京大學出版社,1990.11。

執筆人:劉陽2023年11月6日

審核人:文志強2023年11月6日

批准人:朱豔輝2023年11月6日

《編譯原理》課程考試大綱

課程編號:08120060

課程名稱:編譯原理/ complier principle

課程總學時/學分:40/2.5 (其中理論40學時,實驗0學時)

適用專業:電腦科學與技術專業、軟體工程專業本科

一、考試物件

修完該課程所規定內容的計算機專業本科學生。

二、考試目的

《編譯原理》課程考試旨在考察學生對編譯技術中涉及的基本概念、基本理論與基本方法的掌握程度及利用基本方法解決問題的能力。

三、命題的指導思想和原則

全面考查學生對本課程的基本原理、基本概念和主要知識點學習、理解和掌握的情況。命題的原則是:題型盡可能多樣化,題目數量多、份量小,範圍廣,最基本的知識一般要佔60%左右,稍微靈活一點的題目要佔20%左右,較難的題目要佔20%左右。

其中絕大多數是中小題目,即使大題目也不應佔分太多,應適當壓縮大題目在總的考分中所佔的比例。客觀性的題目應佔比較重的份量。

四、考核知識點和考核要求

第一章引論

1. 了解課程的基本內容,課程在專業中的地位與作用,語言發展、基本術語、編譯系統的結構。

2. 掌握編譯的基本概念與編譯系統的總體結構、組成部分及其關係。

3、熟練掌握編譯系統的結構以及構造編譯程式的基本方法。

第二章形式語言概論

1. 了解文法、正規語言、上下文無關文法、文法的二義性、語法分析樹的概念。

2. 掌握正規語言、上下文無關文法的文法描述,會用語法分析樹的形式來表達句子的推導過程。

3、熟練掌握文法描述與語法分析樹的構建方法。

第三章有窮自動機

1. 了解確定的與不確定的有窮狀態自動機的定義。

2. 掌握構造有窮狀態自動機的方法。

3、熟練掌握非確定有窮狀態自動機至確定有窮狀態自動機的轉化方法。

第四章詞法分析

1. 了解詞法分析器的功能、輸入輸出、文法描述、狀態圖,詞法分析器的實現。

2. 掌握如何用正則文法、正規表示式、有窮狀態自動機描述單詞。

電路原理教學大綱

課程編號 課程名稱 電路原理 課程型別 專業基礎課 總學時 64 理論學時 48 實驗學時 16 學分 4 適用專業 電腦科學與技術 網路工程 物聯網工程 軟體工程 先修課程 高等數學 計算機導論 一 課程性質 目的和任務 電路原理是電腦科學與技術 網路工程 物聯網工程 軟體工程各專業的主要專業基礎...

《城市規劃原理》教學大綱

一 使用說明 一 課程性質 城市規劃原理 課程是城市規劃相關專業必修的一門重要的專業課程,也是整個城市規劃過程的重要組成部分。本課程以城市總體規劃的基本原理為重點,把規劃原則和布局方法作為基礎,並以城市各組成要素的規劃布局作為承上啟下的重要環節。它作為專業必修課和專業理論課,內容幾乎涵蓋了整個專業所...

廣告學原理教學大綱

教學大綱 適用於財經類專業 二 一四年六月修訂 甘肅省財貿學校 二 一四年六月 廣告學原理 教學大綱 一 課程性質與任務 廣告學原理 是市場營銷專業學生學習商務活動的入門課程。學生通過本課程的學習,能掌握大綱所列出的各項現代廣告學基本理論 熟悉現代廣告活動的各項策略以及廣告策劃 創意 設計等基本技巧...