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.