编译原理及实践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年在贝尔实验室做研究工作。主要研究方向是计算机安全、编译器设计、程序设计语言等。