編譯原理及實踐pdf
1. 誰能推薦一些關於VC++和Matlab的原版書
[精華] 提供一些c書下載地址! 需要的朋友來~~
--------------------------------------------------------------------------------
http://www.chinaunix.net 作者:hancang 發表於:2006-03-16 22:35:15
【發表評論】【查看原文】【C/C++討論區】【關閉】
C++編程思想——C++的神奇書籍 13.82 MB
·本書作者根據自己學習C++的親身體會及多年教學經驗,用簡單的例子和簡練的敘述講解C++編程,別具特色。 全書共分十八章,內容涉及對象的演化、數據抽象、隱藏實現、初始化與清除、函數重載與預設參數、輸入輸出流介紹、常量、內聯函數、命...
錢能C++程序設計教程 6.8 MB
·錢能C++程序設計教程雖然是很老的書,不過總算是國產書中質量不錯中的一本,適合C++初學者....
The C++ Standard Library 4.24 MB
·雖然也是老書,但是夠經典,:-) Programming with the C++ Standard Library can certainly be difficult, but Nicolai Josuttiss The...
C++PrimerPlus 4thEdition 4.34 MB
·The fourth edition presents the ANSI C++ standard beginning with a discussion of the essential elements of C++ program...
C++ Primer 中文版(第三版)完全版 3.81 MB
·C++ Primer的第三版結合了Stanley Lippman的實踐經驗和Josée Lajoie對於ANSI/ISO標准C++的深入理解。這本指導書的第三版已經被重新改寫過,以便更加精確地講述標准C++的特性和用法。在本書中,對於C...
Exceptional C++ 351 KB
·本書詳細地討論了如何編寫健壯高效的代碼以及模塊設計技術。本書採用了自問自答的語言風格,它討論了實際程序設計中普遍存在的,又非常不易察覺的問題,並且進行了深刻的分析,提出了具有廣泛意義的解決方案。本書值得每個想成為優秀c++程序員的人閱讀...
Inside the C++ Object Model 2003-12-17 741 KB 378
·Bestselling author Stanley B. Lippmans Inside the C++ Model provides valuable insight into some of the internal...
Secure Programming Cookbook for C and C++ 1.34 MB
·Secure Programming Cookbook for C and C++...
The C++ Programming Language 3rdEdition 3.99 MB
·In this brand-new third edition of The C++ Programming Language, author Bjarne Stroustrup, the creator of C++, ...
C-C++ 最佳編程指南 41.28 MB
·C-C++ 最佳編程指南...
上述書籍下載地址是
http://newzone.vicp.net/softdown/SoftList/Catalog_36_SoftTime_Desc_1.html
深度探索C++對象模型 7.86 MB
高質量C++編程指南 326 KB
C與C++中的異常處理 53 KB
C++ Primer 題解 6.57 MB 0
Effective C++中文版 255 KB
Essential C++中文版(全) 7.88 MB
C++視頻學習(RM) 1200 MB
C++沉思錄 PDF版 7.46 MB
Visual C++ 運行庫參考手冊 8.43 MB
Visual C++ 6.0 資料庫編程大全 6 10.86 MB
Visual C++經典 13.53 MB
Visual C++編程技巧 241 KB 896
Optimizing C++ 370 KB 9976
數據結構 C++ 語言描述 20.88 MB
C++ In Action 1.51 MB
Visual.C++技術內幕 78.57 MB
C++.Primer.3rd.Edition 中文完美版 4.5 MB
上述書籍去
http://www.sron.net裡面找吧~~
:em17: :em17: :em17: :em11: :em11: :em11:
找到好電子書也告訴我啊~~
--------------------------------------------------------------------------------
1.vc++技術內幕第四版 (潘愛民)
ftp://210.32.157.56/課件/c++primer/vc++技術內幕IV(潘愛民).rar
2.C++經典對話系列
中文:http://www.jka77.com/book/cvst_cn.chm
3.MFC Windows 程序設計(第二版)
英文版:http://www.jka77.com/book/progmfc2.chm
中文版:暫無,製作中...
4.Effective C++中文版:
http://dlb.pchome.net/development/reference/effectiveCplus.zip
5.More Effective C++中文版-zhc譯
http://cable.pchome.net/development/reference/MEC0410.zip
6.More Effective C++中文版-候捷譯
http://www.nethovel.com/resources/MoreEffectiveC++(WQ).zip
7.Essential C++中文版(全)-候捷譯
http://www.nethovel.com/resources/Essential%20C++中文版(全).rar
8.深入淺出MFC 2/e
http://218.30.21.125:8084/ebook/programme/mfc2e.zip
9.代碼大全中文版
http://www.delphidevelopers.com/docs/tecsubject/cc/CodeComplet110.zip
11.C++經典對話系列
中文:http://www.jka77.com/book/cvst_cn.chm
12.MFC Windows 程序設計(第二版)
英文版:http://www.jka77.com/book/progmfc2.chm
中文版:暫無,製作中...
13.數據結構 C++ 語言描述(中文版)
http://www.code-labs.com/manual/c_c015.zip
14.java編程思想中文版
ftp://202.118.72.12/pub/doc-book/Java/Java編程思想.zip
15.C++標准庫英文版
ftp://166.111.64.4/incoming/新文件夾/f/The%20C++%20Standard%20Library(with%20TOC).pdf
16.Windows核心編程
英文:http://www.fmdstudio.net/book/prgapps4.zip
17.TCP-IP詳解卷1:協議
ftp://202.204.4.161/學習資料/TCPIP/TCP-IP詳解卷1:協議.pdf
18.TCP-IP詳解卷2:實現
ftp://202.204.4.161/學習資料/TCPIP/TCP-IP詳解卷3:TCP事務協議,HTTP,NNTP.pdf
19.TCP-IP詳解卷3:TCP事務協議
ftp://202.204.4.161/學習資料/TCPIP/TCP-IP詳解卷2:實現.pdf
20.實用演算法的分析與程序設計
ftp://202.204.8.10/[4]%20編程資源/[%20書籍資料%20]/[演算法與數據結構]/實用演算法的分析與程序設計.rar
21.vc++技術內幕第四版 (潘愛民)
ftp://210.32.157.56/課件/c++primer/vc++技術內幕IV(潘愛民).rar
22.C++ Primer英文版:
http://computerstep.w18.net/C/C++%20Primer.zip
23.Effective C++中文版:
http://dlb.pchome.net/development/reference/effectiveCplus.zip
24.More Effective C++中文版-zhc譯
http://cable.pchome.net/development/reference/MEC0410.zip
25.More Effective C++中文版-候捷譯
http://www.nethovel.com/resources/MoreEffectiveC++(WQ).zip
26.Essential C++中文版(全)-候捷譯
http://www.nethovel.com/resources/Essential%20C++中文版(全).rar
27.Programming Windows程式開發設計指南-Petzoldi著 余孟學 譯
中文版:http://www.nethovel.com/resources/ProgrammingWindows_tw.chm
英文版:http://www.nethovel.com/resources/Petzoldi.chm
28.WinAsm32匯編教程- Iczelion
http://www.nethovel.com/resources/winasm.chm
29.Windows 95 程序設計指南-候捷譯
http://www.nethovel.com/resources/win95adg.zip
30.Thinking in C++ 2nd Edition(C++編程思想)
英文版:http://www.nethovel.com/resources/ThinkinginC++.zip
中文版:http://www.dingbing.com/book/thinkc.zip
31.人月神話-中文版
http://www.goodassister.com/book/rysh.pdf
32.The C++ Programming Language英文
http://computerstep.w18.net/C/The%20C++%20Programming%20Language.rar
33.VC技術內幕第五版 http://www.helpwork.com/downdata/book/programming/vc/book/vc++2/invcpp5.chm
34.com技術內幕
http://www.helpwork.com/book/html/user/download.asp?id=1123
35.com+技術內幕
http://www.helpwork.com/book/html/user/download.asp?id=952
36.新編 Windows API參考大全
http://www.4046.com/nnsrc/down/WindowsAPIdq.rar
37.The C programming Language // By Brian W. Kernighan and Dennis M. Ritchie
下載地址:http://www.jka77.com/book/The_C_programmin.chm
38.c語言編程手冊
下載地址:http://www.jka77.com/book/CL.chm
39.Delphi 7高效資料庫程序設計
By 李維
下載地址:http://www.codestudy.net/book/download.asp?id=1163&;sort=5
40.Windows網路編程(第2版)
By Anthony Jones,Jim Ohlund 清華大學出版社
下載地址:英文版:http://www.guxiang.com/epubcn/readings/diannaotushu/500/download/1107/network_prog_for_win_2nd.zip
41.Windows2000編程技術內幕
By Mickey Williams 機械工業出版社
下載地址:ftp://ftp.frontfree.net/Pub/Books/C&;C++/VC/Windows2000編程技術內幕.rar
42.數據倉庫
By W.H.Inmon 清華大學出版社
下載地址1:http://tips.9hao.com/vvbksd/20011120/數據倉庫.zip
下載地址2: ftp://ftp.math.nankai.e.cn/Ebook/China-pub/chinapub_computerscience_multimedia/ComputerScience/%CA%FD%BE%DD%B2%D6%BF%E2/
43.編碼的奧秘
By Charles Petzold 機械工業出版社
下載地址:ftp://ftp.math.nankai.e.cn/Ebook/China-pub/chinapub_computerscience_multimedia/ComputerScience/%B1%E0%C2%EB%B5%C4%B0%C2%C3%D8/
44.編譯原理及實踐
By Louden, K.C 機械工業出版社
下載地址:ftp://ftp.math.nankai.e.cn/Ebook/China-pub/chinapub_computerscience_multimedia/ComputerScience/%B1%E0%D2%EB%D4%AD%C0%ED%BC%B0%CA%B5%BC%F9/
45.Inside C++ Object Model(深度探索C++對象模型)
By Lippman 候捷譯
下載地址:http://www.jka77.com/book/inside-the-cpp-object-model.pdf
46.C++標准程序庫
By Josuttis
下載地址1:http://www.codestudy.net/book/download.asp?id=1205&;sort=5
下載地址2: ftp://ftp.math.nankai.e.cn/Ebook/C_C++/The Cpp Standard Library.pdf
47.STL源碼剖析
By 候捷
下載地址:ftp://ftp.math.nankai.e.cn/Ebook/C_C++/STL源碼剖析--侯捷.pdf
48.C++批判(第三版) -看看C++的壞話!
By I don't know
下載地址:http://www.jka77.com/book/CPPPP.pdf
49.程序設計實踐
下載地址:ftp://ftp.math.nankai.e.cn/Ebook/China-pub/chinapub_computerscience_multimedia/%B3%CC%D0%F2%C9%E8%BC%C6%CA%B5%BC%F9/
50.c++沉思錄
By Andrew Koenig Barbara Moo 人民郵電出版社
下載地址:http://www.codestudy.net/book/download.asp?id=1261&;sort=5
51.C++Builder4技術內幕 (這本書俺不知道好不好)
By I don't Know
下載地址:http://www.codestudy.net/book/download.asp?id=1254&;sort=5
52.下面兩本書一般大家硬碟里都有的吧,而且很老了,但是為了全面,就提上來吧
(1)Windows 95 程式設計指南 - 候捷
下載地址:http://jjhou.csdn.net/win95-a-developers-guide.pdf
(2)Windows 95 系統程式設計大奧秘 - 候捷
下載地址:http://jjhou.csdn.net/windows95-system-programming-secrets.pdf
53. 中國大網路全書·數學
下載地址:ftp://ftp.math.nankai.e.cn/Ebook/中國大網路全書/中國大網路全書·數學.pdf
54、4.0M Bjarne Stroustrup - The C++ Programming Language
http://www.u-n-f.com/books/archive/The%20C++%20Programming%20Language.tar.gz
55、1.0M Richard Stevens - TCP-IP Illustrated
http://www.u-n-f.com/books/archive/TCP-IP%20Illustrated.tar.gz
56、4.5M Randall Hyde - Art Of Assembly
http://www.u-n-f.com/books/archive/Randall%20Hyde%20-%20Art%20Of%20Assembly.tar.gz
57、2.1M M. Abrash - Zen of Graphics Programming
http://www.u-n-f.com/books/archive/M.%20Abrash%20-%20Zen%20of%20Graphics%20Programming.zip
58、249k Kernighan and Ritche - The C Programming Language
http://www.u-n-f.com/books/archive/Kernighan%20and%20Ritchie%20-%20The%20C%20Programming%20Language.zip
59、3.3M Bruce Schneier - Applied Cryptography
http://www.u-n-f.com/books/archive/Bruce%20Schneier%20-%20Applied%20Cryptography.zip
60、php4_Grundlagen_und_Profiwissen
http://www.u-n-f.com/books/archive/lamp/PHP4_Grundlagen_und_Profiwissen.pdf
61.《C++ Builder高級編程技術》
http://www.dingbing.com/book/builder.zip
62.《VC++ 6.0 TLR 模板庫參考手冊》
http://www.easysea.com/diannao/download/prog/c/mbkc.zip
63.《BORLAND C++ BUILDER 實用培訓教程》
http://202.101.232.120/book/openfile.asp?id=223&;filename=BC98_CB526.zip
64.《Delphi高級開發指南》
http://www.pcbookcn.com/s10899book/program/delphi/Delphi_gjkfzn_for3.rar
65.《新編 Windows API參考大全》
ftp://book:[email protected]/pro/delphi/新編Windows_API_參考大全.rar
66.《Delphi深度歷險-附書源碼》
http://www.pcbookcn.com/s10899book/program/delphi/Delphi_sdlx_code.rar
67.《Delphi 7高效資料庫程序設計》
ftp://book:[email protected]/pro/delphi/李維的新書《Delphi7高效資料庫程序設計》.rar
68.《Delphi7開發指南》
ftp://book:[email protected]/pro/delphi/delphi7開發指南.rar
69.《Delphi6集成開發環境》
ftp://book:[email protected]/pro/delphi/Delphi6集成開發環境.rar
70.《Delphi6資料庫編程》
ftp://book:[email protected]/pro/delphi/Delphi6資料庫編程.rar
72.《Delphi5.xADO_MTS_COM+高級程序設計篇》
ftp://book:[email protected]/pro/delphi/Delphi5.xADO_MTS_COM+高級程序設計篇.rar
73.《VISUAL BASIC 編程標准》
http://www.dingbing.com/book/vb.zip
74.《Visual Basic6.0中文版程序員指南》
http://www.easysea.com/diannao/download/prog/vb/zwbc.zip
75.《Visual Basic 6.0 控制項參考手冊》
http://www.easysea.com/diannao/download/prog/vb/kjck.zip
76.《Visual Basic 6.0中文版語言參考手冊》
http://www.easysea.com/diannao/download/prog/vb/zwby.zip
77.《Visual Basic 6.0 開發寶典》
http://www.easysea.com/diannao/download/prog/vb/kfbd.zip
78.《Visual Basic 6.0 實例教程》
http://www.easysea.com/diannao/download/prog/vb/sljc.zip
79.《VB 6.0 中文版實用參考手冊》
http://www.easysea.com/diannao/download/prog/vb/syck.zip
80.《Visual Basic 6開發人員指南》
http://www.easysea.com/diannao/download/prog/vb/kfzn.zip
81.《VB 和 sql Server 編程指南(第五版)》
http://www.easysea.com/diannao/download/prog/vb/bczn.zip
82.《Jbuilder 5 中文幫助》
http://www.pdown.net/download.asp?downid=2&;id=991
83.《JBuilder開發人員指南》
http://youth.dlmu.e.cn/book/list_down.php?bkid=224
84.《Win32的Internet函數說明》
檔案大小: 245248K
http://www.easysea.com/diannao/download/prog/windows/win32int.zip
85.《Visual InterDev 從入門到精通》
http://www.easysea.com/diannao/download/prog/interdev/crmd.wdl
86.《Visual InterDev 6.0 Web 參考手冊 》
http://www.easysea.com/diannao/download/prog/interdev/jsck.zip
87.《Visual InterDev 6.0 Guide 程序員》
http://www.easysea.com/diannao/download/prog/interdev/cxyz.zip
88.《javascript 程序開發手冊》
http://www.cty99.com/Templet/bookdownmore.asp?booktype=script#
89.《JAVA 大全》
http://www.easysea.com/diannao/download/prog/java/cxkf.zip
90.《Visual J++ 6.0 WFC 類庫參考手冊》
http://www.easysea.com/diannao/download/prog/java/lkck.zip
91.《Java聯想(中文)》
http://www.easysea.com/diannao/download/prog/java/lkck.zip
92.《Oracle 8 實用大全》
http://www.easysea.com/diannao/download/prog/oracle/sydq.zip
93.《Microsoft SQL Server 管理員手冊》
http://www.easysea.com/diannao/download/prog/sql/glys.zip
94.《掌握ACCESS開發》
http://www.easysea.com/diannao/download/prog/sql/glys.zip
95.《Oracle Performance Tuning and Optimization》
http://www.oradb.net/book/oracle_pt.zip
96.《Oracle ProC 程序設計》
http://www.oradb.net/book/oracleproc.zip
97.《Oracle8初學者指南》
http://www.easysea.com/diannao/download/prog/oracle/cxzz.zip
98.《RED HAT LINUX 6大全》
http://www.dingbing.com/book/redhatall.zip
99.《RED HAT LINUX 6管理工具》
http://www.dingbing.com/book/redhatman.zip
100.《VC++高級編程》
http://www.easysea.com/diannao/download/prog/c/vcgj.zip
2. 有沒有比龍書通俗易懂的編譯原理書籍
大學課程為什麼要開設編譯原理呢?這門課程關注的是編譯器方面的產生原理和技術問題,似乎和計算機的基礎領域不沾邊,可是編譯原理卻一直作為大學本科的必修課程,同時也成為了研究生入學考試的必考內容。編譯原理及技術從本質上來講就是一個演算法問題而已,當然由於這個問題十分復雜,其解決演算法也相對復雜。我們學的數據結構與演算法分析也是講演算法的,不過講的基礎演算法,換句話說講的是演算法導論,而編譯原理這門課程講的就是比較專註解決一種的演算法了。在20世紀50年代,編譯器的編寫一直被認為是十分困難的事情,第一Fortran的編譯器據說花了18年的時間才完成。在人們嘗試編寫編譯器的同時,誕生了許多跟編譯相關的理論和技術,而這些理論和技術比一個實際的編譯器本身價值更大。就猶如數學家們在解決著名的哥德巴赫猜想一樣,雖然沒有最終解決問題,但是其間誕生不少名著的相關數論。
推薦參考書
雖然編譯理論發展到今天,已經有了比較成熟的部分,但是作為一個大學生來說,要自己寫出一個像TurbocC,Java那樣的編譯器來說還是太難了。不僅寫編譯器困難,學習編譯原理這門課程也比較困難。
第一本書的原名叫《CompilersPrinciples,Techniques,andTools》,另外一個響亮的名字就是龍書。原因是這本書的封面上有條紅色的龍,也因為獗臼樵詒嘁朐?砘?嘴域確實?忻?所以很多國外的學者都直接取名為龍書。最近機械工業出版社已經出版了此書的中文版,名字就叫《編譯原理》。該書出的比較早,大概是在85或86年編寫完成的,作者之一還是著名的貝爾實驗室的科學家。裡面講解的核心編譯原理至今都沒有變過,所以一直到今天,它的價值都非凡。這本書最大的特點就是一開始就通過一個實際的小例子,把編譯原理的大致內容羅列出來,讓很多編譯原理的初學者很快心裡有了個底,也知道為什麼會有這些理論,怎麼運用這些理論。而這一點是我感覺國內的教材缺乏的東西,所以國內的教材都不是寫給願意自學的讀者,總之讓人看了半天,卻不知道裡面的東西有什麼用。
第二本書的原名叫《ModernCompilerDesign》,中文名字叫做《現代編譯程序設計》。該書由人民郵電出版社所出。此書比較關注的是編譯原理的實踐,書中給出了不少的實際程序代碼,還有很多實際的編譯技術問題等等。此書另外一個特點就是其現代而字。在傳統的編譯原理教材中,你是不可能看到如同Java中的垃圾回收等演算法的。因為Java這樣的解釋執行語言是在近幾年才流行起來的東西。如果你想深入學習編譯原理的理論知識,那麼你肯定得看前面那本龍書,如果你想自己動手做一個先進的編譯器,那麼你得看這本《現代編譯程序設計》。
第三本書就是很多國內的編譯原理學者都推薦的那本《編譯原理及實踐》。或許是這本書引入國內比較早吧,我記得我是在高中就買了這本書,不過也是在前段時間才把整本書看完。此書作為入門教程也的確是個不錯的選擇。書中給出的編譯原理講解也相當細致,雖然不如前面的龍書那麼深入,但是很多地方都是點到為止,作為大學本科教學已經是十分深入了。該書的特點就是注重實踐,不過感覺還不如前面那本《現代編譯程序設計》的實踐味道更重。此書的重點還是在原理上的實踐,而非前面那本那樣的技術實踐。《編譯原理及實踐》在講解編譯原理的各個部分的同時,也在逐步實踐一個現代的編譯器TinyC.等你把整本書看完,差不多自己也可以寫一個TinyC了。作者還對Lex和Yacc這兩個常用的編譯相關的工具進行了很詳細的說明,這一點也是很難在國內的教材中看到的。
推薦了這三本教材,都有英文版和中文版的。很多英文好的同學只喜歡看原版的書,不我的感覺是這三本書的翻譯都很不錯,沒有必要特別去買英文版的。理解理論的實質比理解表面的文字更為重要。
編譯原理的實質
幾乎每本編譯原理的教材都是分成詞法分析,語法分析(LL演算法,遞歸下降演算法,LR演算法),語義分析,運行時環境,中間代碼,代碼生成,代碼優化這些部分。其實現在很多編譯原理的教材都是按照85,86出版的那本龍書來安排教學內容的,所以那本龍書的內容格式幾乎成了現在編譯原理教材的定式,包括國內的教材也是如此。一般來說,大學裡面的本科教學是不可能把上面的所有部分都認真講完的,而是比較偏重於前面幾個部分。像代碼優化那部分東西,就像個無底洞一樣,如果要認真講,就是單獨開一個學期的課也不可能講得清楚。所以,一般對於本科生,對詞法分析和語法分析掌握要求就相對要高一點了。
詞法分析相對來說比較簡單。可能是詞法分析程序本身實現起來很簡單吧,很多沒有學過編譯原理的人也同樣可以寫出各種各樣的詞法分析程序。不過編譯原理在講解詞法分析的時候,重點把正則表達式和自動機原理加了進來,然後以一種十分標準的方式來講解詞法分析程序的產生。這樣的做法道理很明顯,就是要讓詞法分析從程序上升到理論的地步。
語法分析部分就比較麻煩一點了。現在一般有兩種語法分析演算法,LL自頂向下演算法和LR自底向上演算法。LL演算法還好說,到了LR演算法的時候,困難就來了。很多自學編譯原理的都是遇到LR演算法的理解成問題後就放棄了自學。其實這些東西都是只要大家理解就可以了,又不是像詞法分析那樣非得自己寫出來才算真正的會。像LR演算法的語法分析器,一般都是用工具Yacc來生成,實踐中完全沒有比較自己來實現。對於LL演算法中特殊的遞歸下降演算法,因為其實踐十分簡單,那麼就應該要求每個學生都能自己寫。當然,現在也有不少好的LL演算法的語法分析器,不過要是換在非C平台,比如Java,Delphi,你不能運用YACC工具了,那麼你就只有自己來寫語法分析器。
等學到詞法分析和語法分析時候,你可能會出現這樣的疑問:詞法分析和語法分析到底有什麼?就從編譯器的角度來講,編譯器需要把程序員寫的源程序轉換成一種方便處理的數據結構(抽象語法樹或語法樹),那麼這個轉換的過程就是通過詞法分析和語法分析的。其實詞法分析並非一開始就被列入編譯器的必備部分,只是我們為了簡化語法分析的過程,就把詞法分析這種繁瑣的工作單獨提取出來,就成了現在的詞法分析部分。除了編譯器部分,在其它地方,詞法分析和語法分析也是有用的。比如我們在DOS,Unix,Linux下輸入命令的時候,程序如何分析你輸入的命令形式,這也是簡單的應用。總之,這兩部分的工作就是把不規則的文本信息轉換成一種比較好分析好處理的數據結構。那麼為什麼編譯原理的教程都最終把要分析的源分析轉換成樹這種數據結構呢?數據結構中有Stack,Line,List這么多數據結構,各自都有各自的特點。但是Tree這種結構有很強的遞歸性,也就是說我們可以把Tree的任何結點Node提取出來後,它依舊是一顆完整的Tree。這一點符合我們現在編譯原理分析的形式語言,比如我們在函數裡面使用函樹,循環中使用循環,條件中使用條件等等,那麼就可以很直觀地表示在Tree這種數據結構上。同樣,我們在執行形式語言的程序的時候也是如此的遞歸性。在編譯原理後面的代碼生成的部分,就會介紹一種堆棧式的中間代碼,我們可以根據分析出來的抽象語法樹,很容易,很機械地運用遞歸遍歷抽象語法樹就可以生成這種指令代碼。而這種代碼其實也被廣泛運用在其它的解釋型語言中。像現在流行的Java,.NET,其底層的位元組碼bytecode,可以說就是這中基於堆棧的指令代碼的。
關於語義分析,語法制導翻譯,類型檢查等等部分,其實都是一種完善前面得到的抽象語法樹的過程。比如說,我們寫C語言程序的時候,都知道,如果把一個浮點數直接賦值給一個整數,就會出現類型不匹配,那麼C語言的編譯器是怎麼知道的呢?就是通過這一步的類型檢查。像C++語言這中支持多態函數的語言,這部分要處理的問題就更多更復雜了。大部編譯原理的教材在這部分都是講解一些比較好的處理策略而已。因為新的問題總是在發生,舊的辦法不見得足夠解決。
本來說,作為一個編譯器,起作用的部分就是用戶輸入的源程序到最終的代碼生成。但是在講解最終代碼生成的時候,又不得不講解機器運行環境等內容。因為如果你不知道機器是怎麼執行最終代碼的,那麼你當然無法知道如何生成合適的最終代碼。這部分內容我自我感覺其意義甚至超過了編譯原理本身。因為它會把一個計算機的程序的運行過程都通通排在你面前,你將來可能不會從事編譯器的開發工作,但是只要是和計算機軟體開發相關的領域,都會涉及到程序的執行過程。運行時環境的講解會讓你更清楚一個計算機程序是怎麼存儲,怎麼裝載,怎麼執行的。關於部分的內容,我強烈建議大家看看龍書上的講解,作者從最基本的存儲組織,存儲分配策略,非局部名字的訪問,參數傳遞,符號表到動態存儲分配(malloc,new)都作了十分詳細的說明。這些東西都是我們編寫平常程序的時候經常要做的事情,但是我們卻少去探求其內部是如何完成。
關於中間代碼生成,代碼生成,代碼優化部分的內容就實在不好說了。國內很多教材到了這部分都會很簡單地走馬觀花講過去,學生聽了也只是作為了解,不知道如何運用。不過這部分內容的東西如果要認真講,單獨開一學期的課程都講不完。在《編譯原理及實踐》的書上,對於這部分的講解就恰到好處。作者主要講解的還是一種以堆棧為基礎的指令代碼,十分通俗易懂,讓人看了後,很容易模仿,自己下來後就可以寫自己的代碼生成。當然,對於其它代碼生成技術,代碼優化技術的講解就十分簡單了。如果要仔細研究代碼生成技術,其實另外還有本叫做《》,那本書現在由機械工業出版社引進的,十分厚重,而且是英文原版。不過這本書我沒有把它列為推薦書給大家,畢竟能把龍書的內容搞清楚,在中國已經就算很不錯的高手了,到那個時候再看這本《》也不遲。代碼優化部分在大學本科教學中還是一個不太重要的部分,就是算是實踐過程中,相信大家也不太運用得到。畢竟,自己做的編譯器能正確生成執行代碼已經很不錯了,還談什麼優化呢?
編譯原理的課程畢竟還只是講解原理的課程,不是專門的編譯技術課程。這兩門課程是有很大的區別的。編譯技術更關注實際的編寫編譯器過程中運用到的技術,而原理的課
3. 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文法
寫評論
評論
收藏
點贊
踩
分享
4. 編譯原理pdf
編譯原理pdf是計算機專業的一門重要專業課。
學習編譯原理pdf的方法:
1、端正認識:編譯原理在靜態文本處理上有廣泛應用,把HTML文件轉化為純文本,利用編譯原理來實現非常簡單。理解編譯原理的實用性,可以提高學習興趣。
2、反復看書:是基本的方法,看書可以讀懂很多內容。
3、結合源碼學習:看懂代碼,才能說真正理解理論。要完全看懂yacc的代碼,工作量很大,同樣要先理解理論。
4、刪繁就簡,避重就輕。對於詞法分析,可避免自動機理論和集合論推演的介紹,直接搬出源碼,降低理解難度,對於語法分析遞歸下降和LL文法及相應的源碼可簡單介紹,而對LR文法理解即可,這樣可短時間內編寫出一個能夠運行的詞法分析器和語法分析器,可以提高學習積極性。
5. 求《編譯原理考研輔導教程》全文免費下載百度網盤資源,謝謝~
《編譯原理考研輔導教程》網路網盤pdf最新全集下載:
鏈接:https://pan..com/s/1d6s5KhHw8Ru3mccYMac7ZA
簡介:本書由在全國知名高校長期從事編譯原理課程教學工作的資深教師編寫,書中匯集了近年來全國眾多知名高校計算機專業研究生入學考試常見考試知識點和經典試題解析,提供了豐富的典型題例與實戰練習,十分難得的是本書包含了國內50多所知名高校的編譯原理研究生入學試題,此外還提供了兩套模擬試題及參考答案。本書是幫助讀者在最短時間內成功考研的「利器」,是考生順利通過考試強有力的保障。本書從實際考試的角度出發,對本課程考試重點、難點問題進行了詳細解析,書中所有題例、名校試題及練習都配有參考解答。
6. 《編譯原理》pdf下載在線閱讀,求百度網盤雲資源
《編譯原理》(陳意雲)電子書網盤下載免費在線閱讀
鏈接:
書名:編譯原理
作者:陳意雲
豆瓣評分:6.2
出版社:高等教育出版社
出版年份:2003-1
頁數:381
內容簡介:
《編譯原理》介紹編譯器構造的一般原理和基本實現方法,主要內容包括詞法分析、語法分析、語義分析、中間代碼生成、代碼優化和目標代碼生成等。除了介紹命令式編程語言的編譯技術外,《編譯原理》還介紹面向對象語言和函數式編程語言的實現技術。《編譯原理》還強調一些相關的理論知識,如形式語言和自動機理論、語法制導的定義和屬性文法、類型論和類型系統等。
《編譯原理》取材廣泛新穎、圖文並茂,注意理論聯系實際。為滿足教師教學和學生自學及考研需求,《編譯原理》作者編寫了配套教學參考書《編譯原理習題精選與解析》(高等教育出版社2005年8月出版),同時提供本課程的電子教案,可從高等教育出版社高等理工教學資源網免費下載。《編譯原理》可作為高等學校計算機科學及相關專業的教材,也可供計算機軟體工程技術人員參考使用。
7. C語言編譯原理
編譯共分為四個階段:預處理階段、編譯階段、匯編階段、鏈接階段。
1、預處理階段:
主要工作是將頭文件插入到所寫的代碼中,生成擴展名為「.i」的文件替換原來的擴展名為「.c」的文件,但是原來的文件仍然保留,只是執行過程中的實際文件發生了改變。(這里所說的替換並不是指原來的文件被刪除)
2、匯編階段:
插入匯編語言程序,將代碼翻譯成匯編語言。編譯器首先要檢查代碼的規范性、是否有語法錯誤等,以確定代碼的實際要做的工作,在檢查無誤後,編譯器把代碼翻譯成匯編語言,同時將擴展名為「.i」的文件翻譯成擴展名為「.s」的文件。
3、編譯階段:
將匯編語言翻譯成機器語言指令,並將指令打包封存成可重定位目標程序的格式,將擴展名為「.s」的文件翻譯成擴展名為「.o」的二進制文件。
4、鏈接階段:
在示例代碼中,改代碼文件調用了標准庫中printf函數。而printf函數的實際存儲位置是一個單獨編譯的目標文件(編譯的結果也是擴展名為「.o」的文件),所以此時主函數調用的時候,需要將該文件(即printf函數所在的編譯文件)與hello world文件整合到一起,此時鏈接器就可以大顯神通了,將兩個文件合並後生成一個可執行目標文件。
8. 求編譯原理習題精選與解析第三版陳意雲pdf
求到了嗎,怎麼聯系啊
9. 想學《編譯原理》請各位推薦些書
我們學校用的是《編譯原理》與《編譯原理與實踐》這兩本書,這兩本書都是國外的教材。我覺得《編譯原理與實踐》這本書不錯,自學應該能看懂,而且代碼比較多,書最後還有整個小型編譯器的源代碼。
編譯不好學,你就慢慢學吧。
下面的資料請作參考:
當代編譯技術三大聖經級別的教材
1.龍書(Dragon book)
書名是Compilers: Principles,Techniques,and Tools
作者是:Alfred V.Aho,Ravi Sethi,Jeffrey D.Ullman
內容簡介
《編譯原理》作者Alfred V.Aho、Ravi Sethi和Jeffrey D.Ullman是世界著名的計算機 科學家,他們在計算機科學理論、資料庫等很多領域都做出了傑出貢獻。《編譯原理》 是編譯領域無可替代的經典著作,被廣大計算機專業人士譽為「龍書」。《編譯原理》一 直被世界各地的著名高等院校和科研機構(如貝爾實驗室、哥倫比亞大學、普 林斯頓大學和斯坦福大學等)廣泛用作本科生和研究生編譯原理與技術課程的 教材,《編譯原理》對我國計算機教育界也具有重大影響。 書中深入討論了編譯器設計的重要主題,包括詞法分析、語法分析、語法制 導分析、類型檢查、運行環境、中間代碼生成、代飢碼茄碼生成、代碼優化等,並在 最後兩章中討論了實現編譯器的一些編程問題和幾個編譯器實例,而且每章都 提供了大量的練習和參考文獻。
與上一版相比,《編譯原理》第二版進行了全面的修訂,涵蓋了編譯器開發方面的最新進展。每章中都提供了大量的系統及參考文獻。《編譯原理》是編譯原理課程方面的經典教材,內容豐富,適合作為高等院校計算機及相關專業本科生及研究生的編譯原理課程的教材,也是廣大技術人員的極佳參考讀物。
作者爛察簡介
Alfred V.Aho,美國歌倫比亞大學教授,美國國家工程院院士,ACM和IEEE會士,曾獲得IEEE的馮·諾伊曼獎。著有多部演算法、數據結構、編譯器、資料庫系統及計算機科學基礎方面的著作。
Monica S.Lam,斯坦福大學計算機科學系教授,曾任Tensilica的首席科學家,也是Moka5的首任CEO。曾經主持SUIF項目,該項目產生了最流行的研究用編譯器之一。
Ravi Sethi,Avaya實驗室總裁,曾任貝爾實驗室高級副總裁TLucent Technologies通信軟體的CTO。他曾在賓夕法尼亞州立大學、亞利桑那州立大學和普林斯頓大學任教,是ACM會士。
Jeffrey D.Ullman斯坦福大學計算機科學系教授和Gradiance CEO,他的研究興趣包括資料庫理論、資料庫集成、數據挖掘和利用信息基礎設施教學等。他是美國國家工程院院士、IEEE會士,獲得過ACM的KarIstrom傑出教育家獎和Knuth獎。
第一版中文版
第二版中文版
2.鯨書(Whale book)
書名是:Advanced Compiler Design and Implementation
作者是:Steven S.Muchnick
內容簡介
本書迎接現代語言和體系結構的挑戰,幫助讀者作好准備,去應對將來要遇到的編譯器設計的問題。
本書涵蓋現代微處理器編譯器的設計和實現方面的所有高級主題。本書從編譯設計基礎領域中的高級問題開始,廣泛而深入地闡述各種重要的代碼優化技術,分析各種優化之間的相對重模侍要關系,以及實現這些優化的最有效方法。
本書特點
●為理解高級編譯器設計的主要問題奠定了基礎
●深入闡述優化問題
●用Sun的SPARC、IBM的POWER和PowerPC、DEC的Alpha以及Intel的Pentium和相關商業編譯 器作為案例,說明編譯器結構、中間代碼設計和各種優化方法
●給出大量定義清晰的關於代碼生成、優化和其他問題的演算法
●介紹由作者設計的以清晰、簡潔的方式描述演算法的語言ICAN (非形式編譯演算法表示)。
本書是經典的編譯器著作,與「龍書」齊名,稱為鯨書。書中針對現代語言和體系結構全面介紹了編譯器設計與實現的高級論題,從編譯器的基礎領域中的高級問題開始,然後深入討論了各種重要的代碼優化。本書專為編譯器專業人士和計算機專業本科生,研究生編寫,在設計和實現高度優化的編譯器以及確定優化的重要性和實現優化的最有效的方法等方面,為讀者提供了非常有價值的指導。
作者簡介
Steven S.Muchnick,曾是計算機科學教授,後作為惠普的PA-RISC和SUN的SPARC兩種計算機體系結構的核心開發成員,將自己的知識和經驗應用於編譯器設計,並擔任這些系統的高級編譯器設計與實現小組的領導人。他在研究和開發方面的雙重經驗,對於指導讀者作出編譯器設計決策極具價值。
3.虎書(Tiger book)
書名是:Modern Compiler Implementation in C /Java /ML,Second Edition
作者是:Andrew W.Appel,with Jens Palsberg
內容簡介
《現代編譯原理——C語言描述(英文版)/圖靈原版計算機科學系列》全面講述了現代編譯器的各個組成部分,包括:詞法分析、語法分析、抽象語法、語義檢查、中間代碼表示、指令選擇、數據流分析、寄存器分配以及運行時系統等。與大多數編譯原理的教材不同,《現代編譯原理——C語言描述(英文版)/圖靈原版計算機科學系列》採用了函數語言和面向對象語言來描述代碼生成和寄存器分配,對於編譯器中各個模塊之間的介面都給出了實際的 C 語言頭文件。 全書分成兩部分,第一部分是編譯的基礎知識,適用於第一門編譯原理課程(一個學期);第二部分是高級主題,包括面向對象語言和函數語言、垃圾收集、循環優化、 SSA(靜態單賦值)形式、循環調度、存儲結構優化等。
本書是一本著名的編譯原理課程的教材。國際上眾多名校均採用本書作為編譯原理課程的教材,包括美國麻省理工學院、加州大學伯克利分校、普林斯頓大學和英國劍橋大學等。本書在國外享有「虎書」的稱號,與有「龍書」之稱的《編譯原理》(Alfred Aho 等編著)齊名。與編譯原理方面的其他名著相比,本書出版時間晚,內容新。 書中專門為學生提供了一個用 C 語言編寫的實習項目,包括前端和後端設計,學生可以在一學期內創建一個功能完整的編譯器。
作者簡介
Andrew W.Appel,美國普林斯頓大學計算機科學系教授,第26屆ACM SIGPLAN-SIGACT程序設計原理年會大會執行主席,1998-1999年在貝爾實驗室做研究工作。主要研究方向是計算機安全、編譯器設計、程序設計語言等。