編譯器工程

出版時間:2006-2  出版社:機械工業(yè)出版社  作者:(美)酷伯  頁數(shù):492  
Tag標簽:無  

內(nèi)容概要

  《編譯器工程》旨在介紹編譯器構(gòu)造法中的藝術(shù)和科學。用大量素材向讀者展示現(xiàn)實權(quán)衡的存在,展示這些選擇的影響可能是微妙且深遠的。省略由于商業(yè)、語言和編譯器技術(shù)以及町用工具的變遷而變得不太重要的技術(shù)、c語言對優(yōu)化和代碼生成提供更深層次的處理。奉書內(nèi)容分為四部分。前端部分介紹掃描、語法分析、上下文相關(guān)分析的內(nèi)容;基礎結(jié)構(gòu)部分闡述中間表示、過程抽象、代碼形態(tài)為主線的知識;優(yōu)化部分闡述構(gòu)建編譯器的巾間部分——優(yōu)化器所出現(xiàn)的問題;代碼生成部分著眼于代碼生成中的三個主要問題。  《編譯器工程》內(nèi)容翔實,文筆流暢,適合作為高等院校計算機專業(yè)本科生和研究生編譯課程的教材和參考書。

作者簡介

作者:(美)酷伯 (美)琳達·特克森Cooper博士,Rice大學計算機科學系教授,是Rice巨型標量編譯器項目的負責人,這一項目主要研究與現(xiàn)代計算機的優(yōu)化和代碼生成相關(guān)的問題。他還是Rice大學高性能軟件研究中心、計算機與信息技術(shù)學院和多媒體通信中心的成員。他開設本科生和研究生的編譯器設計課程。

書籍目錄

出版者的話專家指導委員會對本書的贊譽譯者序前言第1章 編譯總監(jiān)第2章 掃描第3章 語法分析第4章 上下文相關(guān)分析第5章 中間表示第6章 過程抽象第7章 代碼形態(tài)第8章 代碼化概述第9章 數(shù)據(jù)流分析第10章 標量優(yōu)化第11章 指令篩選第12章 指令調(diào)度第13章 寄存器分配附錄A ILOC附錄B 數(shù)據(jù)結(jié)構(gòu)參考文獻練習索引

編輯推薦

本書深入探索編譯器設計領(lǐng)域,涉及這個領(lǐng)域中的各種問題及解決方案。通過展示問題的參數(shù)和這些參數(shù)對編譯器設計的影響,闡述問題的深度和可能解決方案的廣度。本書介紹了實際設計中該如何權(quán)衡,以及那些微妙而高深莫測的選擇對編譯器的影響。書內(nèi)容翔實,文筆流暢,適合作為高等院校計算機專業(yè)本科生和研究生編譯課程的教材和參考書。

圖書封面

圖書標簽Tags

評論、評分、閱讀與下載


    編譯器工程 PDF格式下載


