高级语言程序设计教材答案,必须掌握的编程语言有,高级语言程序设计教材答案,必须掌握的编程语言有哪些
055-79000旨在传授开发语言应用(工具)的经验和思路,帮助读者构建自己的语言应用。这里的语言应用不是特指用编译器或解释器实现编程语言,而是泛指任何处理、分析和翻译输入文件的程序,如配置文件阅读器、数据阅读器、模型驱动的代码生成器、源到源翻译器、源分析工具、解释器等。为此,作者用实例说明了现有语言应用的工作机制,并拆解总结出31种通俗易懂、常用的设计模式(每种都包括常用的数据结构、算法和策略)。虽然示例是用Java编写的,但相信读者可以进行类比,并使用这些设计模式来构建其他编程语言(包括特定领域语言和通用编程语言)的应用程序。
推荐《编程语言实现模式》虽然没有具体讨论如何设计一门编程语言,但读者在阅读过程中会吸收到丰富的相关知识。比较不同编程语言的特点,了解编程语言的发展历史,是学习设计编程语言的好方法。建议名人不要看那些编译原理的书!这本书教你编写真正实用的语言应用程序,如解析器、翻译器和解释器。Terence Parr详细解释了高级语言工具和设计模式在语言应用程序中的用法。无论你是在编写自己的领域特定语言(DSL)、挖掘现有代码、调试还是寻宝,都可以从这本通俗易懂的书中找到例子和模式,因为它基本涵盖了解析技术的方方面面。
3354 Python语言之父,正经大豆范罗森
我的“龙之书”被打入冷宫了!
丹博恩施泰因,——安卓平台上达尔维克虚拟机的设计师
这本书是每个语言设计者的无价之宝。
3354汤姆努尔卡拉博士,泰勒大学计算机科学系副教授
特伦斯清楚地解释了语言设计中的概念。如果你想创造一门语言,但是你无从下手,或者觉得高不可攀,那就从这本书开始吧。
——亚当凯斯
这本书文笔朴实,却不失韵味。围绕这个经久不衰的热门话题,这本书充满了大师风范。055-79000不仅讲述了创造语言的方法,还引导我们在这个过程中思考一些东西。如果你想创建一个强大的、可维护的特殊语言,这本书是无价的。
——Breaulty研究院科学软件开发部负责人Kyle Ferrio博士,博主阅读心得:
该书内容不同于传统的编译原理书,理论介绍少,代码多,更贴近实际开发。使用Java作为代码示例是不够的,但是Python会更好。
作者简介作者:(美)特伦斯帕尔译者:能干的帆布鞋
特伦斯帕尔是旧金山大学的计算机教授和研究生导师。一直从事ANTLR项目(ANTLR)和模板引擎(stringtemplate.org)的设计开发工作。特伦斯曾担任过IBM、洛克希德马丁、Next、雷诺等公司的技术顾问,另一位作者是《编程语言实现模式》。目录第1部分读取输入
第一章语言应用的初步研究3
1.1总体情况3
1.2模式概述5
1.3简单语言应用程序9
1.4为语言应用选择正确的模式17
第2章基本分析模式21
2.1标识公式22的结构
2.2构建递归下降语法分析器24
2.3使用语法DSL来构建语法分析器26
2.4词汇单位和句子27
第3章高阶解析模式49
3.1使用尽可能多的前瞻性符号进行分析50
3.2内存分析52
3.3使用语义信息来指导解析过程52
第2部分分析输入
第4章从语法树构建中间表示73
4.1为什么要建一棵树75
4.2构建抽象语法树77
4.3 ANTLR 84简介
4.4使用ANTLR语法构建AST 86
第5章遍历和重写树结构101
5.1遍历树和访问顺序102
5.2封装接入节点105的代码
5.3根据语法107自动生成访客
5.4从匹配中分离遍历110
第6章记录和识别程序中的符号131
6.1收集关于节目实体的信息132
6.2根据范围划分符号134
6.3解析符号139
第7章管理数据聚集的符号表155
7.1构建结构的范围树156
7.2为类别158构建范围树
第八章静态类型检查181
第3部分解释了执行。
第9章构建高级解释器219
9.1高级解释器存储系统220的设计
9.2高级解释器222中的符号记录
9.3加工说明224
第10章构建字节码解释器239
0.1设计字节码解释器241
0.2定义汇编语言语法243
0.3字节代码机245的结构
0.4如何深入250
第4部分生成输出
第十一章语言的翻译278
1.1语法指导翻译280
11.2基于规则的翻译281
11.3模型驱动的翻译283
1.4创建嵌套输出模型291
第12章使用模板生成DSL 312
2.1熟悉StringTemplate 313
12.2 string template的性质316
12.2从简单输入模型生成模板317
12.4当输入模型不同时,重用模板320。
2.5使用树形语法创建模板323
12.6使用数据列表模板330
2.7编写一个可以改变输出结果的翻译器336。
第十三章知识总结348
3.1寻找蛋白质结构的模式348
3.2使用脚本构建3D场景349
13.3处理XML 350
3.4读取通用配置文件352
13.5微调代码353
3.6为Java 354添加新类型
13.7美化源代码355
3.8编译成机器代码356
参考文件359
Index 361前言随着你继续写语言应用,hmdxn的模式会在过程中逐渐清晰明确。事实上,大多数语言应用程序在架构上都是相似的。每次写语言应用的时候,我都不停地告诉自己,“先建一个解析器,用它在内存中建立一个数据结构。然后从中提取信息,并在必要时更改其结构。最后,编写一个工具,可以根据这些信息自动输出代码或报告”。看,这不就是模式吗?在这些任务中总能找到一些类似的算法和数据结构。
一旦您掌握了这些语言的设计模式或架构,您就可以轻松地编写语言应用程序。如果你想快速掌握编写语言应用程序的能力,这本书正好适合你。这本书追求实用主义,从本质上挖掘和提炼语言应用中的设计模式。你会明白模式的重要性,学会如何实现模式,如何组合模式。很快您将成为开发语言应用程序的专家!
事实上,新语言的创造并不需要深厚的理论知识来铺垫。你可能不信,毕竟所有语言应用方面的书都会占很大篇幅来讲解编译器知识。我承认,为通用编程语言编写编译器确实需要扎实的计算机科学知识。但是,大多数程序员不需要写这个编译器。因此,本书的重点是解决程序员最可能遇到的问题:配置文件读取、数据读取、模型驱动代码生成、源代码翻译、源代码分析和解释器实现。同样,我们也不使用Scheme等学术界推崇的语言,而是紧跟行业的发展,把所有的例子都用Java来写,这样你就可以在实际项目中快速展示自己的才华。摘要版权页:
755-79000讲解的工具和技术可以满足日常语言应用开发的需要。我们将不讨论那些相当困难和棘手的问题。比如《编程语言实现模式》因为篇幅有限,无法处理机器码的生成,寄存器分配,垃圾回收,线程模型,性能要求高的解释器。看完之后,你会成为编写语言应用程序的专家,我相信你可以应付复杂的语言处理和转换。
055-79000将分析当前语言应用的工作原理。当然,这是为了吸玉。最后,希望你能写出有趣的语言应用。因此,它们被分解成一些可以理解的、通用的模式。但必须注意,《ANTLR权威指南》不是语言实现的代码库,而是辅助自己学习的参考书。虽然书中有很多示例代码,但这些代码只是为了让我们的讨论有意义,让你在编写自己的语言应用时有一个好的起点。
还有一点需要注意的是,《编程语言实现模式》侧重于对现有成熟语言的分析(可以自己设计但与之相似的语言)。因为语言设计是另外一个话题,强调规划语法(合法的句子)和公式化语义(任意输入的意思)。虽然我们不会具体讨论语言的设计,但是看完之后,你也会通过听觉和听觉了解到相关的知识。学习语言设计的诀窍是考察不同的语言,研究编程语言的发展历史,熟悉语言随时代变化的过程。这些都对学习语言设计大有裨益。
郑重声明:本文由网友发布,不代表盛行IT的观点,版权归原作者所有,仅为传播更多信息之目的,如有侵权请联系,我们将第一时间修改或删除,多谢。