編譯原理實(shí)驗(yàn)教程

出版時(shí)間:2009-5  出版社:高等教育出版社  作者:張昱,陳意云 著  頁數(shù):347  
Tag標(biāo)簽:無  

前言

  本書是“編譯原理”相關(guān)課程的實(shí)驗(yàn)教材,既可作為與“編譯原理”理論課程教學(xué)同步展開的配套實(shí)驗(yàn)課程教材,也可作為一門獨(dú)立的綜合性實(shí)踐課程的教材?!  熬幾g原理”課程介紹編譯器構(gòu)造的一般原理、基本設(shè)計(jì)方法和主要的實(shí)現(xiàn)技術(shù)。在實(shí)際的教學(xué)和學(xué)習(xí)中,大家普遍認(rèn)為它是一門有用、抽象而難學(xué)的課程。其主要原因之一是課程實(shí)踐環(huán)節(jié)較為薄弱:缺乏系統(tǒng)的編譯原理實(shí)驗(yàn)教材,導(dǎo)致不能組織和指導(dǎo)學(xué)生進(jìn)行有廣度和深度的課程實(shí)踐?! ≡谏钊胝{(diào)研國外典型編譯原理實(shí)驗(yàn)內(nèi)容并對其進(jìn)行實(shí)踐的基礎(chǔ)之上,結(jié)合實(shí)際的教學(xué)和實(shí)踐經(jīng)驗(yàn),作者設(shè)計(jì)出一套以“源語言一抽象語法樹一低級中間表示一匯編代碼的內(nèi)部表示一x86/MIPs匯編”為主線搭建的、基于組件的編譯原理實(shí)驗(yàn)體系,其中包括各種循序漸進(jìn)、規(guī)模適度、“綜觀全局、實(shí)現(xiàn)局部”、強(qiáng)調(diào)工程質(zhì)量規(guī)范的課程設(shè)計(jì),并提供配套的實(shí)驗(yàn)支持庫和課程設(shè)計(jì)開發(fā)包。全書的課程設(shè)計(jì)分為以下4個(gè)層次,供不同深度的編譯原理教學(xué)選擇合適的實(shí)驗(yàn)內(nèi)容。

內(nèi)容概要

  是“編譯原理”相關(guān)課程的實(shí)驗(yàn)教材,以“源語言-抽象語法樹-低級中間表示-匯編代碼的內(nèi)部表示-x86/MIPS匯編”為主線搭建編譯原理課程的實(shí)驗(yàn)體系,設(shè)計(jì)安排了各種循序漸進(jìn)、規(guī)模適度、“綜觀全局、實(shí)現(xiàn)局部”、強(qiáng)調(diào)工程質(zhì)量規(guī)范的課程設(shè)計(jì)。第2章通過實(shí)現(xiàn)單函數(shù)的無類型結(jié)構(gòu)化語言SimpleMiniJOOL的簡單解釋器引導(dǎo)讀者開始編譯實(shí)驗(yàn)的實(shí)踐;第3章到第8章圍繞多函數(shù)的強(qiáng)類型結(jié)構(gòu)化語言SkiOOMiniJOOL展開有關(guān)詞法分析、語法分析、語義分析、低級中間代碼生成、匯編代碼生成、寄存器分配等多種編譯原理骨干實(shí)驗(yàn);第9章圍繞強(qiáng)類型的面向?qū)ο笳Z言MiniJOOL展開有關(guān)面向?qū)ο缶幾g的高級實(shí)驗(yàn)。《編譯原理實(shí)驗(yàn)教程》的課程實(shí)驗(yàn)涉及多種編程環(huán)境和工具,其工程開發(fā)接近實(shí)際?!毒幾g原理實(shí)驗(yàn)教程》配套光盤中提供了實(shí)驗(yàn)支持庫和課程設(shè)計(jì)開發(fā)包?!毒幾g原理實(shí)驗(yàn)教程》可作為高等院校計(jì)算機(jī)科學(xué)及相關(guān)專業(yè)的編譯原理實(shí)驗(yàn)教材,既可用來開展與理論課程教學(xué)同步的配套實(shí)驗(yàn),又可用來安排獨(dú)立的綜合性實(shí)踐課程?!毒幾g原理實(shí)驗(yàn)教程》還可作為軟件工程碩士研究生工程實(shí)踐案例教材,以及供計(jì)算機(jī)軟件工程技術(shù)人員參考使用。

書籍目錄

