14
Your Cart

Written by the creator of the Unicon programming language, this book will show you how to implement programming languages to reduce the time and cost of creating applications for new or specialized areas of computing

Key Features

  • Reduce development time and solve pain points in your application domain by building a custom programming language
  • Learn how to create parsers, code generators, file readers, analyzers, and interpreters
  • Create an alternative to frameworks and libraries to solve domain-specific problems

Book Description

The need for different types of computer languages is growing rapidly and developers prefer creating domain-specific languages for solving specific application domain problems. Building your own programming language has its advantages. It can be your antidote to the ever-increasing size and complexity of software.

In this book, you’ll start with implementing the frontend of a compiler for your language, including a lexical analyzer and parser. The book covers a series of traversals of syntax trees, culminating with code generation for a bytecode virtual machine. Moving ahead, you’ll learn how domain-specific language features are often best represented by operators and functions that are built into the language, rather than library functions. We’ll conclude with how to implement garbage collection, including reference counting and mark-and-sweep garbage collection. Throughout the book, Dr. Jeffery weaves in his experience of building the Unicon programming language to give better context to the concepts where relevant examples are provided in both Unicon and Java so that you can follow the code of your choice of either a very high-level language with advanced features, or a mainstream language.

By the end of this book, you’ll be able to build and deploy your own domain-specific languages, capable of compiling and running programs.

What you will learn

  • Perform requirements analysis for the new language and design language syntax and semantics
  • Write lexical and context-free grammar rules for common expressions and control structures
  • Develop a scanner that reads source code and generate a parser that checks syntax
  • Build key data structures in a compiler and use your compiler to build a syntax-coloring code editor
  • Implement a bytecode interpreter and run bytecode generated by your compiler
  • Write tree traversals that insert information into the syntax tree
  • Implement garbage collection in your language

Who this book is for

This book is for software developers interested in the idea of inventing their own language or developing a domain-specific language. Computer science students taking compiler construction courses will also find this book highly useful as a practical guide to language implementation to supplement more theoretical textbooks. Intermediate-level knowledge and experience working with a high-level language such as Java or the C++ language are expected to help you get the most out of this book.

Table of Contents

  1. Why Build Another Programming Language
  2. Programming Language Design
  3. Scanning Source Code
  4. Parsing
  5. Syntax Trees
  6. Symbol Tables
  7. Checking Base Types
  8. Checking Types on Arrays, Method Calls, and Structure Accesses
  9. Intermediate Code Generation
  10. Syntax Cloning in an IDE
  11. Bytecode Interpreters
  12. Generating Bytecode
  13. Native Code Generation
  14. Implementing Operators and Built-In Functions
  15. Domain Control Structures
  16. Garbage Collection
  17. Final Thoughts
  18. Appendix A – Unicon Essentials

