Compile bytecode for dynamic languages, in a virtual machine with the help of this comprehensive and efficient software solution.
- Parrot
- Version :8.1.0
- License :Freeware
- OS :Windows All
- Publisher :Parrot Foundation
Parrot Description
Parrot is a complex piece of software functioning as a virtual machine for running programs written using dynamic languages, such as Perl and Python, providing a better environment than the VMs intended for stating languages. It even offers the possibility of working with multiple languages simultaneously.
The software is capable of executing instructions in four different forms: PIR, PASM, PAST and PBC, each with their own role. As such, PIR (Parrot Intermediate Representation) is supposed to be written by people but generated using compilers.
On the other hand, PASM form input ( an acronym for Parrot Assembly), which is similar to PIR, but differs in that attention needs to be paid to details like register allocation or calling conventions. PAST (short for Parrot Abstract Syntax Tree) enables the virtual machine to work with abstract syntax tree style input, which comes in handy when writing compilers.
These three input form types are converted inside Parrot to PBC (Parrot Bytecode), to a non-readable shape. It can start executing immediately, without requiring an assembly stage, being platform independent.
Parrot supports numerous language implementations in a variety of completion stages, for instance Ruby, Tcl, Lua, Javascript, Python, Scheme, Perl, PHP, APL and a .NET bytecode translator.
Complete with a very detailed help documentation, you can learn to build and test Parrot, and then begin creating programs, as you are also provided with numerous examples.
Among the comprised docs, you can find information about what this virtual machine is capable of, how it is designed, descriptions of various executables and details on how they should be run, and countless other helpful files. However, it is by no means intended for novices, as it will elicit serious background knowledge in the field of programming.