第1章 概述1.1 本書的研制背景與目標(biāo)1.2 本書課程實(shí)驗(yàn)的構(gòu)成1.2.1 要實(shí)現(xiàn)的源語言1.2.2 目標(biāo)機(jī)的選擇1.2.3 中間表示1.2.4 匯編代碼的內(nèi)部表示1.2.5 編譯器組件及本書的課程實(shí)驗(yàn)概覽1.3 開發(fā)環(huán)境與工具1.3.1 開發(fā)環(huán)境與工具簡介1.3.2 環(huán)境變量設(shè)置1.3.3 Eclipse的安裝和使用1.3.4 XML與Ant簡介1.4 實(shí)驗(yàn)軟件包1.5 課程實(shí)驗(yàn)開展建議1.5.1 測試環(huán)境1.5.2 課程設(shè)計(jì)提交要求1.5.3 過程管理與控制第2章 一個(gè)簡單的程序解釋器2.1 SimpleMiniJOOL語言2.2 課程設(shè)計(jì)1:一個(gè)簡單的程序解釋器2.3 實(shí)驗(yàn)運(yùn)行平臺(tái)2.3.1 實(shí)驗(yàn)平臺(tái)接口2.3.2 實(shí)驗(yàn)運(yùn)行平臺(tái)的工作機(jī)制2.3.3 實(shí)驗(yàn)運(yùn)行平臺(tái)的使用2.4 EclipseAST2.4.1 AST節(jié)點(diǎn)類2.4.2 AST類2.4.3 ASTVisitor類2.4.4 SimpleMiniJOOL語言涉及的AST節(jié)點(diǎn)類2.4.5 EclipseAST使用示例2.5 AST的圖形化顯示包——ASTView2.5.1 ASTView包中的類2.5.2 AST節(jié)點(diǎn)的輸出屬性及其定制2.5.3 在ASTViewer中顯示節(jié)點(diǎn)對應(yīng)的低級中間表示2.6 設(shè)計(jì)模式2.6.1 工廠方法模式2.6.2 訪問者模式2.7 課程設(shè)計(jì)l開發(fā)和測試指南2.7.1 主要開發(fā)任務(wù)2.7.2 實(shí)現(xiàn)InterpVisitor類的一些指導(dǎo)2.7.3 在Eclipse下開發(fā)2.7.4 在控制臺(tái)下編譯和運(yùn)行2.7.5 測試要求第3章 詞法分析3.1 本章課程設(shè)計(jì)概述3.2 MiniJOOL語言的詞法3.3 課程設(shè)計(jì)2-1:用JFlex為MiniJOOL語言生成一個(gè)詞法分析器3.3.1 示例3.3.2 MiniJOOL語言的詞法分析器構(gòu)造3.4 課程設(shè)計(jì)2-2:手工編寫一個(gè)簡單的詞法分析器3.4.1 Block語言的詞法3.4.2 示例3.4.3 課程設(shè)計(jì)任務(wù)3.4.4 編譯和運(yùn)行指南3.5 課程設(shè)計(jì)2-3:編寫一個(gè)NFA生成器3.5.1 MLex詞法規(guī)范描述語言3.5.2 課程設(shè)計(jì)指導(dǎo)3.5.3 課程設(shè)計(jì)任務(wù)3.6 課程設(shè)計(jì)2-4:編寫一個(gè)詞法分析器的生成器3.6.1 LexerCodeGenerator的輸入和輸出示例3.6.2 課程設(shè)計(jì)指導(dǎo)3.7 JFlex詞法規(guī)范3.7.1 用戶代碼3.7.2 選項(xiàng)和聲明3.7.3 詞法規(guī)則3.7.4 如何匹配輸入流第4章 語法分析4.1 SkipOOMiniJOOL語言的語法4.1.1 類型、常量和變量4.1.2 語句4.1.3 表達(dá)式4.1.4 SkipOOMiniJOOL程序的總體結(jié)構(gòu)4.1.5 一個(gè)SkipOOMiniJOOL程序示例4.2 本章課程設(shè)計(jì)概述4.3 課程設(shè)計(jì)3-1:手工編寫一個(gè)語法分析器4.3.1 SimpleBlock語言4.3.2 如何引用課程設(shè)計(jì)2-2的詞法分析器類4.3.3 課程設(shè)計(jì)指導(dǎo)4.3.4 課程設(shè)計(jì)任務(wù)4.4 課程設(shè)計(jì)3-2:用CuP生成一個(gè)能分析合法程序的語法分析器4.4.1 示例l:SimpleBlock語言的語法分析器4.4.2 SkipOOMiniJOOL語言涉及的AST節(jié)點(diǎn)類4.4.3 示例2:Block語言的語法分析器4.4.4 課程設(shè)計(jì)任務(wù)4.5 課程設(shè)計(jì)3-3:用JavaCC生成一個(gè)語法分析器4.5.1 示例:Block語言及其子語言的分析器4.5.2 課程設(shè)計(jì)任務(wù)4.6 課程設(shè)計(jì)3-4:用CUP生成一個(gè)有錯(cuò)誤處理能力的語法分析器4.6.1 錯(cuò)誤類型與錯(cuò)誤信息管理4.6.2 錯(cuò)誤恢復(fù)與處理機(jī)制4.6.3 示例4.6.4 課程設(shè)計(jì)任務(wù)4.7 課程設(shè)計(jì)3-5:用JavaCC生成一個(gè)有錯(cuò)誤處理能力的語法分析器4.7.1.JavaCC的錯(cuò)誤恢復(fù)機(jī)制4.7.2 錯(cuò)誤恢復(fù)與處理示例4.7.3 課程設(shè)計(jì)任務(wù)4.8 CUP與YACC4.8.1 YACC簡介4.8.2 CuP與YACC的文法規(guī)范描述文件的結(jié)構(gòu)4.8.3 文法符號4.8.4 一個(gè)簡單的例子4.8.5 錯(cuò)誤恢復(fù)……第5章 語義分析第6章 中間表示的轉(zhuǎn)換第7章 匯編語言及匯編代碼的內(nèi)部第8章 匯編代碼生成第9章 面向?qū)ο笳Z言的編譯第10章 綜合性課程設(shè)計(jì)

