

Desertcart purchases this item on your behalf and handles shipping, customs, and support to Bolivia.
Learn to design your own programming language in a hands-on way by building compilers, using preprocessors, transpilers, and more, in this fully-refreshed second edition, written by the creator of the Unicon programming language. Purchase of the print or Kindle book includes a free PDF eBook Key Features - Takes a hands-on approach; learn by building the Jzero language, a subset of Java, with example code shown in both the Java and Unicon languages - Learn how to create parsers, code generators, scanners, and interpreters - Target bytecode, native code, and preprocess or transpile code into a high-level language Book Description There are many reasons to build a programming language: out of necessity, as a learning exercise, or just for fun. Whatever your reasons, this book gives you the tools to succeed. You'll build the frontend of a compiler for your language and generate a lexical analyzer and parser using Lex and YACC tools. Then you'll explore a series of syntax tree traversals before looking at code generation for a bytecode virtual machine or native code. In this edition, a new chapter has been added to assist you in comprehending the nuances and distinctions between preprocessors and transpilers. Code examples have been modernized, expanded, and rigorously tested, and all content has undergone thorough refreshing. You'll learn to implement code generation techniques using practical examples, including the Unicon Preprocessor and transpiling Jzero code to Unicon. You'll move to domain-specific language features and learn to create them as built-in operators and functions. You'll also cover garbage collection. Dr. Jeffery's experiences building the Unicon language are used to add context to the concepts, and relevant examples are provided in both Unicon and Java so that you can follow along in your language of choice. By the end of this book, you'll be able to build and deploy your own domain-specific language. What you will learn - Analyze requirements for your language and design syntax and semantics. - Write grammar rules for common expressions and control structures. - Build a scanner to read source code and generate a parser to check syntax. - Implement syntax-coloring for your code in IDEs like VS Code. - Write tree traversals and insert information into the syntax tree. - Implement a bytecode interpreter and run bytecode from your compiler. - Write native code and run it after assembling and linking using system tools. - Preprocess and transpile code into another high-level 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 design or construction courses will also find this book highly useful as a practical guide to language implementation to supplement more theoretical textbooks. Intermediate or better proficiency in Java or C++ programming languages (or another high-level programming language) is assumed. Review: Introduction to building programming language - This guide is a comprehensive manual on building a programming language from scratch, covering every essential aspect from requirements analysis and syntax design to the implementation of a compiler and runtime environment. It meticulously details the creation of lexical and context-free grammars, the development of scanners and parsers, and the construction of critical compiler data structures. Practical applications, such as a syntax-coloring code editor, are used to illustrate key concepts. Advanced topics like tree traversals, bytecode interpretation, native code generation, and garbage collection are also covered. The book excels in clarity and depth, making complex topics accessible and providing a practical approach to language design and compiler construction. It's an invaluable resource for anyone interested in the inner workings of programming languages, from students to seasoned developers. Review: Best book to learn programming language mechanics - The books covers all the elements you need to learn to build a customised or full fledged programming language. The font is good. Basics explained in intuitive way and with examples and code snippets. Just one minus point. This book weighs 2.1 kgs. It is impossible to hold in hands and read. If you snooze laying on bed reading this book, then you may break your nose.







