Writing A Compiler In Go
Free Shipping Included! Writing A Compiler In Go by Thorsten Ball at EMS Linux. Hurry! Limited time offer. Offer valid only while supplies last. This is the sequel to Writing An Interpreter In Go. We're picking up right where we left off and write a compiler and a virtual machine for Monkey.
This is the sequel to Writing An Interpreter In Go. We're picking up right where we left off and write a compiler and a virtual machine for Monkey. Runnable and tested code front and center, built from the ground up, step by step — just like before. But this time, we're going to define bytecode, compile Monkey and execute it in our very own virtual machine. It's the next step in Monkey's evolution. It's the sequel to … a programming language Writing A Compiler In Go is the sequel to Writing An Interpreter In Go. It starts right where the first one stopped, with a fully-working, fully-tested Monkey interpreter in hand, connecting both books seamlessly, ready to build a compiler and a virtual machine for Monkey. In this book, we use the codebase (included in the book!) from the first part and extend it. We take the lexer, the parser, the AST, the REPL and the object system and use them to build a new, faster implementation of Monkey, right next to the tree-walking evaluator we built in the first book. The approach is unchanged, too. Working, tested code is the focus, we build everything from scratch, do baby steps, write tests firsts, use no 3rd-party-libraries and see and understand how all the pieces fit together. It's a continuation in prose and in code. Do you need to read the first part before this one? If you're okay with treating the code from the first book as black box, then no. But that's not what these books are about; they're about opening up black boxes, looking inside and shining a light. You'll have the best understanding of where we're going in this book, if you know where we started. Learn how to write a compiler and a virtual machine Our main goal in in this book is to evolve Monkey. We change its architecture and turn it into a bytecode compiler and virtual machine. We'll take the lexer, the parser, the AST and the object system we wrote in the first book and use them to build our own Monkey compiler and virtual machine … from scratch! We'll build them side-by-side so that we'll always have a running system we can steadily evolve. What we end up with is not only much closer to the programming languages we use every day, giving us a better understanding of how they work, but also 3x faster. And that's without explicitly aiming for performance. Here's what we'll do: - We define our own bytecode instructions, specifying their operands and their encoding. Along the way, we also build a mini-disassembler for them. - We write a compiler that takes in a Monkey AST and turns it into bytecode by emitting instructions - At the same time we build a stack-based virtual machine that executes the bytecode in its main loop We'll learn a lot about computers, how they work, what machine code and opcodes are, what the stack is and how to work with stack pointers and frame pointers, what it means to define a calling convention, and much more. We also - build a symbol table and a constant pool - do stack arithmetic - generate jump instructions - build frames into our VM to execute functions with local bindings and arguments! - add built-in functions to the VM - get real closures working in the virtual machine and learn why closure-compilation is so tricky
|Item Size:||0.77 x 10 x 10 inches|
|Package Weight:||1.63 pounds|
|Package Size:||7 x 0.77 x 0.77 inches|
Have questions about this item, or would like to inquire about a custom or bulk order?
If you have any questions about this product by Thorsten Ball, contact us by completing and submitting the form below. If you are looking for a specif part number, please include it with your message.
Related Best Sellers
ean: 9781138308534, isbn: 1138308536,
How to Use SPSS® is designed with the novice computer user in mind and for people who have no previous experience of using SPSS. Each chapter is divided into short sections that describe the statistic being used, important underlying assumptions, an...
mpn: 09606133, ean: 9780262510875, isbn: 0262510871,
Structure and Interpretation of Computer Programs has had a dramatic impact on computer science curricula over the past decade. This long-awaited revision contains changes throughout the text. There are new implementations of most of the major progra...
sku: 9780137081073, mpn: 9780137081073, ean: 9780137081073, isbn: 0137081073,
Programmers who endure and succeed amidst swirling uncertainty and nonstop pressure share a common attribute: They care deeply about the practice of creating software. They treat it as a craft. They are professionals. In The Clean Coder: A Code o...
By Addison-Wesley Professional
ean: 9780134546926, isbn: 013454692X,
Statistical Computation for Programmers, Scientists, Quants, Excel Users, and Other Professionals Using the open source R language, you can build powerful statistical models to answer many of your most challenging questions. R has traditionally b...
By Addison-Wesley Professional
mpn: 42375234, ean: 9780134190440, isbn: 0134190440,
The Go Programming Language is the authoritative resource for any programmer who wants to learn Go. It shows how to write clear and idiomatic Go to solve real-world problems. The book does not assume prior knowledge of Go nor experience with any sp...
By Adobe Press
mpn: 9780134663449, ean: 9780134663449, isbn: 0134663446,
Creative professionals seeking the fastest, easiest, most comprehensive way to learn Adobe Illustrator CC (2017 release) choose Adobe Illustrator CC Classroom in a Book (2017 release) from the best-selling series of hands-on software training workboo...
By Addison-Wesley Professional
mpn: 978-0-2016-1622-4, ean: 9780201616224, isbn: 020161622X,
By Yaknyam Press
mpn: 43239-22129, ean: 9781732102200, isbn: 1732102201,
This book addresses the topic of software design: how to decompose complex software systems into modules (such as classes and methods) that can be implemented relatively independently. The book first introduces the fundamental problem in software des...
By O'Reilly Media
ean: 9781491919538, isbn: 1491919531,
Want to learn the Python language without slogging your way through how-to manuals? With Head First Python, you’ll quickly grasp Python’s fundamentals, working with the built-in data structures and functions. Then you’ll move on to building you...
mpn: 36872801, ean: 9781449340377, isbn: 1449340377,
If you need help writing programs in Python 3, or want to update older Python 2 code, this book is just the ticket. Packed with practical recipes written and tested with Python 3.3, this unique cookbook is for experienced Python programmers who want ...