В настоящее время Parrot может принимать инструкции для выполнения в четырех формах. PIR (промежуточное представление Parrot) предназначено для написания людьми и генерируется компиляторами. Он скрывает некоторые детали низкого уровня, такие как способ передачи параметров в функции.
PASM (Parrot Assembly) — это уровень ниже PIR — он все еще доступен для чтения / записи человеком и может быть сгенерирован компилятором, но автор должен позаботиться о таких деталях, как соглашения о вызовах и распределение регистров. PAST (абстрактное синтаксическое дерево Parrot) позволяет Parrot принимать ввод в виде абстрактного синтаксического дерева — полезно для тех, кто пишет компиляторы.
Все вышеперечисленные формы ввода автоматически преобразуются внутри Parrot в PBC (байт-код Parrot). Это очень похоже на машинный код, но понимается интерпретатором Parrot.
Он не предназначен для чтения или написания человеком, но, в отличие от других форм, выполнение может начаться немедленно без необходимости этапа сборки. Байт-код Parrot не зависит от платформы.
Набор инструкций
Набор инструкций Parrot включает в себя арифметические и логические операторы, сравнение и переход / переход (для реализации циклов, если … затем конструирует и т. Д.), Поиск и хранение глобальных и лексических переменных, работа с классами и объектами, вызов подпрограмм и методов по с их параметрами ввода / вывода, потоков и многого другого.