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 is fundamentally different than 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 has some 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.