Střední zastoupení papouška - Parrot intermediate representation
The Střední zastoupení papouška (PIR), dříve nazývaný Intermediate code (IMC), je jedním ze dvou montážní jazyky pro Virtuální stroj papouška. Druhý je Montážní jazyk papouška nebo PASM. Ve srovnání s PASM existuje PIR o něco vyšší abstrakční vrstva, a poskytuje dočasné registry a pojmenované registry, což zjednodušuje generování kódu.
Zatímco Parrot se stále vyvíjí, v současné době se používá v mnoha různých kapacitách a prošel několika vydáními.
Přehled
PIR poskytuje sadu abstrakcí, které umožňují programátorovi ignorovat určitá nadbytečnost v Parrot bytecode a rychle napsat kód, který dodržuje složitost Parrot, jako jsou konvence volání.
Abstrakce
PIR poskytuje abstrakci typů i polymorfismus do určité míry. Například „+
"operátor lze použít s int
, počet
nebo oboje:
.místní int A .místní počet b A = 1 b = 1.1 .místní počet C C = A + b
Konvence volání
Konvence volání v Parrot jsou složité, ale všechny tyto složitosti lze skrýt pomocí směrnic PIR:
.sub foo .param int A .param int b .místní int tmp tmp = A + b .vrátit se (tmp) .konec
Každá směrnice má předponu „.
"expanduje na požadovaný bytecode Parrot, ale nepředstavuje přímo žádnou základní operaci Parrot.
Příklad
The ahoj světový program v PIR je
.sub Ahoj :hlavní tisk "Ahoj světe!" .konec
Pokud je program uložen jako ahoj.pir, to může být sestaven a popraven s tímto příkazem: papoušek ahoj.pir