8 reviews for Build Your Own Programming Language: A programmer’s guide to designing compilers, interpreters, and DSLs for solving modern computing problems

  1. Sudarshan Gaikaiwari
    March 13, 2024
    Two semesters worth of compiler implementation
    Knowing how compilers work is critical for all software engineers. This book has all the information that you would learn at a research university. It...More
    Knowing how compilers work is critical for all software engineers. This book has all the information that you would learn at a research university. It also includes an implementation of a complete compiler. This allows the reader to have access to an implementation to modify the code and experiment. Highly recommended for anyone interested in learning more about compilers
    Helpful? 0 0
    saba shabir
    September 29, 2022
    Very Good
    Helped me get a A in my exams
    Helpful? 0 0
    Kenneth R. Walker
    March 21, 2022
    Excellent resource
    The book explains compiler writing in an elegant manner. Code examples accommodate the content exceptionally. Excellent place to start learning how ...More
    The book explains compiler writing in an elegant manner. Code examples accommodate the content exceptionally. Excellent place to start learning how to write a programming language.
    Helpful? 0 0
    Phillip
    February 11, 2022
    More than a compiler book!
    Build Your Own Programming Language: beyond its detailed and thoughtful discussion of how to build compilers, this book demonstrates and evaluates the...More
    Build Your Own Programming Language: beyond its detailed and thoughtful discussion of how to build compilers, this book demonstrates and evaluates the tools needed to construct a computer language. Simultaneously evaluating Unicon and Java -- both their advantages and sometimes awkwardnesses -- the book gives guidance on strategies and skills necessary to handle common problems encountered in advanced programming tasks.
    Helpful? 0 0
    Greg Jeffery
    February 6, 2022
    Excellent textbook for a Compilers course.
    I’m still reading through the book but I believe this would be a very good compliment textbook for a Compilers class.
    Helpful? 0 0
    David Gamey
    January 6, 2022
    Practical how-to advice on building programming languages with code examples, tools, and videos
    Build Your Own Programming Language presents practical hands-on advice, sample code respositories, and videos taking you step by step through the proc...More
    Build Your Own Programming Language presents practical hands-on advice, sample code respositories, and videos taking you step by step through the process. It covers everything from motivation, design, scanning, parasing, tools, IDEs, bytecode and native code generation, memory allocation and management, and runtime support. It shows you how by implementing a Java subset, called Jzero, using both Java and Unicon. Great book for those looking to build or just understand.
    Helpful? 0 0
    David Gamey
    December 31, 2021
    Practical how-to advice on building programming languages with code examples, tools, and videos
    Build Your Own Programming Language presents practical hands-on advice, sample code respositories, and videos taking you step by step through the proc...More
    Build Your Own Programming Language presents practical hands-on advice, sample code respositories, and videos taking you step by step through the process. It covers everything from motivation, design, scanning, parasing, tools, IDEs, bytecode and native code generation, memory allocation and management, and runtime support. It shows you how by implementing a Java subset, called Jzero, using both Java and Unicon. Great book for those looking to build or just understand.
    Helpful? 0 0
    Tiny
    December 31, 2021
    Valuable skills for detailed outcomes
    Have you ever been working on a project and realize your programming language doesn’t reach desired goals? Have you ever thought your particular GitH...More
    Have you ever been working on a project and realize your programming language doesn’t reach desired goals? Have you ever thought your particular GitHub project requires a different approach? In this case, Jeffery delivers exactly the right book for you in exhausting detail. After deciding he was unhappy that one of his favorite languages was no longer support, he explores how to build your own language, from basic architecture and requirements, through parsing, bytecode, and interaction with hardware to maximize what you want from your programming language.

    The first section builds the architecture, constructs the syntax tree, establishes commands, and explores the basic parameters from UFlex, JFlex and JZero. Also included is an excellent section on working with regex to set up key rules. The second section then moves into how to make commands work through your syntax tree, constructing the traversal, building cases and methods, and making use of unique libraries to improve actions. As a bonus, Jeffrey includes an excellent section on building, coloring and parsing your own IDE.

    Finally, the book explores bytecode interpreters, taking your language down to machine code to make sure the interpretation is correct. This expands in building operators within Unicon, the language Jeffrey chooses to improve and builds domain control structures to scan and render graphics for your applications. Not neglected is the ability to remove the garbage, find those areas no longer needed, cleaning data and focus on maximizing the memory storage you need for operations. The book also includes an excellent appendix on Unicon.

    A great book, detailed and extensive. If your language is falling behind, or your favorite tools are no longer supported, this will get you where you need to be. I make sure to chunk a good number of hours once you start, as none of these options are simple. Though starting with the basics, expect to spend a good deal of time working with your architecture and syntax to make it run correctly. Maybe, if you spend the right amount of time, your language can be the next Go, Ruby or another format the next generation of programmers needs to succeed.
    Helpful? 0 0
Add a review

Your email address will not be published. Required fields are marked *

X

Frequently bought with Learn Python 3 the Hard Way: A Very Simple Introduction to the Terrifyingly Beautiful World of Computers and Code (Zed Shaw's Hard Way Series)


AI-Assisted Programming: Better Planning, Coding, Testing, and Deployment Original price was: $59.99.Current price is: $19.99.
Learn AI-Assisted Python Programming with GitHub Copilot and ChatGPT Original price was: $49.99.Current price is: $19.99.
Artificial Intelligence Programming with Python: From Zero to Hero Original price was: $49.99.Current price is: $19.99.
Artificial Intelligence in Finance: A Python-Based Guide Original price was: $59.99.Current price is: $19.99.
Competitive Programming in Python Original price was: $59.99.Current price is: $19.99.