Parrot - formato de instruções
Atualmente, o Parrot pode aceitar instruções para executar em quatro formas. PIR (Parrot Intermediate Representation) foi projetado para ser escrito por pessoas e gerado por compiladores. Ele oculta alguns detalhes de baixo nível, como a forma como os parâmetros são passados para as funções.
PASM (Parrot Assembly) está um nível abaixo de PIR - ainda é legível / gravável por humanos e pode ser gerado por um compilador, mas o autor tem que cuidar de detalhes como convenções de chamada e alocação de registro. PAST (Parrot Abstract Syntax Tree) permite que o Parrot aceite uma entrada de estilo de árvore de sintaxe abstrata - útil para quem escreve compiladores.
Todas as formas de entrada acima são automaticamente convertidas dentro do Parrot para PBC (Bytecode do Parrot). É muito parecido com o código de máquina, mas entendido pelo interpretador Parrot.
Não se destina a ser legível ou gravável por humanos, mas ao contrário de outros formulários, a execução pode começar imediatamente sem a necessidade de uma fase de montagem. O bytecode do Parrot é independente de plataforma.
Conjunto de instruções
O conjunto de instruções Parrot inclui operadores aritméticos e lógicos, comparar e desviar / saltar (para implementar loops, se ... então construir, etc.), encontrar e armazenar variáveis globais e lexicais, trabalhar com classes e objetos, chamar sub-rotinas e métodos. com seus parâmetros, I / O, threads e muito mais.