| Best Sellers Rank | #532,559 in Books ( See Top 100 in Books ) #1,752 in Programming Languages (Books) |
| Customer Reviews | 4.4 out of 5 stars 16 Reviews |
A**T
Introduction to building programming language
This guide is a comprehensive manual on building a programming language from scratch, covering every essential aspect from requirements analysis and syntax design to the implementation of a compiler and runtime environment. It meticulously details the creation of lexical and context-free grammars, the development of scanners and parsers, and the construction of critical compiler data structures. Practical applications, such as a syntax-coloring code editor, are used to illustrate key concepts. Advanced topics like tree traversals, bytecode interpretation, native code generation, and garbage collection are also covered. The book excels in clarity and depth, making complex topics accessible and providing a practical approach to language design and compiler construction. It's an invaluable resource for anyone interested in the inner workings of programming languages, from students to seasoned developers.
B**T
Best book to learn programming language mechanics
The books covers all the elements you need to learn to build a customised or full fledged programming language. The font is good. Basics explained in intuitive way and with examples and code snippets. Just one minus point. This book weighs 2.1 kgs. It is impossible to hold in hands and read. If you snooze laying on bed reading this book, then you may break your nose.
A**Y
Awesome resource to kickstart your programming language journey
This is an indispensable resource for language enthusiasts. Jeffery's clear explanations guide readers through parsing, native code generation, and complex topics like bytecode interpreters and scalability. The book emphasizes optimization techniques, making it invaluable for anyone embarking on language design. Highly recommended for diving deep into the world of programming languages.
C**V
Book Review on Build your own Programming Language
This book equips you with the knowledge and tools needed to turn your language creation dream into reality. With insights from Dr. Jeffery's experience and a choice of Unicon or Java examples, it's a must-read for aspiring language creators. ๐ช๐ต๐ฎ๐ ๐๐ผ๐ ๐๐ถ๐น๐น ๐น๐ฒ๐ฎ๐ฟ๐ป ๐ณ๐ฟ๐ผ๐บ ๐๐ต๐ถ๐: ๐๐ป๐ฎ๐น๐๐๐ถ๐ป๐ด ๐ฟ๐ฒ๐พ๐๐ถ๐ฟ๐ฒ๐บ๐ฒ๐ป๐๐ ๐ฎ๐ป๐ฑ ๐ฑ๐ฒ๐๐ถ๐ด๐ป๐ถ๐ป๐ด ๐๐๐ป๐๐ฎ๐ & ๐๐ฒ๐บ๐ฎ๐ป๐๐ถ๐ฐ๐: Define your language's purpose and shape its structure. ๐๐ฟ๐ฎ๐ณ๐๐ถ๐ป๐ด ๐ด๐ฟ๐ฎ๐บ๐บ๐ฎ๐ฟ ๐ฟ๐๐น๐ฒ๐: Master the expressions and control flow that bring your language to life. ๐๐๐ถ๐น๐ฑ๐ถ๐ป๐ด ๐ฎ ๐๐ฐ๐ฎ๐ป๐ป๐ฒ๐ฟ & ๐ฝ๐ฎ๐ฟ๐๐ฒ๐ฟ: Decode and understand the code written in your language. ๐๐ฑ๐ฑ๐ถ๐ป๐ด ๐๐๐ป๐๐ฎ๐ ๐ฐ๐ผ๐น๐ผ๐ฟ๐ถ๐ป๐ด: Enhance readability and user experience in popular IDEs like VS Code. ๐ฃ๐ฒ๐ฟ๐ณ๐ผ๐ฟ๐บ๐ถ๐ป๐ด ๐๐ฟ๐ฒ๐ฒ ๐๐ฟ๐ฎ๐๐ฒ๐ฟ๐๐ฎ๐น๐: Interact with your language's structure for powerful code manipulation. ๐๐บ๐ฝ๐น๐ฒ๐บ๐ฒ๐ป๐๐ถ๐ป๐ด ๐ฏ๐๐๐ฒ๐ฐ๐ผ๐ฑ๐ฒ ๐ถ๐ป๐๐ฒ๐ฟ๐ฝ๐ฟ๐ฒ๐๐ฎ๐๐ถ๐ผ๐ป ๐ฎ๐ป๐ฑ ๐ป๐ฎ๐๐ถ๐๐ฒ ๐ฐ๐ผ๐ฑ๐ฒ ๐ด๐ฒ๐ป๐ฒ๐ฟ๐ฎ๐๐ถ๐ผ๐ป: Run your language directly on the machine or translate it for wider compatibility. ๐๐ ๐ฝ๐น๐ผ๐ฟ๐ถ๐ป๐ด ๐ฝ๐ฟ๐ฒ๐ฝ๐ฟ๐ผ๐ฐ๐ฒ๐๐๐ผ๐ฟ๐ & ๐๐ฟ๐ฎ๐ป๐๐ฝ๐ถ๐น๐ฒ๐ฟ๐: Transform code between languages for flexibility and efficiency. ๐๐ฟ๐ฒ๐ฎ๐๐ถ๐ป๐ด ๐ฑ๐ผ๐บ๐ฎ๐ถ๐ป-๐๐ฝ๐ฒ๐ฐ๐ถ๐ณ๐ถ๐ฐ ๐น๐ฎ๐ป๐ด๐๐ฎ๐ด๐ฒ๐: Tailor your language to specific problem domains for optimal solutions. ๐๐ต๐ผ๐ผ๐๐ถ๐ป๐ด ๐ฏ๐ฒ๐๐๐ฒ๐ฒ๐ป ๐จ๐ป๐ถ๐ฐ๐ผ๐ป & ๐๐ฎ๐๐ฎ ๐ฐ๐ผ๐ฑ๐ฒ ๐ฒ๐ ๐ฎ๐บ๐ฝ๐น๐ฒ๐: Follow along in your preferred language.
A**A
Great Resource for Learning How to Create a Programming Language!
I've always had an interest to learn how programming languages are made and this book solved that problem. It non only covers just how to build the language, but why! I think most books dont' always cover the why, but just the how. There's a lot of advanced content in here, but it's presented in a way that makes sense. This is a must-buy for those who are interested to build their own programming language!
G**E
A practical guide to designing a computer language
I have always had an interest in computer language creation. There are many languages, both generic (C, Python) and more domain related (R, Kotlin). At the fundamental level I had a copy of Aho/Sethi/Ullman's classic on Compilers. That book majored on Automata and parsing and the theory of compilers. This book will actually get you to the point of developing a new computer language (though why you might it doesn't say). What is fascinating for me is that back in the day I used a (domain specific language) called Icon for processing massive corpora of texts due to its superb text processing features. This book uses Java, and Unicon for a development platform. Unicon is a development of the Icon I used years ago, and Mr Jeffery is part of the team that maintains it, so this as a great excuse to get back into that :-) . This is a great way to learn (Un)Icon. Unlike the Aho.. book reference above this is a more practical book, full of examples and code segments (all on Github of course) and includes sections on transpilers (aka cross-compilers) and even (in 2e) IDEs, which is timely as a lot of languages are now as defined by their normal IDE as by their reserved words and library references - a good example being Python. The key sections are very practical chapters on parsing - and handling different data types, including tree traversal, and code generation (byte-code, intel x64 assembler). If you are interested in languages, and have heard of yacc and wondered how something like that works this is the book. Its also a good book on how processors handle instructions as that is a crucial part of the exercise. At the end of every chapter there are questions to test your understanding, and this is where books like this pay off - else otherwise you just download the code and run it. The references in the back of the book are very comprehensive and cover many generations of compiler/language design. If you know any undergraduate ComSci students then this is a great book covering many fundamentals of the subject but in a practical way. Very much recommended. Full disclosure this copy came from publishers packt
L**B
Uses a parser generator and unicon
I originally bought this book because I thought it would go over the steps for building a programming language from the ground up. However, upon glancing over the parsing section, the book notes that it will be using iyacc and BYACC to generate the parser for you. The language being used is also something called "Unicon" instead of a more widely known language like C, or C++, or Java. Disappointing. Will be returning.
Trustpilot
3 weeks ago
2 weeks ago