Parrot - Formato de instrucciones
Parrot actualmente puede aceptar instrucciones para ejecutar en cuatro formas. PIR (Parrot Intermediate Representation) está diseñado para ser escrito por personas y generado por compiladores. Oculta algunos detalles de bajo nivel, como la forma en que los parámetros se pasan a las funciones.
PASM (Parrot Assembly) está un nivel por debajo de PIR: aún es legible / escribible por humanos y puede ser generado por un compilador, pero el autor debe cuidar detalles como convenciones de llamadas y asignación de registros. PAST (Parrot Abstract Syntax Tree) permite a Parrot aceptar una entrada de estilo de árbol de sintaxis abstracta, útil para quienes escriben compiladores.
Todas las formas de entrada anteriores se convierten automáticamente dentro de Parrot a PBC (Parrot Bytecode). Esto es muy parecido al código de máquina, pero el intérprete de Parrot lo entiende.
No está destinado a ser legible o escribible por humanos, pero a diferencia de los otros formularios, la ejecución puede comenzar inmediatamente sin la necesidad de una fase de ensamblaje. El código de bytes de Parrot es independiente de la plataforma.
Conjunto de instrucciones
El conjunto de instrucciones de Parrot incluye operadores aritméticos y lógicos, comparar y bifurcar / saltar (para implementar bucles, si ... luego construye, etc.), encontrar y almacenar variables globales y léxicas, trabajar con clases y objetos, llamar subrutinas y métodos a lo largo de con sus parámetros, E / S, subprocesos y más.