-
>
全國計算機等級考試最新真考題庫模擬考場及詳解·二級MSOffice高級應用
-
>
決戰行測5000題(言語理解與表達)
-
>
軟件性能測試.分析與調優實踐之路
-
>
第一行代碼Android
-
>
JAVA持續交付
-
>
EXCEL最強教科書(完全版)(全彩印刷)
-
>
深度學習
編譯程序設計藝術理論與實踐 版權信息
- ISBN:9787111288107
- 條形碼:9787111288107 ; 978-7-111-28810-7
- 裝幀:暫無
- 冊數:暫無
- 重量:暫無
- 所屬分類:>>
編譯程序設計藝術理論與實踐 本書特色
●堅定不移地扎根于文法,一開始就介紹文法和語言識別器之間的理論關系,然后貫穿全書將文法技術應用到編譯程序設計的每一方面。
●統一將實用的屬性文法作為編譯程序語義的載體,堅持這一立場自然會產生一個完全由屬性文法定義的、可編譯其自身的“編譯程序一編譯程序”。
●具有非常實用豹特征,編譯程序的“設計”必須以屬性文法定義,而編譯程序的“構造”則需要可執行的代碼,并且每一個重要的理論原則均需通過一種真實程序設計語言的大量代碼清單加以闡明,不斷展示文法與機器代碼之間極其自然的關系。
●選擇modula-2作為演示代碼的程序設計語言.旨在概念抽象與具體效率之間取得平衡。
編譯程序設計藝術理論與實踐 內容簡介
本書詳細介紹了編譯程序設計中的詞法分析(掃描程序)、語法分析(分析程序)、語義分析(約
束程序)、中間代碼優化以及代碼生成等內容。作為頗受好評的編譯原理優秀入門教材,本書的*大特
色是在全書貫穿了一種基于文法的指導思路:在語法分析階段,該書遵循了一般教材采用的上下文無關
文法;在語義分析階段,采用以上下文無關文法為基礎的屬性文法;而在代碼優化和代碼生成階段,則
采用了變換屬性文法。書中*后還給出變換屬性文法的一種自編譯實現。此外,本書還探討了面向不同
計算機體系結構的代碼生成技術以及非過程式語言的編譯問題。
本書適合作為高等院校計算機科學與技術、軟件工程以及相關專業編譯原理課程的教學參考書,同
時也可供計算機語言及其處理技術愛好者參考。
編譯程序設計藝術理論與實踐 目錄
譯者序
前言
第1章 編譯程序理論概述
1.1 簡介
1.2 語言與翻譯程序
1.3 文法的作用
1.4 若干例子
1.5 編譯程序的結構
1.5.1 詞法分析
1.5.2 字符串表
1.5.3 語法分析
1.5.4 約束
1.5.5 符號表
1.5.6 代碼生成
1.5.7 優化
符號
縮略詞
關鍵術語
練習
復習小測驗
編譯程序實驗項目
進一步閱讀
第2章 文法:喬姆斯基層次
2.1 簡介
2.2 文法
2.2.1 字母表與串
2.2.2 非終結符與產生式
2.2.3 若干文法例子
2.3 喬姆斯基層次
2.4 文法及其機器
2.4.1 圖靈機
2.4.2 線性有界自動機
2.4.3 下推自動機
2.4.4 刪除空產生式
2.4.5 比較上下文無關文法和上下文敏感文法
2.4.6 有窮狀態自動機
2.5 空串與空語言
2.6 規范推導
2.7 二義性
2.8 文法思維的藝術
2.8.1 有窮狀態自動機的局限性
2.8.2 上下文無關文法的計數
2.8.3 對上下文敏感
小結
符號
縮略詞
關鍵術語
練習
復習小測驗
編譯程序實驗項目
進一步閱讀
第3章 掃描程序和正則語言
3.1 詞法分析簡介
3.2 正則表達式
3.2.1 正則表達式代數
3.2.2 正則表達式的形式化特性
3.3 文法與正則表達式的轉換
3.4 有窮狀態自動機
3.5 不確定的有窮狀態自動機
3.6 將文法轉換為自動機
3.7 自動機的轉換
3.7.1 刪除空環路
3.7.2 刪除空變遷
3.7.3 自動機的確定化
3.7.4 自動機的約簡
……
第4章 分析程序和上下文無關語言
第5章 語義分析與屬性文法
第6章 語法制導代碼生成
第7章 自底向上分析程序的自動化設計
第8章 變換屬性文法
第9章 代碼生成與優化
第10章 非過程式語言
附錄a itty bitty modula語法圖
附錄b tag編譯程序的tag
附錄c itty bitty線機器的指令集
附錄d 四種計算機的代碼生成表
編譯程序設計藝術理論與實踐 節選
《編譯程序設計藝術理論與實踐》詳細介紹了編譯程序設計中的詞法分析(掃描程序)、語法分析(分析程序)、語義分析(約束程序)、中間代碼優化以及代碼生成等內容。作為頗受好評的編譯原理優秀入門教材,《編譯程序設計藝術理論與實踐》的*大特色是在全書貫穿了一種基于文法的指導思路:在語法分析階段,該書遵循了一般教材采用的上下文無關文法;在語義分析階段,采用以上下文無關文法為基礎的屬性文法;而在代碼優化和代碼生成階段,則采用了變換屬性文法。書中*后還給出變換屬性文法的一種自編譯實現。此外,《編譯程序設計藝術理論與實踐》還探討了面向不同計算機體系結構的代碼生成技術以及非過程式語言的編譯問題。《編譯程序設計藝術理論與實踐》適合作為高等院校計算機科學與技術、軟件工程以及相關專業編譯原理課程的教學參考書,同時也可供計算機語言及其處理技術愛好者參考。
編譯程序設計藝術理論與實踐 相關資料
插圖:編譯程序是一個扮演著翻譯人員角色的計算機程序,它讀入某一計算機語言的語句,如果這些語句在該語言中是有意義的,則將它們翻譯為含義相同的另一計算機語言的語句。有一些規則定義了每一種語言中什么是有意義的,編譯程序運用這些規則確定其輸入是否有意義,并保證其輸出是有意義的。使用計算機語言編寫的一系列語句組成一個程序;編譯程序將一種計算機語言(稱為源語言)的程序翻譯為另一種計算機語言(稱為目標語言)的程序(即語句序列)。實際上存在多種計算機語言以及計算機語言的翻譯程序。最簡單的翻譯程序是讀入一種用簡單計算機語言書寫的單詞,然后將這些單詞直接翻譯為計算機指令代碼中的數字。這種翻譯程序稱為匯編程序,其源語言稱為匯編語言。這一命名緣于大多數機器指令由幾個部分組成,匯編語言采用不同的單詞或數字表示每一部分,匯編程序則將這些部分組裝成一個數值代碼。匯編程序充其量不過是一個表查找例程,在表中查找源語言中每一單詞對應的數字表示,并將查找結果輸出,作為目標語言程序的組成部分。匯編語言通常使得程序員可準確、直接地訪問計算機硬件的每~功能;然而與大多數其他計算機語言相比,使用匯編語言編寫正確的程序是相當困難的。“編譯程序”這一術語一般留給更復雜的語言使用,其中源語言單詞和目標語言之間不存在簡潔而直接的對應關系。大多數編譯程序的目標語言通常也是機器語言,這與匯編程序的目標語言相同;計算機語言翻譯程序的目的固然是簡化創建機器語言程序的過程,但許多早期的編譯程序、甚至一些現代的編譯程序都先編譯為匯編語言,然后借助于匯編程序完成匯編語言到機器語言的翻譯。然而,編譯程序的源程序通常是所謂的高級語言(簡稱HLL),高級語言的特點是更接近于問題求解的表示法,而不是機器語言。例如,對于商業應用而言,COBOL(COmmon Business Oriented Language)語言采用會計人員和中層管理人員易于理解的術語;而科學計算問題往往表述為公式,FORTRAN(FORmula TRANslator)語言被認為更適合表達這些公式。現在一些程序員更喜歡一種語言既有高級語言中更抽象的結構,又帶有匯編程序支持的低層控制,為此他們使用C語言(得名于它作為早期B語言的下一代語言)。程序設計方法學的最新進展提倡模塊化軟件設計,Modula-2語言非常強調這一特性。解釋程序在某些方面類似于翻譯程序,它也讀入一個
- >
月亮虎
- >
莉莉和章魚
- >
伯納黛特,你要去哪(2021新版)
- >
中國人在烏蘇里邊疆區:歷史與人類學概述
- >
我從未如此眷戀人間
- >
經典常談
- >
李白與唐代文化
- >
姑媽的寶刀