章節(jié)摘錄

  第1章 概述  編譯原理和技術(shù)是構(gòu)造程序設(shè)計(jì)語言編譯器的重要理論和技術(shù)基礎(chǔ)。隨著計(jì)算機(jī)技術(shù)和社會(huì)應(yīng)用需求的發(fā)展,編譯原理和技術(shù)也越來越多地應(yīng)用在諸如編輯系統(tǒng)、數(shù)據(jù)處理、軟件安全、程序理解和逆向工程等多個(gè)領(lǐng)域,并影響著高級語言的實(shí)現(xiàn)(如垃圾收集技術(shù)、代碼移植與移動(dòng)等)、計(jì)算機(jī)體系結(jié)構(gòu)的優(yōu)化(指令集并行、線程級并行等)、新計(jì)算機(jī)體系結(jié)構(gòu)(如精簡指令集計(jì)算機(jī)、復(fù)雜指令集計(jì)算機(jī)、數(shù)據(jù)流機(jī)、向量機(jī)、超長指令字、單指令多數(shù)據(jù)陣列處理器、帶共享內(nèi)存的多處理器和帶分布內(nèi)存的多處理器)的設(shè)計(jì)、程序翻譯(如二進(jìn)制翻譯、數(shù)據(jù)庫查詢解釋器)以及提高軟件開發(fā)效率的工具(如類型檢查、邊界檢查、內(nèi)存管理)等。因此,“編譯原理”這門課程對計(jì)算機(jī)及相關(guān)專業(yè)的本科生來說也顯得越來越重要。  在“編譯原理”課程的教學(xué)方面,單純的理論教學(xué)是不夠的,需要通過實(shí)驗(yàn)加強(qiáng)學(xué)生對編譯原理和技術(shù)知識(shí)的理解、領(lǐng)會(huì)與掌握?! ∽鳛榫幾g原理和技術(shù)的實(shí)驗(yàn)教材,既可以作為與“編譯原理”理論課程教學(xué)同步展開的配套實(shí)驗(yàn)課程教材,也可以作為一門獨(dú)立的綜合性實(shí)踐課程的教材。在本章各節(jié)中,將依次介紹本書的研制背景與目標(biāo)、所設(shè)計(jì)的課程實(shí)驗(yàn)的構(gòu)成、實(shí)驗(yàn)環(huán)境與工具、配套實(shí)驗(yàn)軟件包的組成,最后結(jié)合作者的實(shí)踐經(jīng)驗(yàn)給出一些課程實(shí)驗(yàn)開展的建議?! ?.1 本書的研制背景與目標(biāo)  自20世紀(jì)80年代中期至2006年,中國科學(xué)技術(shù)大學(xué)計(jì)算機(jī)專業(yè)本科生的編譯原理實(shí)驗(yàn)一直以閱讀和擴(kuò)展PL/O語言的編譯器為基礎(chǔ)。PL/O語言過于簡單且不支持帶參數(shù)的函數(shù)等,限制了以這種語言為基礎(chǔ)的編譯原理課程實(shí)踐的深度和意義。這種實(shí)驗(yàn)設(shè)置已經(jīng)不能適應(yīng)教學(xué)的需要和對不斷發(fā)展的現(xiàn)代編譯技術(shù)的學(xué)習(xí)理解。

圖書封面

圖書標(biāo)簽Tags

評論、評分、閱讀與下載


    編譯原理實(shí)驗(yàn)教程 PDF格式下載


用戶評論 (總計(jì)0條)

 
 

 

250萬本中文圖書簡介、評論、評分,PDF格式免費(fèi)下載。 第一圖書網(wǎng) 手機(jī)版

京ICP備13047387號-7