Parrot Virtual Machine
The Parrot Virtual Machine is a runtime engine for use with dynamic programming languages such as Perl, Python, Ruby and PHP. While originally designed for use with version 6 of the Perl programming language, it has expanded to a general-purpose dynamic virtual machine to host multiple high-level languages.
Parrot has been designed, in part, for ease of use by programmers and language designers. A series of tools called the Parrot Compiler Tools (PCT) have been designed that facilitate the creation of new languages for Parrot. These tools aide in creating new dynamic programming languages or implementing old languages on Parrot.
This book is going to introduce the reader to the Parrot Virtual Machine and the Parrot programming environment. We will discuss the creation of programs in the PIR and PASM languages and we will also discuss how to create new languages that compile to the Parrot platform. We will also talk about Parrot itself, and introduce the reader to Parrot's internals, which are released under an open source license and can be modified by able volunteers.
Table of Contents
Parrot has had several releases since this book was first drafted, and much of the material is now out-of-date. Be warned that many chapters may have incorrect information. The best place to find accurate documentation is the http://www.parrot.org website. |
Introduction To Parrot
Programming For Parrot
- Parrot Programming
- Parrot Assembly Language
- Parrot Intermediate Representation
- Polymorphic Containers (PMCs)
- Multithreading and Concurrency
- Exception Handling
- Classes and Objects
- The Parrot Debugger
Parrot Compiler Tools
- Parrot Compiler Tools
- Parrot Grammar Engine
- Not Quite Perl
- Optables and Expressions
- Advanced PGE
- Building A Compiler
- HLL Interoperation
Parrot Hacking
- Parrot Internals
- IMCC and PIRC
- Run Core and Opcodes
- Memory and Garbage Collection
- PMC System
- String System
- Exception Subsystem
- IO Subsystem
- JIT and NCI
- Parrot Embedding
- Extensions
- Packfiles
Appendices
- PIR Reference
- PASM Reference
- PAST Node Reference
- Languages on Parrot
- HLLCompiler Class
- Command Line Options
- Built-In PMCs
- Bytecode File Format
- VTABLE List