好书推荐 好书速递 排行榜 读书文摘

Language Implementation Patterns

Language Implementation Patterns
作者:Terence Parr
副标题:Create Your Own Domain-Specific and General Programming Languages
出版社:Pragmatic Bookshelf
出版年:2010-01
ISBN:9781934356456
行业:其它
浏览数:83

内容简介

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权威指南》。

......(更多)

目录

......(更多)

读书文摘

11.3模型驱动的翻译 Model-driven Translation 在模型驱动翻译器中,一切都要围绕解析器构建的输入模型进行。最简的就是创建AST模型,然后一边对其进行遍历,一边对其进行输出”。它与导译器唯一的区别是在历过程中生成代码,而不是在解析过程中生 AST的优点是可以在生成输出之前进行语义分析。

图11.2中所示是使用这些引擎的方法,需要给引擎提供输入语言的文法和系列的转换规则。根据文法,引擎从输入内容构造解析樹,然后应用规则到输出。

......(更多)

猜你喜欢

点击查看