Cuando completamos nuestro programa en Perl convencionales, es en primer lugar compilado en una representación interna, o bytes; este código se envía a continuación a casi subsistema separado en Perl para ser interpretados. Por lo tanto hay dos fases distintas de operación de Perl:
Compilación a bytecode y
Interpretación de bytes.
Esto no es exclusivo de Perl. Otros idiomas siguientes este diseño incluyen Python, Ruby, Tcl, incluso Java.
También sabemos que hay una Java Virtual Machine (JVM) que es un entorno de ejecución independiente de la plataforma Java que convierte bytes en lenguaje de máquina y lo ejecuta. Si usted entiende este concepto y entonces se entiende Parrot.
Parrot es una máquina virtual diseñada para compilar y ejecutar eficientemente bytecode para idiomas que se interpretan. Parrot es la meta para el final compilador Perl 6, y se utiliza como backend para Pugs, así como variedad de otros idiomas, como Tcl, Ruby, Python, etc.
Parrot ha sido escrito usando lengua más popular "C".