Building Programming Language Interpreters : A bottom-up approach to runtimes, execution, and implementation in C++

個数:

Building Programming Language Interpreters : A bottom-up approach to runtimes, execution, and implementation in C++

  • 【入荷遅延について】
    世界情勢の影響により、海外からお取り寄せとなる洋書・洋古書の入荷が、表示している標準的な納期よりも遅延する場合がございます。
    おそれいりますが、あらかじめご了承くださいますようお願い申し上げます。
  • ◆画像の表紙や帯等は実物とは異なる場合があります。
  • ◆ウェブストアでの洋書販売価格は、弊社店舗等での販売価格とは異なります。
    また、洋書販売価格は、ご注文確定時点での日本円価格となります。
    ご注文確定後に、同じ洋書の販売価格が変動しても、それは反映されません。
  • 製本 Paperback:紙装版/ペーパーバック版/ページ数 372 p.
  • 言語 ENG
  • 商品コード 9781837638079
  • DDC分類 005.45

Full Description

Explore why you might build a new programming language, which aspects influence runtime and language design choices, and how to implement a working first-version interpreter for that language in C++.

Free with your book: DRM-free PDF version + access to Packt's next-gen Reader*

Key Features

Design a domain-specific language to solve focused problems and reduce complexity and bugs
Follow a bottom-up approach, from runtime design to interpreter implementation
Build an interpreter from scratch as a functional, minimum viable product

Book DescriptionDesigning a custom programming language can be the most effective way to solve certain types of problems—especially when precision, safety, or domain-specific expressiveness matters. This book guides you through the full process of designing and implementing your own programming language and interpreter, from language design to execution, using modern C++.
You'll start by exploring when and why building a domain-specific language is worth it, and how to design one to fit a specific problem domain. Along the way, you'll examine real-world interpreter architectures and see how their design decisions affect language behavior, capabilities, and runtime trade-offs.
The book then walks through the entire process of interpreter implementation: defining syntax, building a lexer and parser, designing an abstract syntax tree, generating executable instructions, and implementing a runtime. All examples are in modern C++, with a focus on clean architecture and real-world usability.
By the end, you'll have a fully working interpreter for a domain-specific language designed to handle network protocols—plus the knowledge and tools to design your own programming language from scratch.
*Email sign-up and proof of purchase requiredWhat you will learn

Design a domain-specific language and interpreter from scratch
Write an interpreter that can be embedded into existing environments
Understand how runtime shapes language execution and interpreter design
Reason about language design and runtime trade-offs
Define and implement the execution model of an interpreted language
Implement a lexer, parser, analyzer, and instruction emitter in C++

Who this book is forThis book is tailored for intermediate to advanced software developers, particularly those interested in language design and implementation. It's ideal for programmers seeking to expand their skill set and tackle complex problems efficiently. Professionals working in roles such as software engineers, language designers, or system architects will benefit from the practical insights and hands-on experience provided in the book. Good understanding of C++ programming and basic understanding of language design concepts are recommended to fully grasp the content.

Contents

Table of Contents

Defining the Scope
The Blurred Lines Between Native Code, Virtual Machines, and Interpreters
Instructions, Concurrency, Inputs, and Outputs
Native Types, User Types, and Extension Points
Putting It All Together: Making Trade-Off Decisions
Review of Programming Language Paradigms
Values, Containers, and the Language Meta-model
Lexical Scopes
Putting It All Together and Creating a Coherent Vision
Initialization and Entry Point
Execution Frames, the Stack, and Continuations
Running and Testing Language Operators
Lexing: Turning Text into a Stream of Tokens
Parsing: Turning a Stream of Tokens into a Parse Tree
Analyzing: Turning a Parse Tree into an Abstract Syntax Tree
Generating: Turning an Abstract Syntax Tree into Instructions
Proving That It Works

最近チェックした商品