Parrot Developer's Guide: PIR
Parrot is a language-neutral virtual machine for dynamic languages such as Ruby, Python, PHP, and Perl. It hosts a powerful suite of compiler tools tailored to dynamic languages and a next generation regular expression engine. Its architecture differs from virtual machines such as the JVM or CLR, with optimizations for dynamic languages, the use of registers instead of stacks, and pervasive continuations used for all flow control.
This book covers Parrot Intermediate Representation (PIR), Parrot's native low-level language. PIR is fundamentally an assembly language, but it adds higher-level features such as operator syntax, syntactic sugar for subroutine and method calls, automatic register allocation, and more friendly conditional syntax. Parrot libraries — including most of Parrot's compiler tools — are often written in PIR. Even so, PIR is more rigid and "close to the machine" than higher-level languages, which makes it a good window into the inner workings of the virtual machine.
All proceeds from the sale of this book fund the Parrot development effort.
Date: June 2009