用戶評論 (總計24條)

 
 

  •   已經(jīng)讀完了詞法和語法分析,算法講的很清楚,反過來再看flex和bison甚至xml parser都有些“原來如此”的感覺。讀這本書建議不要太快,邊讀邊把涉及到的工具和代碼拿來,理論結(jié)合實際,這樣對日常編譯工具的使用和編程思想都會有很大的提高。
  •   書沒有什么問題,干凈。挺好的~
  •     關(guān)于翻譯:
       我對中文要求不高,明白、準確即可;基于這樣的觀點,我覺得,中文翻譯得不錯,基本上做到了準確、明白;雖然勘誤多一些,但至少比翻譯龍書的教授們強一些;估計譯者是搞技術(shù)的,不至于像教授們那樣眼高手低,呵呵
       有人覺得翻譯差,我確實就不明白了。
      
      下面摘引些別人的評論
      分章而論:
      2-4章200頁中有大量內(nèi)容放到詞法分析/語法分析上,這個問題基本上已經(jīng)被自動化工具解決了(眾所周知的lex和yacc)
      
      5-7章分別是中間形式、過程抽象、代碼形式方面的內(nèi)容。第6章包含了很多重要而散碎的內(nèi)容,過程抽象這個標題有點太小。面向?qū)ο蠓矫娴膬?nèi)容淺嘗輒止,而并行和異常方面的內(nèi)容干脆就略去了。
      
      8-10章為代碼分析和優(yōu)化,透徹介紹了靜態(tài)唯一形式表示法。這部分有很多基本知識,但忽略了數(shù)組方面幾乎所有重要的內(nèi)容。
      
      第11-13章介紹了指令選擇、調(diào)度、寄存器分配的基本知識。 盡管它提到了一些硬件效應,如超標量體系結(jié)構(gòu)上的亂序執(zhí)行,但討論仍然比較貼近流行處理器的指令集。它省略了SIMD、VLIW、DSP和更多奇異的體系結(jié)構(gòu),而這些都需要良好的代碼生成來支撐。
      
      
      總體而言:
      書中介紹了許多基本主題,但沒有對任何主題進行深入探討。
      
      讀完本書后,可以了解經(jīng)典的編譯器構(gòu)建過程中大部分主要的問題。
      
      但這本書在同類書籍中不能算有競爭力,也就是說不是特別透徹!
      
      對于手頭有問題馬上要解決的人來說,確實緩不濟急。
      
      
      
      
      
  •     大家還是看英文的吧,這本書的翻譯簡直發(fā)指,前端部分不是沒問題,只是大家都很熟,連猜帶看的過,不過好在有索引,能挖一些好東西。
      后端部分的講解,難以理解的比比皆是,比如我隨手翻的,
      p255, “編碼到樹遍歷代碼生成器中的代碼形式方面的決策”,這你妹的不是工具翻譯的才怪了。
  •     我現(xiàn)在在看這本書的原版,基本快看完了。我覺得對于對編譯有興趣,特別是后端優(yōu)化有興趣的同學,這本書絕對是值得推薦的。
      
      編譯技術(shù)是計算機科學中的顯學,無數(shù)學者專家們的心血凝結(jié)成汗牛充棟的資料,而且這些資料也隨著時間在飛速增加。因此,對于編譯來講,沒有那本書就是“一本足夠”了的,但是,這本書應該是最為接近這個目標的一本書了。
      
      一般我們說得比較多的是三大經(jīng)典,“龍書”,“虎書”和“鯨書”,最后一本我沒有看過,但是“龍書”和“虎書”讀過的部分都有一些缺點?!褒垥弊顬榻?jīng)典,沒有之一,對前端的講解是我看過的書中最為清晰和準確的。但是另一方面,即使是第二版,對后端的講解不夠現(xiàn)代化,提到SSA的只有半頁紙,很多地方有點微言大義的感覺。我覺得“龍書”中講后端,只有數(shù)據(jù)流分析——格和半群這些數(shù)學概念是如何映射到具體算法中,這一部分非常精彩,這本書比不上。"虎書“則失之過于簡略,頁數(shù)最少,卻塞下大量內(nèi)容,講解必然不過詳細。同時,我不習慣虎書中硬掰成ML風格的C語言,看著別扭。
      
      這本書是2011年出的,內(nèi)容上說絕對現(xiàn)代化。第五章講IR時就引入了SSA。我覺得這個是很必要的,畢竟幾乎所有的實用編譯器都以SSA作為IR。后面提到的后端相關(guān)的概念,算法等等,我作為一個工作和編譯沾點邊的人,發(fā)現(xiàn)這些也的確是實際工作中經(jīng)常遇到的內(nèi)容。換句話說,這本書中描述的內(nèi)容更接近于真實的編譯相關(guān)工作。比如說,很少有編譯器會考慮直接在DAG上做公共表達式的刪除,一般都會用value numbering這樣一種更好的方法代替。做編譯的人有些可能連前端parser都不大懂,他們只會關(guān)心control dependence,data dependence之類的。這些概念和算法,在這本書都有詳細的講解。
      
      另外,這書相對第一版進步也不小。第一版的內(nèi)容框架基本保留了,但是講解詳細了很多。特別是第一版中文版被翻譯毀了的情況下,讓人對這一版期待更多。
      
      推薦下該書作者的講義,http://www.cs.rice.edu/~keith/512/2011/Lectures/。有些時候看不大懂,可以參考一下相應章節(jié)的講義,可能會有用。
      
      最后聲明下,我不是托,也沒有看過中文版,上面的評論都只針對原版。據(jù)說郭旭是非??孔V的譯者,希望這本書會讓他收獲更多的聲譽。
      
      
      
      
  •   今天我也在書店看到這本書了.翻譯得不錯,至少我沒發(fā)現(xiàn)得需要讀兩遍,才能漢語意思理解的句子.
  •   我沒仔細看全書,看了下圖靈的試讀,感覺還不錯,至少比龍書翻譯得好
    這里的原文貌似是“code-shape decisions encoded into the treewalk code generator have an effect on demand for registers.”
    譯文貌似是“編碼到樹遍歷代碼生成器中的代碼形式方面的決策,會影響到對寄存器的需求?!?br /> 我中文水平一般,但也能看得很明白,沒感覺到什么突兀和奇怪的地方。
    要泥煤這是機器翻譯的,翻譯們早就都下崗了,尼瑪真是站著說話不腰疼。
  •   “當使用基于樹遍歷的代碼生成器時,代碼的不同樹狀表示對寄存器或許有不同的需求?!边@樣翻是不是好點?老外這么寫是比較清楚,當你看到code-shape, treewalk code generation,馬上就明白他想說什么了,可是中文,呵呵,不說了??赡懿皇菣C器翻譯的,但是翻譯不就是干的咬文嚼字的活嗎?何況是本技術(shù)書。
  •   “當使用基于樹遍歷的代碼生成器時,代碼的不同樹狀表示對寄存器或許有不同的需求?!?br /> 這個很通順,但和原文的意思是不一致的。
    貌似影響寄存器需求的是代碼生成器中的代碼形式策略,而非代碼本身的不同樹狀表示
  •   貌似影響寄存器需求的是代碼生成器中的代碼形式策略,策略的具體表現(xiàn)就是代碼本身的樹狀形態(tài),比如表達式x+y+z, 是用(+ x y z)還是用(+ x (+ y z))還是用(+ (+ x y) z)
  •   code shape指的不是樹形IR本身的形狀,同樣的樹形結(jié)構(gòu)下,也存在對code shape的考慮
  •   這個譯者搞了linux內(nèi)核架構(gòu)又來搞編譯,太全面了,關(guān)鍵是這本編譯書還是偏理論算法的書不是偏實踐的.
      出了立馬買一本,寫上自己的名字讓公司報銷,還可以造福后人的同時讓后人感謝我.
    :-)
  •   買了借我看兩天吧
  •   末問題..
  •   您能把書評也寫到圖靈社區(qū)嗎?或者我也可以給您發(fā)!
  •   還沒看,寫什么評論,英文的電子版我也有,感覺字太小了
  •   ls,看清楚最后一段,是針對英文版在做書評..
  •   有沒有讀過的評價一下,中文版第二版的翻譯如何....
  •   這本書內(nèi)容尚可,但印刷質(zhì)量太差
  •   正在看中文版,對于編譯的書來說,這本書最可貴的在于索引部分,一些現(xiàn)代的編譯優(yōu)化和基本算法都有論文索引,翻譯倒還好,因為編譯的書從來不好讀,沒特別關(guān)注。
  •   這本ark book已經(jīng)和dragon tiger whale并稱四大經(jīng)典了啊……
  •   請問英文版是在哪買的呀?好像還沒有影印版引進,只有亞馬遜的355,買不起啊……
  •   亞馬遜半價的時候買的...不過感覺中文翻譯的也還行
  •   @松倉 買中文的吧,英文的看pdf好了,pdf完美。
 

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

京ICP備13047387號-7