Language Implementation Patterns

书名:Language Implementation PatternsCreateYourOwnDomain-SpecificandGeneralProgrammingLanguages
作者:TerenceParr
译者:
ISBN:9781934356456
出版社:PragmaticBookshelf
出版时间:2010-1-10
格式:epub/mobi/azw3/pdf
页数:374
豆瓣评分: 8.6

书籍简介:

Knowing how to create domain-specific languages (DSLs) can give you a huge productivity boost. Instead of writing code in a general-purpose programming language, you can first build a custom language tailored to make you efficient in a particular domain. The key is understanding the common patterns found across language implementations. "Language Design Patterns" identifies and condenses the most common design patterns, providing sample implementations of each. The pattern implementations use Java, but the patterns themselves are completely general. Some of the implementations use the well-known ANTLR parser generator, so readers will find this book an excellent source of ANTLR examples as well. But this book will benefit anyone interested in implementing languages, regardless of their tool of choice. Other language implementation books focus on compilers, which you rarely need in your daily life. Instead, "Language Design Patterns" shows you patterns you can use for all kinds of language applications. You'll learn to create configuration file readers, data readers, model-driven code generators, source-to-source translators, source analyzers, and interpreters. Each chapter groups related design patterns and, in each pattern, you'll get hands-on experience by building a complete sample implementation. By the time you finish the book, you'll know how to solve most common language implementation problems.

作者简介:

Terence Parr是美国旧金山大学的计算机教授、研究生导师,他一直致力于从事ANTLR项目(antlr.org)和模板引擎(stringtemplate.org)的设计和开发工作。Terence曾担任IBM、洛克希德马丁、NeXT、雷诺汽车等公司的技术顾问,另著有《ANTLR权威指南》。

书友短评:

@ 瓶子 对于编译器前端概念讲解很生动,没有一般教科书式的死板,且内容很新颖(在编译器前端这么个老掉牙的领域),讲了LL(*),主要是实战地解释编码怎么实现…很遗憾没有包含作者在前言中提到的LLVM的内容… @ Rex 被迫阅读。。 不过写的不错 思路清晰 推荐一下 @ qiao 非常优秀,但是还不至于说可以扔掉龙书。本书重在勾勒实现思路与提炼实现模式,但缺乏理论与原理的指导。想单凭这本书来掌握编译技术是不现实的。 @ PC喵鹏桑 所有程序员都在编写领域语言,只是在选择编写领域语言的基础工具不同。Domain language是我在一本讲开发模式书中提到的,现在再回想下果然是涵盖广泛啊。其实所有工作都是在某个领域用某类工具完成某些任务。 @ 徐瑞涛 翻阅评论结论:中文版翻译可读未读完 @ e1vinw 例子是用Java的某py库实现的,列举的样例有点过时,多是修饰语言 @ Squirrel 绝对实用,感觉入门了😃 @ axxxxx 断断续续看完,正如书名所说 「patterns」介绍了一些实现 pattern 以及优缺点,本书例子用的是 java + ANTLR, 逐步介绍了 Lexer, Parser, Semantic Analyze, Interpreter 的实现,总的是来说适合入门了解 @ 徐瑞涛 翻阅评论结论:中文版翻译可读未读完 @ Vivie ANTLR&Stringtemplate的作者写的,越过编译界最难的语义解析及代码优化,真正做到了深入浅出,非常了不起!Start,2015年2月25日。唉,难以接受的结果。Done,2015年6月8日.

书籍目录

  • 图11.2中所示是使用这些引擎的方法,需要给引擎提供输入语言的文法和系列的转换规则。根据文法,引擎从输入内容构造解析樹,然后应用规则到输出。
    —— 引自章节:11.2基于规则的翻译 281
  • 11.3模型驱动的翻译Model-driven Translation在模型驱动翻译器中,一切都要围绕解析器构建的输入模型进行。最简的就是创建AST模型,然后一边对其进行遍历,一边对其进行输出”。它与导译器唯一的区别是在历过程中生成代码,而不是在解析过程中生 AST的优点是可以在生成输出之前进行语义分析。
    —— 引自章节:11.3模型驱动的翻译 283
  • 添加微信公众号:好书天下获取

    添加微信公众号:“好书天下”获取书籍好书天下 » Language Implementation Patterns
    分享到: 更多 (0)

    评论 抢沙发

    评论前必须登录!

     

    添加微信公众号:“好书天下”获取书籍

    添加微信公众号:“好书天下”获取书籍添加微信公众号:“好书天下”获取书籍