logo
АСНИ

Примеры Регистры

Parrot основан на использовании регистров, в отличие от большинства виртуальных машин, основанных на стеке. Parrot предоставляет 4 типа регистров:

До версии 0.3.0 включительно, Parrot обычно предоставлял программам по 32 регистра каждого типа, с возможностью увеличения этого числа до 64. Более поздние версии стали предоставлять неограниченное число регистров; каждая функция может запросить столько регистров, сколько ей требуется.

Parrot Assembly Language

Кроме, непосредственно, байткода в Parrot есть специальный язык низкого уровня Parrot Assembly Language (PASM). Ниже приведен пример небольшой программы на нём:

set I1, 4 # Запись в регистр I1 числа 4

inc I1 # Инкремент I1

add I1, 2 # Добавление к I1 двойки; значение в I1 станет равным 7

set N1, 42.0 # Запись в N1 значения 42.0

dec N1 # Декремент N1, новое значение будет 41.0

sub N1, 2.0 # N1 станет равным 39.0

print I1 # Вывод содержимого I1

print ", " # Вывод строки «, »

print N1 # Вывод значения N1

print "\n" # Вывод символа перевода строки

end