編譯原理第一章問答題
㈠ 軟考中級軟體設計師要學會哪種程序設計語言(我只學過C,C++,匯編)
朋友,我考過,別聽他們胡說
軟體設計師考試分上午和下午
上午的考試是選擇題目,范圍很廣
C和C++都有,但題目難度不大,匯編語言不考,建議多看看軟體工程的理論知識,考得很多,特別在下午。還有操作系統,編譯原理等跟計算機專業相關的理論
下面給出大綱:
軟體設計師考試大綱
一、考試說明
1.考試要求:
(1) 掌握數據表示、算術和邏輯運算;
(2) 掌握相關的應用數學、離散數學的基礎知識;
(3) 掌握計算機體系結構以及各主要部件的性能和基本工作原理;
(4) 掌握操作系統、程序設計語言的基礎知識,了解編譯程序的基本知識;
(5) 熟練掌握常用數據結構和常用演算法;
(6) 熟悉資料庫、網路和多媒體的基礎知識;
(7) 掌握C程序設計語言,以及C++、java、Visual、Basic、Visual C++中的一種程序設計語言;
(8) 熟悉軟體工程、軟體過程改進和軟體開發項目管理的基礎知識;
(9) 熟悉掌握軟體設計的方法和技術;
(10) 掌握常用信息技術標准、安全性,以及有關法律、法規的基本知識;
(11) 了解信息化、計算機應用的基礎知識;
(12) 正確閱讀和理解計算機領域的英文資料。
2.通過本考試的合格人員能根據軟體開發項目管理和軟體工程的要求,按照系統總體設計規格說明書進行軟體設計,編寫程序設計規格說明書等相應的文檔,組織和指導程序員編寫、調試程序,並對軟體進行優化和集成測試,開發出符合系統總體設計要求的高質量軟體;具有工程的實際工作能力和業務水平。
3.本考試設置的科目包括:
(1) 計算機與軟體工程知識,考試時間為150分鍾,筆試;
(2) 軟體設計,考試時間為150分鍾,筆試。
二、考試范圍
考試科目1:計算機與軟體工程知識
1. 計算機科學基礎
1.1 數制及其轉換
• 二進制、十進制和十六進制等常用制數制及其相互轉換
1.2 數據的表示
• 數的表示(原碼、反碼、補碼、移碼表示,整數和實數的機內表示,精度和溢出)
• 非數值表示(字元和漢字表示、聲音表示、圖像表示)
• 校驗方法和校驗碼(奇偶校驗碼、海明校驗碼、循環冗餘校驗碼)
1.3 算術運算和邏輯運算
• 計算機中的二進制數運算方法
• 邏輯代數的基本運算和邏輯表達式的化簡
1.4 數學基礎知識
• 命題邏輯、謂詞邏輯、形式邏輯的基礎知識
• 常用數值計算(誤差、矩陣和行列式、近似求解方程、插值、數值積分)
• 排列組合、概率論應用、應用統計(數據的統計分析)
• 運算基本方法(預測與決策、線性規劃、網路圖、模擬)
1.5 常用數據結構
• 數組(靜態數組、動態數組)、線性表、鏈表(單向鏈表、雙向鏈表、循環鏈表)、隊列、棧、樹(二叉樹、查找樹、平衡樹、線索樹、線索樹、堆)、圖等的定義、存儲和操作
• Hash(存儲地址計算,沖突處理)
1.6 常用演算法
• 排序演算法、查找演算法、數值計算方法、字元串處理方法、數據壓縮演算法、遞歸演算法、圖的相關演算法
• 演算法與數據結構的關系、演算法效率、演算法設計、演算法描述(流程圖、偽代碼、決策表)、演算法的復雜性
2. 計算機系統知識
2.1 硬體知識
2.1.1 計算機系統的組成、體系結構分類及特性
• CPU和存儲器的組成、性能和基本工作原理
• 常用I/O設備、通信設備的性能,以及基本工作原理
• I/O介面的功能、類型和特性
• I/O控制方式(中斷系統、DMA、I/O處理機方式)
• CISC/RISC,流水線操作,多處理機,並行處理
2.1.2 存儲系統
• 主存-Cache存儲系統的工作原理
• 虛擬存儲器基本工作原理,多級存儲體系的性能價格
• RAID類型和特性
2.1.3 安全性、可靠性與系統性能評測基礎知識
• 診斷與容錯
• 系統可靠性分析評價
• 計算機系統性能評測方式
2.2 軟體知識
2.2.1 操作系統知識
• 操作系統的內核(中斷控制)、進程、線程概念
• 處理機管理(狀態轉換、共享與互斥、分時輪轉、搶占、死鎖)
• 存儲管理(主存保護、動態連接分配、分段、分頁、虛存)
• 設備管理(I/O控制、假離線)
• 文件管理(文件目錄、文件組織、存取方法、存取控制、恢復處理)
• 作業管理(作業調度、作業控制語言(JCL)、多道程序設計)
• 漢字處理,多媒體處理,人機界面
• 網路操作系統和嵌入式操作系統基礎知識
• 操作系統的配置
2.2.2 程序設計語言和語言處理程序的知識
• 匯編、編譯、解釋系統的基礎知識和基本工作原理
• 程序設計語言的基本成分:數據、運算、控制和傳輸,過程(函數)調用
• 各類程序設計語言主要特點和適用情況
2.3 計算機網路知識
• 網路體系結構(網路拓撲、OSI/RM、基本的網路協議)
• 傳輸介質、傳輸技術、傳輸方法、傳輸控制
• 常用網路設備和各類通信設備
• Client/Server結構、Browser/Server結構
• LAN拓撲,存取控制,LAN的組網,LAN間連接,LAN-WAN連接
• 網際網路基礎知識以及應用
• 網路軟體
• 網路管理
• 網路性能分析
2.4 資料庫知識
• 資料庫管理系統的功能和特徵
• 資料庫模型(概念模式、外模式、內模式)
• 數據模型,ER圖,第一範式、第二範式、第三範式
• 數據操作(集合運算和關系運算)
• 資料庫語言(SQL)
• 資料庫的控制功能(並發控制、恢復、安全性、完整性)
• 數據倉庫和分布式資料庫基礎知識
2.5 多媒體知識
• 多媒體系統基礎知識,多媒體設備的性能特性,常用多媒體文件格式
• 簡單圖形的繪制,圖像文件的處理方法
• 音頻和視頻信息的應用
• 多媒體應用開發過程
2.6 系統性能知識
• 性能指標(響應時間、吞吐量、周轉時間)和性能設計
• 性能測試和性能評估
• 可靠性指標及計算、可靠性設計
• 可靠性測試和可靠性評估
2.7 計算機應用基礎知識
•信息管理、數據處理、輔助設計、自動控制、科學計算、人工智慧等基礎知識
• 遠程通信服務基礎知識
• 常用應用系統
3. 系統開發和運行知識
3.1 軟體工程、軟體過程改進和軟體開發項目管理知識
• 軟體工程知識
• 軟體開發生命周期各階段的目標和任務
• 軟體開發項目管理基礎知識(時間管理、成本管理、質量管理、人力資源管理、風險管理等)及其常用管理工具
• 主要的軟體開發方法(生命周期法、原型法、面向對象法、CASE)
• 軟體開發工具與環境知識
• 軟體過程改進知識
• 軟體質量管理知識
• 軟體開發過程評估、軟體能力成熟評估基礎知識
3.2 系統分析基礎知識
• 系統分析的目的和任務
•結構化分析方法(數據流圖(DFD)、數據字典(DD)、實體關系圖(ERD)、描述加工處理的結構化語言)
• 統一建模語言(UML)
• 系統規格說明書
3.3 系統設計知識
• 系統設計的目的和任務
• 結構化設計方法和工具(系統流程圖、HIPO圖、控制流程圖)
• 系統總體結構設計(總體布局、設計原則、模塊結構設計、數據存儲設計、系統配置方案)
• 系統詳細設計(代碼設計、資料庫設計、用戶界面設計、處理過程設計)
• 系統設計說明書
3.4 系統實施知識
• 系統實施的主要任務
• 結構化程序設計、面向對象程序設計、可視化程序設計
• 程序設計風格
• 程序設計語言的選擇
• 系統測試的目的、類型,系統測試方法(黑盒測試、白盒測試、灰盒測試)
• 測試設計和管理(錯誤曲線、錯誤排除、收斂、注入故障、測試用例設計、系統測試報告)
• 系統轉換基礎知識
3.5 系統運行和維護知識
• 系統運行管理基礎知識
• 系統維護基礎知識
• 系統評價基礎知識
3.6 面向對象開發方法
• 面向對象開發概念(類、對象、屬性、封裝性、繼承性、多態性、對象之間的引用)
• 面向對象開發方法的優越性以及有效領域
• 面向對象設計方法(體系結構、類的設計、用戶介面設計)
• 面向對象實現方法(選擇程序設計語言、類的實現、方法的實現、用戶介面的實現、准備測試數據)
• 面向對象程序設計語言(如C++、Java、Visual、Bsasic、Visual C++)的基本機制
• 面向對象資料庫、分布式對象的概念
4. 安全性知識
• 安全性基本概念
• 防治計算機病毒、防範計算機犯罪
• 存取控制、防闖入、安全管理措施
• 加密與解密機制
•風險分析、風險類型、抗風險措施和內部控制
5. 標准化知識
• 標准化意識、標准化的發展、標准制訂過程
• 國際標准、國家標准、行業標准、企業標准基本知識
• 代碼標准、文件格式標准、安全標准、軟體開發規范和文檔標准知識
• 標准化機構
6. 信息化基礎知識
• 信息化意識
• 全球信息化趨勢、國家信息化戰略、企業信息化戰略和策略
• 有關的法律、法規
• 遠程教育、電子商務、電子政務等基礎知識
• 企業信息資源管理基礎知識
7. 計算機專業英語
• 掌握計算機技術的基本詞彙
• 能正確閱讀和理解計算機領域的英文資料
考試科目2:軟體設計
1. 外部設計
1.1 理解系統需求說明
1.2 系統開發的准備
• 選擇開發方法、准備開發環境、制訂開發計劃
1.3 設計系統功能
• 選擇系統結構,設計各子系統的功能和介面,設計安全性策略、需求和實現方法,制訂詳細的工作流和數據流
1.4 設計數據模型
• 設計ER模型、數據模型
1.5 編寫外部設計文檔
• 系統配置圖、各子系統關系圖、系統流程圖、系統功能說明書、輸入輸出規格說明、數據規格說明、用戶手冊框架
• 設計系統測試要求
1.6 設計評審
2. 內部設計
2.1 設計軟體結構
•按構件分解,確定構件功能規格以及構件之間的介面
• 採用中間件和工具
2.2 設計輸入輸出
• 屏幕界面設計、設計輸入輸出檢查方法和檢查信息
2.3 設計物理數據
• 分析數據特性,確定邏輯數據組織方式、存儲介質,設計記錄格式和處理方式
• 將邏輯數據結構換成物理數據結構,計算容量,進行優化
2.4 構件的創建和重用
• 創建、重用構件的概念
• 使用子程序庫或類庫
2.5 編寫內部設計文檔
• 構件劃分圖、構件間的介面、構件處理說明、屏幕設計文檔、報表設計文檔、文件設計文檔、資料庫設計文檔
2.6 設計評審
3.程序設計
3.1 模塊劃分(原則、方法、標准)
3.2 編寫程序設計文檔
• 模塊規格說明書(功能和介面說明、程序處理邏輯的描述、輸入輸出數據格式的描述)
• 測試要求說明書(測試類型和目標、測試用例、測試方法)
3.3 程序設計評審
4.系統實施
4.1 配置計算機系統及其環境
4.2 選擇合適的程序設計語言
4.3 掌握C程序設計語言,以及C++、Java、Visual、Basic、Visual C++中任一種程序設計語言,以便能指導程序員進行編程和測試,並進行必要的優化
4.4 系統測試
• 指導程序員進行模塊測試,並進行驗收
• 准備系統集成測試環境和測試工具
• 准備測試數據
• 寫出測試報告
5.軟體工程
• 軟體生存期模型(瀑布模型、螺旋模型、噴泉模型)和軟體成本模型
• 定義軟體需求(系統化的目標、配置、功能、性能和約束)
• 描述軟體需求的方法(功能層次模型、數據流模型、控制流模型、面向數據的模型、面向對象的模型等)
• 定義軟體需求的方法(結構化分析方法、面向對象分析方法)
• 軟體設計(分析與集成、逐步求精、抽象、信息隱蔽)
• 軟體設計方法(結構化設計方法、Jackson方法、Warnier方法、面向對象設計方法)
• 程序設計(結構化程序設計、面向對象程序設計)
• 軟體測試的原則與方法
• 軟體質量(軟體質量特性、軟體質量控制)
• 軟體過程評估基本方法、軟體能力成熟度評估基本方法
• 軟體開發環境和開發工具(分析工具、設計工具、編程工具、測試工具、維護工具、CASE)
• 軟體工程發展趨勢(面向構件,統一建模語言(UML))
•軟體過程改進模型和方法
㈡ 編譯原理中 左遞歸具體解釋是什麼
定義:
"一個文法是左遞歸的,若我們可以找出其中存在某非終端符號A,最終會推導出來的句型(sentential form)裡麵包含以自己為最左符號(left-symbol)的句型"
即
A -> Aa 或
A -> Ba
B -> A
兩種形式的文法.
㈢ 編譯原理題目
習題一、單項選擇題
1、將編譯程序分成若干個「遍」是為了 。
a.提高程序的執行效率
b.使程序的結構更加清晰
c.利用有限的機器內存並提高機器的執行效率
d.利用有限的機器內存但降低了機器的執行效率
2、構造編譯程序應掌握 。
a.源程序 b.目標語言
c.編譯方法 d.以上三項都是
3、變數應當 。
a.持有左值 b.持有右值
c.既持有左值又持有右值 d.既不持有左值也不持有右值
4、編譯程序絕大多數時間花在 上。
a.出錯處理 b.詞法分析
c.目標代碼生成 d.管理表格
5、 不可能是目標代碼。
a.匯編指令代碼 b.可重定位指令代碼
c.絕對指令代碼 d.中間代碼
6、使用 可以定義一個程序的意義。
a.語義規則 b.詞法規則
c.產生規則 d.詞法規則
7、詞法分析器的輸入是 。
a.單詞符號串 b.源程序
c.語法單位 d.目標程序
8、中間代碼生成時所遵循的是- 。
a.語法規則 b.詞法規則
c.語義規則 d.等價變換規則
9、編譯程序是對 。
a.匯編程序的翻譯 b.高級語言程序的解釋執行
c.機器語言的執行 d.高級語言的翻譯
10、語法分析應遵循 。
a.語義規則 b.語法規則
c.構詞規則 d.等價變換規則
解答
1、將編譯程序分成若干個「遍」是為了使編譯程序的結構更加清晰,故選b。
2、構造編譯程序應掌握源程序、目標語言及編譯方法等三方面的知識,故選d。
3、對編譯而言,變數既持有左值又持有右值,故選c。
4、編譯程序打交道最多的就是各種表格,因此選d。
5、目標代碼包括匯編指令代碼、可重定位指令代碼和絕對指令代碼3種,因此不是目標代碼的只能選d。
6、詞法分析遵循的是構詞規則,語法分析遵循的是語法規則,中間代碼生成遵循的是語義規則,並且語義規則可以定義一個程序的意義。因此選a。
7、b 8、c 9、d 10、c
二、多項選擇題
1、編譯程序各階段的工作都涉及到 。
a.語法分析 b.表格管理 c.出錯處理
d.語義分析 e.詞法分析
2、編譯程序工作時,通常有 階段。
a.詞法分析 b.語法分析 c.中間代碼生成
d.語義檢查 e.目標代碼生成
解答
1.b、c 2. a、b、c、e
三、填空題
1、解釋程序和編譯程序的區別在於 。
2、編譯過程通常可分為5個階段,分別是 、語法分析 、代碼優化和目標代碼生成。 3、編譯程序工作過程中,第一段輸入是 ,最後階段的輸出為 程序。
4、編譯程序是指將 程序翻譯成 程序的程序。 解答
是否生成目標程序 2、詞法分析 中間代碼生成 3、源程序 目標代碼生成 4、源程序 目標語言
一、單項選擇題
1、文法G:S→xSx|y所識別的語言是 。
a. xyx b. (xyx)* c. xnyxn(n≥0) d. x*yx*
2、文法G描述的語言L(G)是指 。
a. L(G)={α|S+ ⇒α , α∈VT*} b. L(G)={α|S*⇒α, α∈VT*}
c. L(G)={α|S*⇒α,α∈(VT∪VN*)} d. L(G)={α|S+ ⇒α, α∈(VT∪VN*)}
3、有限狀態自動機能識別 。
a. 上下文無關文法 b. 上下文有關文法
c.正規文法 d. 短語文法
4、設G為算符優先文法,G的任意終結符對a、b有以下關系成立 。
a. 若f(a)>g(b),則a>b b.若f(a)<g(b),則a<b
c. a~b都不一定成立 d. a~b一定成立
5、如果文法G是無二義的,則它的任何句子α 。
a. 最左推導和最右推導對應的語法樹必定相同
b. 最左推導和最右推導對應的語法樹可能不同
c. 最左推導和最右推導必定相同
d. 可能存在兩個不同的最左推導,但它們對應的語法樹相同
6、由文法的開始符經0步或多步推導產生的文法符號序列是 。
a. 短語 b.句柄 c. 句型 d. 句子
7、文法G:E→E+T|T
T→T*P|P
P→(E)|I
則句型P+T+i的句柄和最左素短語為 。
a.P+T和i b. P和P+T c. i和P+T+i d.P和T
8、設文法為:S→SA|A
A→a|b
則對句子aba,下面 是規范推導。
a. SÞSAÞSAAÞAAAÞaAAÞabAÞaba
b. SÞSAÞSAAÞAAAÞAAaÞAbaÞaba
c. SÞSAÞSAAÞSAaÞSbaÞAbaÞaba
d. SÞSAÞSaÞSAaÞSbaÞAbaÞaba
9、文法G:S→b|∧(T)
T→T,S|S
則FIRSTVT(T) 。
a. {b,∧,(} b. {b,∧,)} c.{b,∧,(,,} d.{b,∧,),,}
10、產生正規語言的文法為 。
a. 0型 b. 1型 c. 2型 d. 3型
11、採用自上而下分析,必須 。
a. 消除左遞歸 b. 消除右遞歸 c. 消除回溯 d. 提取公共左因子
12、在規范歸約中,用 來刻畫可歸約串。
a. 直接短語 b. 句柄 c. 最左素短語 d. 素短語
13、有文法G:E→E*T|T
T→T+i|i
句子1+2*8+6按該文法G歸約,其值為 。
a. 23 B. 42 c. 30 d. 17
14、規范歸約指 。
a. 最左推導的逆過程 b. 最右推導的逆過程
c. 規范推導 d. 最左歸約的逆過程
[解答]
1、選c。
2、選a。
3、選c。
4、雖然a與b沒有優先關系,但構造優先函數後,a與b就一定存在優先關系了。所以,由f(a)>g)(b)或f(a)<g(b)並不能判定原來的a與b之間是否存在優先關系:故選c。
5、如果文法G無二義性,則最左推導是先生長右邊的枝葉:對於d,如果有兩個不同的是了左推導,則必然有二義性。故選a。
6、選c。
7、由圖2-8-1的語法樹和優先關系可以看出應選b。
8、規范推導是最左推導,故選d。
9、由T→T,…和T→(… 得FIRSTVT(T))={(,,)};
由T→S得FIRSTVT(S)⊂FIRSTVT(T),而FIRSTVT(S)={b,∧,(};即
FIRSTVT(T)={b,∧,(,,}; 因此選c。
10、d 11、c 12、b 13、b 14、b
二、多項選擇題
1、下面哪些說法是錯誤的 。
a. 有向圖是一個狀態轉換圖 b. 狀態轉換圖是一個有向圖
c.有向圖是一個DFA d.DFA可以用狀態轉換圖表示
2、對無二義性文法來說,一棵語法樹往往代表了 。
a. 多種推導過程 b. 多種最左推導過程 c.一種最左推導過程
d.僅一種推導過程 e.一種最左推導過程
3、如果文法G存在一個句子,滿足下列條件 之一時,則稱該文法是二義文法。
a. 該句子的最左推導與最右推導相同
b. 該句子有兩個不同的最左推導
c. 該句子有兩棵不同的最右推導
d. 該句子有兩棵不同的語法樹
e.該句子的語法樹只有一個
4、有一文法G:S→AB
A→aAb|ε
B→cBd|ε
它不產生下面 集合。
a. {anbmcndm|n,m≥0} b. {anbncmdm|n,m>0}
c. {anbmcmdn|n,m≥0} d. {anbncmdm|n,m≥0}
e. {anbncndn|n≥0}
5、自下而上的語法分析中,應從 開始分析。
a. 句型 b. 句子 c. 以單詞為單位的程序
d. 文法的開始符 e. 句柄
6、對正規文法描述的語言,以下 有能力描述它。
a.0型文法 b.1型文法 c.上下文無關文法 d.右線性文法 e.左線性文法
解答 1、e、a、c 2、a、c、e 3、b、c、d 4、a、c 5、b、c 6、a、b、c、d、e
三、填空題
1、文法中的終結符和非終結符的交集是 。詞法分析器交給語法分析器的文法符號一定是 ,它一定只出現在產生式的 部。
2、最左推導是指每次都對句型中的 非終結符進行擴展。
3、在語法分析中,最常見的兩種方法一定是 分析法,另一是 分析法。
4、採用 語法分析時,必須消除文法的左遞歸。
5、 樹代表推導過程, 樹代表歸約過程。
6、自下而上分析法採用 、歸約、錯誤處理、 等四種操作。
7、Chomsky把文法分為 種類型,編譯器構造中採用 和 文法,它們分別產生 和 語言,並分別用 和 自動機識別所產生的語言。
解答 1、空集 終結符 右
2、最左
3、自上而上 自下而上
4、自上而上
5、語法 分析
6、移進 接受
7、4 2 型 3型 上下文無關語言 正規語言 下推自動機 有限
四、判斷題
1、文法 S→aS|bR|ε描述的語言是(a|bc)* ( )
R→cS
2、在自下而上的語法分析中,語法樹與分析樹一定相同。 ( )
3、二義文法不是上下文無關文法。 ( )
4、語法分析時必須先消除文法中的左遞歸。 ( )
5、規范歸約和規范推導是互逆的兩個過程。 ( )
6、一個文法所有句型的集合形成該文法所能接受的語言。 ( )
解答 1、對 2、錯 3、錯 4、錯 5、錯 6、錯
五、簡答題
1、句柄 2、素短語 3、語法樹 4、歸約 5、推導
[解答]
1、句柄:一個句型的最左直接短語稱為該句型的句柄。
2、素短語:至少含有一個終結符的素短語,並且除它自身之外不再含任何更小的素短語。
3、語法樹:滿足下面4個條件的樹稱之為文法G[S]的一棵語法樹。
①每一終結均有一標記,此標記為VN∪VT中的一個符號;
②樹的根結點以文法G[S]的開始符S標記;
③若一結點至少有一個直接後繼,則此結點上的標記為VN中的一個符號;
④若一個以A為標記的結點有K個直接後繼,且按從左至右的順序,這些結點的標記分別為X1,X2,…,XK,則A→X1,X2,…,XK,必然是G的一個產生式。
4、歸約:我們稱αγβ直接歸約出αAβ,僅當A→γ 是一個產生式,且α、β∈(VN∪VT)*。歸約過程就是從輸入串開始,反復用產生式右部的符號替換成產生式左部符號,直至文法開始符。
5、推導:我們稱αAβ直接推出αγβ,即αAβÞαγβ,僅當A→ γ 是一個產生式,且α、β∈(VN∪VT)*。如果α1Þα2Þ…Þαn,則我們稱這個序列是從α1至α2的一個推導。若存在一個從α1αn的推導,則稱α1可推導出αn。推導是歸約的逆過程。
六、問答題
1、給出上下文無關文法的定義。
[解答]
一個上下文無關文法G是一個四元式(VT,VN,S, P),其中:
●VT是一個非空有限集,它的每個元素稱為終結符號;
●VN是一個非空有限集,它的每個元素稱為非終結符號,VT∩VN=Φ;
●S是一個非終結符號,稱為開始符號;
●P是一個產生式集合(有限),每個產生式的形式是P→α,其中,P∈VN,
α∈(VT∪VN)*。開始符號S至少必須在某個產生式的左部出現一次。
2、文法G[S]:
S→aSPQ|abQ
QP→PQ
bP→bb
bQ→bc
cQ→cc
(1)它是Chomsky哪一型文法?
(2)它生成的語言是什麼?
[解答]
(1)由於產生式左部存在終結符號,且所有產生式左部符號的長度均小於等於產生式右部的符號長度,所以文法G[S]是Chomsky1型文法,即上下文有關文法。
(2)按產生式出現的順序規定優先順序由高到低(否則無法推出句子),我們可以得到:
SÞabQÞabc
SÞaSPQÞaabQPQÞaabPQQÞaabbQQÞaabbcQÞaabbcc
SÞaSPQÞaaSPQPQÞaaabQPQPQÞaaabPQQPQÞaaabPQPQQÞaaaPPQQQÞ
aaabbPqqqÞaaabbQQQÞaaabbbcQQÞaaabbbccQÞaaabbbccc
……
於是得到文法G[S]生成的語言L={anbncn|n≥1}
3、按指定類型,給出語言的文法。
L={aibj|j>i≥1}的上下文無關文法。
【解答】
(1)由L={aibj|j>i≥1}知,所求該語言對應的上下文無關文法首先應有S→aSb型產生式,以保證b的個數不少於a的個數;其次,還需有S→Sb或S→bS型的產生式,用以保證b的個數多於a的個數;也即所求上下文無關文法G[S]為:
G[S]:S→aSb|Sb|b
4、有文法G:S→aAcB|Bd
A→AaB|c
B→bScA|b
(1)試求句型aAaBcbbdcc和aAcbBdcc的句柄;
(2)寫出句子acabcbbdcc的最左推導過程。
【解答】(1)分別畫出對應兩句型的語法樹,如圖2-8-2所示
句柄:AaB Bd
圖2-8-2 語法樹
(2)句子acabcbbdcc的最左推導如下:
SÞaAcBÞaAaBcBÞacaBcBÞacabcBÞacabcbScAÞacabcbBdcA
ÞacabcbbdcAÞacabcbbdcc
5、對於文法G[S]:
S→(L)|aS|a L→L, S|S
(1)畫出句型(S,(a))的語法樹。(2)寫出上述句型的所有短語、直接短語、句柄和素短語。
【解答】
(1)句型(S,(a))的語法樹如圖2-8-3所示
(2)由圖2-8-3可知:
①短語:S、a、(a)、S,(a)、(S,(a));
②直接短語:a、S;
③句柄:S;
④素短語:素短語可由圖2-8-3中相鄰終結符之間的優先關系求得,即;
因此素短語為a。
6、考慮文法G[T]:
T→T*F|F
F→F↑P|P
P→(T)|i
證明T*P↑(T*F)是該文法的一個句型,並指出直接短語和句柄。
【解答】
首先構造T*P↑(T*F)的語法樹如圖2-8-4所示。
由圖2-8-4可知,T*P↑(T*F)是文法G[T]的一個句型。
直接短語有兩個,即P和T*F;句柄為P。
一、單項選擇題
1、詞法分析所依據的是 。
a. 語義規則 b. 構詞規則 c. 語法規則 d. 等價變換規則
2、詞法分析器的輸出結果是 。
a. 單詞的種別編碼 b. 單詞在符號表中的位置
c. 單詞的種別編碼和自身值 d. 單詞自身值
3、正規式M1和M2等價是指 。
a. M1和M2的狀態數相等 b. M1和M2的有向弧條數相等
c. M1和M2所識別的語言集相等 d. M1和M2狀態數和有向弧條數相等
4、狀態轉換圖(見圖3-6-1)接受的字集為 。
a. 以 0開頭的二進制數組成的集合 b. 以0結尾的二進制數組成的集合
c. 含奇數個0的二進制數組成的集合 d. 含偶數個0的二進制數組成的集合
5、詞法分析器作為獨立的階段使整個編譯程序結構更加簡潔、明確,因此, 。
a. 詞法分析器應作為獨立的一遍 b. 詞法分析器作為子程序較好
c. 詞法分析器分解為多個過程,由語法分析器選擇使用 d. 詞法分析器並不作為一個獨立的階段
解答 1、b 2、c 3、c 4、d 5、b
二、多項選擇題
1、在詞法分析中,能識別出 。
a. 基本字 b. 四元式 c. 運算符
d. 逆波蘭式 e. 常數
2、令∑={a,b},則∑上所有以b開頭,後跟若干個ab的字的全體對應的正規式為 。
a. b(ab)* b. b(ab)+ c.(ba)*b
d. (ba)+b e. b(a|b)
解答 1、a、c、e 2、a、b、d
三、填空題
1、確定有限自動機DFA是 的一個特例。
2、若二個正規式所表示的 相同,則認為二者是等價的。
3、一個字集是正規的,當且僅當它可由 所 。
解答 1、NFA 2、正規集 3、DFA(NFA)所識別
四、判斷題
1、一個有限狀態自動機中,有且僅有一個唯一終態。 ( )
2、設r和s分別是正規式,則有L(r|s)=L(r)|L(s)。 ( )
3、自動機M和M′的狀態數不同,則二者必不等價。 ( )
4、確定的自動機以及不確定的自動機都能正確地識別正規集。 ( )
5、對任意一個右線性文法G,都存在一個NFA M,滿足L(G)=L(M)。 ( )
6、對任意一個右線性文法G,都存在一個DFA M,滿足L(G)=L(M)。 ( )
7、對任何正規表達式e,都存在一個NFA M,滿足L(G)=L(e)。 ( )
8、對任何正規表達式e,都存在一個DFA M,滿足L(G)=L(e)。 ( )
解答 1 、2、3、錯 4、5、6、7、8、正確
五、基本題
1、設M=({x,y}, {a,b}, f,x,{y})為一非確定的有限自動機,其中f定義如下:
f(x,a)={x,y} f(x,b)={y}
f(y,a)=φ f(y,b)={x,y}
試構造相應的確定有限自動機M′。
解答:對照自動機的定義M=(S,Σ,f,S0,Z),由f的定義可知f(x,a)、f(y,b)均為多值函數,所以是一非確定有限自動機,先畫出NFA M相應的狀態圖,如圖3-6-2所示。
用子集法構造狀態轉換矩陣表3-6-3所示。
I Ia Ib
{x} {x,y} {y}
{y} — {x,y}
{x,y} {x,y} {x,y}
將轉換矩陣中的所有子集重新命名而形成表3-6-4所示的狀態轉換矩陣。
表3-6-4 狀態轉換矩陣
a b
0 2 1
1 — 2
2 2 2
即得到M′=({0,1,2}, {a,b}, f,0, {1,2}),其狀態轉換圖如圖3-6-5所示。
將圖3-6-5的DFA M′最小化。首先,將M′的狀態分成終態組{1,2}與非終態組{0};其次,考察{1,2}。由於{1,2}a={1,2}b={2}⊂{1,2},所以不再將其劃分了,也即整個劃分只有兩組{0},{1,2}:令狀態1代表{1,2},即把原來到達2的弧都導向1,並刪除狀態2。最後,得到如圖3-6-6所示化簡DFA M′。
2、對給定正規式b*(d|ad)(b|ab)+,構造其NFA M;
解答:首先用A+=AA*改造正規式得:b*(d|ad)(b|ab)(b|ab)*;其次,構造該正規式的NFA M,如圖3-6-7所示。
求採納為滿意回答。
㈣ c(a/g/w)ll選擇哪個
熱門頻道
首頁
博客
研修院
VIP
APP
問答
下載
社區
推薦頻道
活動
招聘
專題
打開CSDN APP
Copyright © 1999-2020, CSDN.NET, All Rights Reserved
打開APP
c語言lr文法還是ll文法,編譯原理復習題 轉載
2021-05-20 05:05:24
Tim Pan
碼齡4年
關注
一、單項選擇題 概述部分
1.構造編譯程序應掌握 。D A. 源程序 B. 目標語言 C. 編譯方法 D. 以上三項都是 2.編譯程序絕大多數時間花在 上。D
A. 出錯處理
B. 詞法分析
C. 目標代碼生成
D. 表格管理 3.編譯程序是對 。D
A. 匯編程序的翻譯
B. 高級語言程序的解釋執行
C. 機器語言的執行
D. 高級語言的翻譯 4. 將編譯程序分成若干「遍」,是為了 。B
A. 提高程序的執行效率
B. 使程序的結構更為清晰 C 利用有限的機器內存並提高機器的執行效率 D. 利用有限的機器內存但降低了機器的執行效率
詞法分析部分
1.DFA M(見圖1-1)接受的字集為 。D A. 以0開頭的二進制數組成的集合
B. 以0結尾的二進制數組成的集合
.png
C. 含奇數個0的二進制數組成的集合
D. 含偶數個0的二進制數組成的集合
2.詞法分析器的輸出結果是 。C
A. 單詞的種別編碼
B. 單詞在符號表中的位置
C. 單詞的種別編碼和自身值
D. 單詞自身值 3.正規式M1和M2等價是指 。C A. M1和M2的狀態數相等 B. M1和M2的有向邊條數相等 C. M1和M2所識別的語言集相等 D. M1和M2狀態數和有向邊條數相等 4.詞法分析器的加工對象是 。 C A .中間代碼 B .單詞 C .源程序 D .元程序 5.同正規式(a|b )*等價的正規式為 。D A .(a|b)+ B .a*|b* C .(ab)* D .(a*|b*)+ 6. 兩個DFA 等價是指: 。 D A. 這兩個DFA 的狀態數相同
B. 這兩個DFA 的狀態數和有向弧條數都相等
C. 這兩個DFA 的有向弧條數相等
D. 這兩個DFA 接受的語言相同
7. 下列符號串不可以由符號集S ={a,b}上的正閉包運算產生的是:(A ) A. ε B. a C. aa D. ab 8.稱有限自動機A1和A2等價是指________。D A .A1和A2都是定義在一個字母表上的有限自動機 B .A1和A2狀態數和有向邊數相等
圖1-1
1
相關資源:編譯原理賦值語句的翻譯LL文法LR文法簡單優先法-專業指導文檔類...
文章知識點與官方知識檔案匹配
C技能樹首頁概覽
110422 人正在系統學習中
打開CSDN APP,看更多技術內容
編譯原理五 LR(1)分析法【C語言實現】_wangkay88的博客
1、使用 LR 的優點: (1)LR 分析器能夠構造來識別所有能用上下文無關文法寫的程序設計語言的結構。 (2)LR 分析方法是已知的最一般的無回溯移進-歸約方法,它能夠和其他移進-歸約方法 一樣有效地實現。 (3)LR 方法能分析的文法...
lr參數與C語言函數參數的區別_weixin_30254435的博客
LR參數是lr自己封裝的一個鍾對象, LR參數的表達方式:{ParamName}
編譯原理習題——第2章 文法和語言試卷
第2章 文法和語言試卷 1. 文法:G:S→xSx|y所識別的語言是(D)。 A. xyx B. (xyx)* C.x*yx* D. xnyxn(n≥0) 2. 給定文法A→bA|ca,為該文法句子的是(C)。 A. bba B. cab C. bca D. cba 3. 文法G產生的(D)的全體是該文法描述的語言。 A. 句型 B. 終結符集 C. 非終結符集 D. 句子 4. 若文法G...
繼續訪問
編譯原理習題(含答案)——2程序設計語言及其文法——哈工大陳鄞配套版本
程序設計語言及其文法1 文法:G:S→xSx | y所識別的語言是( )。 2 給定文法A→bA|ca,為該文法句子的是( )。A. bbaB. cabC. bcaD. Cba 3 設有文法G[S]:S->S1|S0|Sa|Sc|a|b|c,下列符號串中是該文法的句子有( )。A. ab0B. a0b01C. a0b0aD. bc10 4 文法G產生的( )的全體是該文法描述的語言。A. ...
繼續訪問
c語言lr分析器的設計與實現_[源碼和文檔分享]基於LR分析法的簡單分析法...
通過設計、編制、調試一個簡單計算器程序,加深對語法及語義分析原理的理解,並實現詞法分析程序對單詞序列的詞法檢查和分析。 二、課程設計內容及步驟 本次課程設計需要使用 LR 分析法完成簡單計算器的設計,其中算術表達式的文法如下: ...
C語言實現編譯原理的LR分析法,編譯原理LR(0)分析器(C語言).pdf
1LR 分析法 LR LR 「 分析法是一種自底向上進行的規范規約的語法分析方法, 指 自左向 右掃描和自底向上進行歸約」。LR 分析法的一個主要缺點是,若用手工構造分析 LR 器則工作量相當大,因此必須求助於自動產生 分析器的產生器。
編譯原理 第三章 詞法分析
1、詞法分析器的輸出結果是單詞的種類編碼和自身值 2、詞法分析器不能發現括弧不匹配 3、不存在語言能被確定的有窮自動機識別但不能用正則表達式表示 4、兩個有窮自動機等價實質它們的所識別的語言相等 5、詞法分析器用於識別單詞 6、正則表達式R1和R2等價是指R1和R2代表同一正則集 7、已知文法G[S]:S->A1, A->A1|S0|0,與G等價的正規式是0(1|10)^1 8、與(a...
繼續訪問
【編譯原理-練習題-1】概述部分與詞法分析部分選擇,填空,判斷,多選題
一、單項選擇題 1.構造編譯程序應掌握 (D ) 。 a. 源程序 b. 目標語言 c. 編譯方法 d. 以上三項都是 2.編譯程序絕大多數時間花在 (D) 上。 a. 出錯處理 b. 詞法分析 c. 目標代碼生成 d. 表格管理 3.DFA M(見圖1-1)接受的字集為(D ) 。 a. 以0開頭的二進制數組成的集合 b. 以0結尾的二進制數組成的集合 ...
繼續訪問
LR中用C語言比較兩個字元串變數_花露絲雨的博客
6.lr_save_string( "We can see the string:nancy","string1" ); 7.lr_save_string( "We can see the string:nancy","string2" ); 8.lr_output_message("the string1 is %s.",lr_eval_string("{string1}")); ...
c語言字元串變數的比較,LR中用C語言比較兩個字元串變數.doc_夢符佳月...
LR中用C語言比較兩個字元串變數 Zee的早期文檔.一:以下腳本,定義兩個一樣的字元數組,對比後,列印出result的值: vuser_init() { int result; ? ???char string1[] = "We can see the string:zee"; ...
最新發布 編譯原理刷題(個人向)
編譯原理刷題
繼續訪問
【編譯原理】課後習題
1.構造編譯程序應掌握:源程序、目標語言、編譯方法 2.編譯程序絕大多數時間花在表格管理上 3. 4.一個程序是正確的,包括兩層含義:一是書寫正確;二是含義正確 (合乎語法規則、合乎語義規則) 5.描述高級語言語法常用的方法有語法樹、BNF範式、擴充的BNF範式等 6.程序語言一般可以分為低級語言和高級語言兩大類,其中低級語言通常又稱為面向機器的語言。面向機器語言指的是特定計算機系統所...
繼續訪問
C語言實現編譯原理的LR分析法,實驗三編譯原理綜合實驗報告——(LR...
注意:本例是利用LR(0)分析來實現的語法分析,同學在寫實驗報告的時候,在結果分析這一塊可以選用課堂講過的LR(0)文法來說明驗證結果即可。 同時附上你所選用的文法對應的LR(0)分析表。
編譯原理總結,看這一篇就夠了!_LeeDuo.的博客_編譯原理
1.詞法分析:對源程序的字元串進行掃描和分解,識別出每個單詞符號。 2.語法分析:根據語言的語法規則,把單詞符號分解成各類語法單位。 3.語義分析與中間代碼生成:對各種語法范疇進行靜態語義檢查,若正確則進行中間代碼翻譯。 4.代碼優化:...
C語言LR(1)文法
用C語言編寫,對一個LR(1)文法分析,文法為:實現兩個數的加減乘除四則運算。並能得出計算結果。
熱門推薦 編譯原理習題(含答案)——3詞法分析——哈工大陳鄞配套版本
詞法分析1 詞法分析器的輸出結果是( )。A. 單詞自身值B. 單詞在符號表中的位置C. 單詞的種別編碼 D. 單詞的種別編碼和自身值2 詞法分析器不能( )。A. 識別出數值常量B. 過濾源程序中的注釋C. 掃描源程序並識別記號D. 發現括弧不匹配 3 ( )這樣一些語言,它們能被確定的有窮自動機識別,但不能用正則表達式表示。A. 存在B. 不存在C. 無法判定是否存在D. 以上答案都不對 4 ...
繼續訪問
C--編譯器:C--編譯器,實現LL(1)\ LR(0)\ SLR \ LR(1)並生成語義分析和MIPS
實現了自製的C--語言的一遍掃描編譯,包括詞法分析,LR(1)語法分析,屬性文法+中間代碼生成,MIPS編譯生成編譯腳本由python實現,兼容python2.7與3.7,圖形界面由WPF實現,使用了IronPython進行腳本執行 支持以下特性: 一種基本類型int 賦值表達式,循環/選擇/判斷/跳出語句 函數定義與函數調用 未實現: 浮點數,字元,字元串 斑點 錯誤檢查
編譯原理之LR(0)分析演算法的c實現
LR(0)分析器的構造演算法如下: 對一個文法構造了它的LR(0)分析表後就可以在LR分析器的總控程序(驅動程序)控制下對輸入串進行分析,即根據輸入串的當前符號和分析棧的棧頂狀態查找分析表應採取的動作,對狀態棧和符號棧進行相應的操作即移進、歸約、接受或報錯。具體說明如下: (1)若ACTION[S,a]=Sj,a為終結符,則把a移入符號棧,j移入狀態棧; (2)若ACTION[S,a]=rj,
繼續訪問
編譯原理第一章自測題
第一章 高級語言與編譯程序概述 一、單項選擇題 1.將編譯程序分成若干個「遍」是為了____ 。 A. 提高程序的執行效率 B. 使程序的結構更加清晰 C. 利用有限的機器內存並提高機器的執行效率 D. 利用有限的機器內存但降低了機器的執行效率 2.構造編譯程序應掌握 ____ 。 A. 源程序 B. 目標語言 C. 編譯方法 D. 以上三項都是 3.編譯程序絕大多數時間花在 ____ 上。 A. 出錯處理 B. 詞法分析 C. 目標代碼生成 D. 管理表格
C語言語法分析程序(編譯原理:LR)
北郵大三編譯原理課程序 注釋很詳細
用c++實現LR語法分析器
通過LR分析表及三個棧形成對輸入表達式的判斷! 。
c語言lr文法還是ll文法,編譯原理第五章語法分析課後題
(先補到這里,後面如果有需要的話,垃圾博主還會回來繼續更的。。。)5.1 遞歸子程序法屬於()語法分析方法A. 自頂向下B. 自底向上C. 自左向右D. 自右向左5.2 採用確定的自頂向下分析時,必須()A. 消除左遞歸B. 消除右遞歸C. 避免回溯D. 提取左公因子5.3 自上而下語法分析的主要分析動作是A. 推導B. 移進C. 歸約D. 匹配5.4 一個字元屬於FOLLOW(S),這個字元的含...
繼續訪問
編譯原理,C語言實現LR(0)分析(擴展文法的生成、項目集規范簇的生成、ACTION GOTO表的生成、句子的分析)
編譯原理,C語言實現LR(0)分析(擴展文法的生成、項目集規范簇的生成、ACTION GOTO表的生成、句子的分析) (1)根據提示輸入文法的個數 (2)輸入文法 (3)擴展文法的生成、項目集規范簇的生成、ACTION GOTO表的生成 (3)分析句子 (4)生成分析過程 C語言實現LR(0)分析源代碼
繼續訪問
編譯程序基本原理
編譯程序和解釋程序 人們利用高級語言與計算機進行交互, 但計算機仍然只能理解和執行由 0, 1序列構成的機器語言, 因此高級程序設計語言需要翻譯, 擔負這一任務的程序稱為"語言處理程序", 由於應用的不同, 語言之間的翻譯也是多種多樣的. 大致可分為 匯編程序、解釋程序和編譯程序. 用某種高級語言或匯編語言編寫的程序稱為 源程序, 源程序不能直接在計算機上執行. 如果源程序是用匯編語言寫的, ...
繼續訪問
LR腳本用戶自定義C語言函數
LR腳本實戰:用戶自定義C語言函數 Loadrunner可以使用標准C語言的函數,因此我們可以在腳本中編寫自己的函數用於調用,把腳本結構化,更好的進行重用。 先看一個例子: Action() { int i,j; j = 1; for (i=0;i<10;i++) { lr_message("i+j=%d",sum(i,j)); j++; } ...
繼續訪問
編譯原理,第一章緒論
編譯過程和編譯程序結構 五個階段: 詞法分析 語法分析 語義分析和中間代碼生成 優化 目標代碼生成 編譯程序的開發 自編譯:用某種高級語言編寫自己的編譯程序稱為自編譯, 交叉編譯:用A機器上的編譯程序來產生可在B機器上運行的目標代碼 自展:首先確定一個非常簡單的核心語言L0,然後用機器語言或者匯編語言寫出它的編譯程序T0,再把語言L0擴充到L1,用L0編寫L1的編譯程序T1,這樣不斷擴展下去...
繼續訪問
c語言是 ll文法和lr文法哪個好
c語言lr文法還是ll文法
寫評論
評論
收藏
點贊
踩
分享
㈤ 計算機科學與技術,大二了,我該學些什麼呢,現在只會寫幾行代碼
我不是大神,事實上我還是大一呢。我已經學了C,正在學C++,我也是一頭霧水。再好多看些相關書籍。我給你推薦些。我只看了一點就受益無窮。求採納。
計算機經典教材
目錄
1 前言
2 Mathematics (數學)
3 Data Structures & Algorithms (數據結構、演算法)
4 Compiler (編譯原理)
5 Operating System (操作系統)
6 Database (資料庫)
7 C (C 語言)
8 C++ (C++ 語言)
9 Object-Oriented (面向對象)
10 Software Engineering (軟體工程)
11 UNIX Programming (UNIX編程)
12 UNIX Administration (UNIX系統管理)
13 Networks (網路)
14 Windows Programming (Windows 編程)
15 Other (其它)
前言
推薦原則:
寧缺勿濫,決不混進糟粕 (好書不一定對所有人都合適,但對於它的目標讀者群來說,一定是好書)。
選書原則:
有國外的,不看國產的
有原版的,不看翻譯的
看大師的作品
看書原則:
不要看C、C++、java……今天聽說C好,就跑去學C。明天聽說java好,就跑去學java,最後你什麼也學不到。因為不管什麼語言,永遠不要忘記語言的本質。語言只是一種工具,它的作用就是完成你的工作。不管把
C 的語法學得如何透徹,也不管把 C 的
trick用的如何精妙,這都不能表示你會編程。要學會如何分析問題,如何設計程序,如何用一種具體的語言來實現。如果你只會做最後一步,你只是一個編碼者(coder),還不是一個程序員(programmer)。做一個programmer,不要做coder。總之,不要為了學語言而去學語言(除非你是個語言學家)。
不要放棄對基礎知識的學習。所謂基礎知識,一般都有一個特點,那就是:它們可能看起來沒用,但如果你忽視它們的話,總有一天你會後悔莫及。所以,如果不想以後再後悔的話,就在今天多花點時間。
不管學什麼東西,學之前先弄明白自己要學的是什麼東西,它有什麼用,在你已經學和以後的發展方向中,它處於什麼位值。如果這些都不明白,就好比在茫茫的叢林裡面四處亂撞,就算能出去,也一定會走很多彎路。
對於軟體工程之類的東西,不象 C
語言有著嚴格的標准,最好的辦法就是兼收並蓄,能看的都看,然後(最重要的)在此之上形成自己的思想(不然就什麼都白看了)。
盡信書不如無書。書里寫的只不過是寫書的人認為正確的觀點而已。學習前人的知識和經驗,在此基礎上形成自己的知識結構、觀點和思維方式,才是學習的真正目的。
一。Mathematics (數學)
書名(英文):Discrete Mathematics and Its Applications (Fifth Edition)
書名(中文):離散數學及其應用 (第五版)
原作者:Kenneth H.Rosen
書名(英文):Concrete Mathematics : A Foundation for Computer Science
(Second Edition)
書名(中文):具體數學:計算機科學基礎 (第2版)
原作者:Ronald L. Graham / Donald E. Knuth / Oren Patashnik
二。Data Structures & Algorithms (數據結構、演算法)
書名(英文):Data Structures and Algorithm Analysis in C, Second Edition
書名(中文):數據結構與演算法分析--C語言描述 (第二版)
原作者:Mark Allen Weiss
大凡國外的數據結構教科書,都有一個共同的特點,就是他們的第一章都不是講的數據結構,而是軟體工程的基本原則。我個人認為這是十分必要的,特別是對於大
多數沒有接觸過程序設計的同學來說,在數據結構這個可以說是第一次接觸程序設計的課程中能學習到基本的軟體工程原則,對於以後的學習是十分有好處的。寫一
個亂七八糟的程序出來還不如什麼都不寫。在我看來,這本書有兩個優點:一:將軟體工程的基本原則貫穿全書,二:簡單,容易理解。對於初學者,這本書無疑是
非常合適的。mufasa
書名(英文):Data Structures & Program Design In C (Second Edition)
書名(中文):數據結構與程序設計 C 語言描述 (第二版)
原作者:Robert Kruse / C.L. Tondo / Bruce Leung
書名(英文):Data Structures with C++ Using STL (Second Edition)
書名(中文):數據結構C++語言描述描述—應用標准模版庫 (第二版)
原作者:William Ford, William Topp
書名(英文):Introction to Algorithms (Second Edition)
書名(中文):演算法導論 (第二版)
原作者:Thomas H. Cormen / Charles E. Leiserson / Ronald L. Rivest /
Clifford Stein
書名(英文):The Art of Computer Programming, Volume 1 : Fundamental
Algorithms (Third Edition)
書名(中文):計算機程序設計藝術 第1卷 基本演算法 (第3版)
原作者:Donald E. Knuth
書名(英文):The Art of Computer Programming, Volume 2 : Seminumerical
Algorithms (Third Edition)
書名(中文):計算機程序設計藝術 第2卷 半數值演算法 (第3版)
原作者:Donald E. Knuth
書名(英文):The Art of Computer Programming, Volume 3 : Sorting and
Searching (Second Edition)
書名(中文):計算機程序設計藝術 第3卷 排序和查找 (第2版)
原作者:Donald E. Knuth
三。Compiler (編譯原理)
書名(英文):Compilers: Principles, Techniques, and Tools
書名(中文):編譯原理、技術與工具
原作者:Alfred V. Aho / Ravi Sethi / Jeffrey D. Ullman
書名(英文):Advanced Compiler Design and Implementation
書名(中文):高級編譯器設計與實現
原作者:Steven S. Muchnic
書名(英文):Modern Compiler Implementation in C
書名(中文):現代編譯原理--C語言描述
原作者:Andrew W.Appel / Maia Ginsburg
四。Operating System (操作系統)
書名(英文):Operating System Concepts (Sixth Edition)
書名(中文):操作系統概念 (第六版)
原作者:Abraham Silberschatz / Peter Baer Galvin / Greg Gagne
書名(英文):Operating Systems : Design and Implementation (Second
Edition)
書名(中文):操作系統:設計及實現 (第二版)
原作者:Andrew S. Tanenbaum / Albert S. Woodhull
翻譯者:王鵬、尤晉元、朱鵬、敖青雲
書名(英文):The Design and Implementation of the 4.4BSD Operating System
書名(中文):4.4BSD操作系統設計與實現
原作者:Marshall Kirk McKusick / Keith Bostic / Michael J. Karels / John
S.Quarterman
書名(英文):The Design and Implementation of the FreeBSD Operating System
書名(中文):FreeBSD操作系統設計與實現
原作者:Marshall Kirk McKusick / George V. Neville-Neil
翻譯者:張輝
書名(英文):The Design of The UNIX Operating System
書名(中文):UNIX操作系統設計
原作者:Maurice J.Bach
書名(英文):UNIX Internals : The New Frontiers
書名(中文):UNIX系統內幕
原作者:Uresh Vahalia
書名(英文):UNIX Systems for Modern Architectures
書名(中文):現代體系結構上的UNIX系統--內核程序員的SMP和Caching技術
原作者:Curt Schimmel
翻譯者:張輝
書名(英文):Lions' Commentary on UNIX 6th Edition with Source Code
書名(中文):萊昂氏UNIX源代碼分析
原作者:John Lions
書名(英文):Distributed Systems : Principles and Paradigms
書名(中文):分布式系統:原理與範例
原作者:Andrew S.Tanenbaum / Maarten van Steen
五.Database (資料庫)
書名(英文):An Introction to Database Systems, Eighth Edition
書名(中文):資料庫系統導論 (第八版)
原作者:C. J.Date
書名(英文):Database System Concepts, Fourth Edition
書名(中文):資料庫系統概念 (第四版)
原作者:Abraham Silberschat / Henry F.Korth / S.Sudarshan
六。C (C 語
書名(英文):The C Programming Language, Second Edition
書名(中文):C程序設計語言,第二版
原作者:Brian W. Kernighan / Dennis Ritchie
書名(英文):The Art and Science of C : A Library-Based Introction to
Computer Science
書名(中文):C語言的科學和藝術
原作者:Eric S.Roberts
書名(英文):Programming Abstractions in C : A Second Course in Computer
Science
書名(中文):C程序設計的抽象思維
原作者:Eric S.Roberts
書名(英文):Expert C Programming
書名(中文):C專家編程
原作者:Andrew Koenig
書名(英文):C Traps and Pitfalls
書名(中文):C陷阱與缺陷
原作者:Andrew Koenig
七。C++ (C++ 語言)
書名(英文):C++ Primer, Third Edition & Forth Edition
書名(中文):C++ Primer (第三版、第四版)
原作者:Stanley B.Lippman / Josée LaJoie / Barbara E.Moo
翻譯者:李師賢、蔣愛軍、梅曉勇、林瑛
平心而論,這本書的第三版並不適合入門,但是第四版適合。所以第四版的出現並不意味著第三版就失去了其價值。在我看來最好的辦法就是買一本第四版的中文版和一本第三版的英文版。中文版用來入門,英文版用來作參考手冊。mufasa
書名(英文):The C++ Programming Language, Special Edition
書名(中文):C++ 程序設計語言 (特別版)
原作者:Bjarne Stroustrup
書名(英文):Inside the C++ Object Model
書名(中文):深度探索 C++ 對象模型
原作者:Stanley B. Lippman
書名(英文):Effective C++, Thrid Edition
書名(中文):Effective C++ (第三版)
原作者:Scott Meyers
書名(英文):More Effective C++
書名(中文):More Effective C++
原作者:Scott Meyers
翻譯者:侯捷
書名(英文):Thinking in C++, Second Edition
書名(中文):C++編程思想 (第二版)
原作者:Bruce Eckel
書名(英文):Thinking in C++, Volume 2 : Practical Programming
書名(中文):C++編程思想 第2卷:實用編程技術
原作者:Bruce Eckel / Chuck Alison
書名(英文):Ruminations on C++ : A Decade of Programming Insight and
Experience
書名(中文):C++沉思錄
原作者:Andrew Koenig / Barbara Moo
八。Object-Oriented (面向對象)
書名(英文):Object-Oriented Analysis and Design with Applications, Second
Edition
書名(中文):面向對象分析與設計 (第二版)
原作者:Grady Booch
書名(英文):Object-Oriented Modeling and Design with UML,Second Edition
書名(中文):UML面向對象建模與設計 (第二版)
原作者:Michael Blaha / James Rumbaugh
翻譯者:車皓陽、楊眉
書名(英文):Object-Oriented Software Construction (Second Edition)
書名(中文):面向對象軟體構造 (第二版)
原作者:Bertrand Meyer
書名(英文):Design Patterns : Elements of Reusable Object-Oriented
Software
書名(中文):設計模式:可復用面向對象軟體的基礎
原作者:Erich Gamma / Richard Helm / Ralph Johnson / John Vlissides
九。Software Engineering (軟體工程)
書名(英文):Software Engineering (7th Edition)
書名(中文):軟體工程 (第七版)
原作者:Ian Sommerville
書名(英文):Software Engineering : A Practitioner's Approach (Fifth
Edition)
書名(中文):軟體工程:實踐者之路 (第5版)
原作者:Roger S. Pressman
書名(英文):Software Engineering : Theory and Practice (Second Edition)
書名(中文):軟體工程:理論與實踐 (第二版)
原作者:Shari Lawrence Pfleeger
書名(英文):The Mythical Man-Month
書名(中文):人月神話
原作者:Frederick Phillips Brooks
書名(英文):Software Architecture : Perspectives On an Emerging Emerging
Discipline
書名(中文):軟體體系結構:一門初露端倪學科的展望
原作者:Mary Shaw / David Garlan
十。UNIX Programming (UNIX編程)
書名(英文):Advanced Programming in the UNIX Environment, Second Edition
書名(中文):UNIX 環境高級編程 (第二版)
原作者:W.Richard Stevens / Stephen A.Rago
翻譯者:尤晉元、張亞英、戚正偉
書名(英文):The UNIX Programming Environment
書名(中文):UNIX 編程環境
原作者:Brianw. Kernighan
書名(英文):UNIX Network Programming, Volume 1 : The Sockets Networking
API (Third Edition)
書名(中文):UNIX 網路編程 卷1:套接字聯網API (第三版)
原作者:W. Richard Stevens / Bill Fenner / Andrew M. Rudoff
書名(英文):UNIX Network Programming Volume 2 : Interprocess
Communications (Second Edition)
書名(中文):UNIX 網路編程 卷2:進程間通信 (第2版)
原作者:W. Richard Stevens
書名(英文):The Art of UNIX Programming
書名(中文):UNIX 程序設計藝術
原作者:Eric Raymond
UNIX Administration (UNIX系統管理)
書名(英文):UNIX System Administration Handbook (Third Edition)
書名(中文):UNIX系統管理技術手冊 (第三版)
原作者:Evi Nemeth / Garth Snyder
書名(英文):Linux Administration Handbook
書名(中文):Linux系統管理技術手冊
原作者:Evi Nemeth / Garth Snyder / Trent R.Hein
書名(英文):UNIX Unleashed (Fourth Edition)
書名(中文):UNIX 技術內幕 (第四版)
原作者:Robin Anderson / Andy Johnston
書名(英文):UNIX:The Textbook
書名(中文):UNIX操作系統教程
原作者:Syed Mansoor Sarwar / Robert Koretsky / Syed Aqeel Sarwar
書名(英文):Unix Backup & Recovery
書名(中文):UNIX 備份與恢復
原作者:W.Curtis Preston
十一。Networks (網路)
書名(英文):Computer Networks (Fourth Edition)
書名(中文):計算機網路 (第4版)
原作者:Andrew S. Tanenbaum
書名(英文):TCP/IP Illustrated, Volume 1 : The Protocols
書名(中文):TCP/IP 詳解 卷1:協議
原作者:W. Richard Stevens
書名(英文):TCP/IP Illustrated, Volume 2 : The Implementation
書名(中文):TCP/IP詳解 卷2:實現
原作者:Gary R. Wright / W. Richard Stevens
書名(英文):TCP/IP Illstrated, Volume 3 : TCP for Transactions, HTTP,
NNTP, and the UNIX Domain Protocols
書名(中文):TCP/IP詳解 卷3:TCP事務協議、HTTP、NNTP和UNIX域協議
原作者:W. Richard Stevens
書名(英文):Internetworking with TCP/IP Vol I : Principles, Protocols,
and Architecture (Third Edition)
書名(中文):TCP/IP 網路互連技術 卷1:原理、協議和體系結構 (第3版)
原作者:Douglas E. Comer
書名(英文):Internetworking with TCP/IP Vol II : Design, Implementation,
and Internals (Second Edition)
書名(中文):TCP/IP 網路互連技術 卷2:設計與實現 (第2版)
原作者:Douglas E. Comer / David L. Stevens
書名(英文):Internetworking with TCP/IP Vol III : Client-Server
Programming and Applications, BSD Socket Version (Second Edition)
書名(中文):TCP/IP 網路互連技術 卷3:客戶伺服器編程和應用BSD套接字版 (第2版)
原作者:Douglas E. Comer / David L. Stevens
書名(英文):Internetworking with TCP/IP Vol III : Client-Server
Programming and Applications, Windows Sockets Version
書名(中文):TCP/IP 網路互連技術 卷3:客戶伺服器編程和應用Windows套接字版
原作者:Douglas E. Comer / David L. Stevens
十二。Windows Programming (Windows 編程)
書名(英文):Inside Microsoft Windows 2000 (Third Edition)
書名(中文):Microsoft Windows 2000 技術內幕 (第3版)
原作者:David A.solomon Mark E.Russinovich
書名(英文):Programming Windows (Fifth Edition)
書名(中文):Windows 編程 (第5版)
原作者:Charles Petzold
書名(英文):Programming Applications for Microsoft Windows
書名(中文):Microsoft Windows 應用程序設計
原作者:Jeffrey Richter
書名(英文):Programming with Microsoft Visual C++ .NET (Sixth Edition)
書名(中文):Visual C++.NET 技術內幕 (第6版)
原作者:George Shepherd / David Kruglinski
書名(英文):Dissecting MFC
書名(中文):深入淺出MFC
原作者:侯捷
十三。Other (其它)
書名(英文):Computer Systems : A programmer' s Perspective
書名(中文):計算機系統
原作者:Randal E. Bryant / David R. O'Hallaron
書名(英文):Pattern Classification (Second Edition)
書名(中文):模式分類 (第2版)
原作者:Richard O. Duda / Peter E. Hart / David G. Stork
書名(英文):Code Complete 2
書名(中文):代碼大全第2版
原作者: Steve McConnell
書名(英文):Programming Pearls (2nd Edition)
書名(中文):編程珠璣第2版
原作者: Jon Bentley
別人給我推薦的,我只看過一兩本。
㈥ 編譯原理一道題.有文法G(S)1、 S→(L)2、 S→ aS3、 S→ a4、...
我們也正在學編譯原理,第一題不會,第二題:
先構造語法樹,沒法畫出來,所有短語:a、(a)、S、S,(a)、(S,(a))
直接短語:a、S
句柄:a
LPP我不知道是什麼
㈦ 編譯原理中的正則表達式與正規表達式有什麼區別
完全相同,是對regular expression的不同翻譯
㈧ 優先函數是什麼編譯原理
構造算符優先分析表時使用的優先函數,其等價於矩陣表,但存儲量小。
定義兩個函數,其對應元素的值為優先值,通過循環比較各元素的兩個值,每次將優先順序大的值改為小的值+1,若相等則都賦為目前較大的值,循環直至結果沒有變化,構造OK
㈨ 計算機科學與技術《編譯原理》求解題
1、錯
2、對
3、錯
4、對
5、錯
6、對
7、對
8、對
9、對
10、錯