商品簡介
本書結合對現代編譯器設計理論的詳細研究,精心設計了若干個實驗,每個實驗都使用C語言編寫完成,并配有大量的練習,使讀者可以將注意力集中到編程上,真正做到“以源代碼為核心”。讀者可以親自動手完成這些實驗,在實踐的過程中循序漸進地學習編譯原理的理論知識,進而加深對編譯原理的理解,掌握理論知識在實際中的應用情況,從而將理論知識統一起來。本書還完整描述了一個可運行的小規模語言編譯器(包括源代碼)。全書包含12個實驗,是一本真正能夠引導讀者動手實踐的書。本書可作為高等院校“編譯原理”課程的實踐教材,也可作為各類程序開發者、愛好者的閱讀參考書。
名人/編輯推薦
本書結合對現代編譯器設計理論的詳細研究,精心設計了若干個實驗,每個實驗都使用C語言編寫完成,并配有大量的練習,使讀者可以將注意力集中到編程上,真正做到“以源代碼為核心”。
目次
CP Lab簡介1實驗1實驗環境的使用3實驗2NFA到DFA26實驗3使用Lex自動生成掃描程序48實驗4消除左遞歸(無替換)62實驗5消除左遞歸(有替換)74實驗6提取左因子89實驗7First集合104實驗8Follow集合117實驗9Yacc分析程序生成器132實驗10符號表的構建和使用137實驗11三地址碼轉換為P\\|代碼146實驗12GCC編譯器案例綜合研究156附錄ATINY編譯器和TM機167參考文獻225章數據結構課程設計概述11.1數據結構簡介11.2課程設計目標和特點21.3編寫說明31.4課程設計實例的標準格式4第2章線性表的應用62.1存儲結構與基本運算的算法62.2集合的交、并運算152.3學生成績管理182.4多項式求導252.5約瑟夫環問題302.6數據庫管理系統34第3章棧的應用583.1存儲結構與基本運算的算法583.2括號匹配633.3漢諾塔問題663.4算術表達式求值693.5馬踏棋盤76第4章隊列的應用824.1存儲結構與基本運算的算法824.2看病排隊候診問題884.3數制的轉換914.4停車場管理994.5基數排序107第5章串的應用1145.1存儲結構與基本運算的算法1145.2KMP算法1185.3長公共子串1215.4大整數計算器1236.1存儲結構與基本運算的算法1306.2魔方陣1396.3稀疏矩陣的加法運算1436.4本科生導師制問題151第7章樹狀結構的應用1697.1存儲結構與基本運算的算法1697.2線索二叉樹的創建與遍歷1727.3由遍歷確定二叉樹1757.4電文的編碼和譯碼1777.5家族關系查詢系統183第8章圖狀結構的應用2018.1存儲結構與基本運算的算法2018.2地鐵建設問題2098.3安排教學計劃2148.4校園導航218附錄A課程設計實例軟件包224參考文獻227