stringtranslate.com

Representación intermedia del loro

La representación intermedia de Parrot ( PIR ), anteriormente llamada código intermedio (IMC), es uno de los dos lenguajes ensambladores de la máquina virtual de Parrot . El otro es el lenguaje ensamblador de Parrot o PASM. En comparación con PASM, PIR existe en una capa de abstracción ligeramente superior y proporciona registros temporales y registros con nombre, lo que simplifica la generación de código.

Si bien Parrot aún está evolucionando, actualmente se utiliza en muchas capacidades diferentes y ha experimentado varios lanzamientos.

Descripción general

PIR proporciona un conjunto de abstracciones que permiten al programador ignorar ciertas redundancias en el código de bytes de Parrot y escribir rápidamente código que se adhiera a las complejidades de Parrot, como las convenciones de llamada.

Abstracciones

PIR ofrece abstracción de tipos y polimorfismo hasta cierto punto. Por ejemplo, el +operador " " se puede utilizar con int, numo con ambos:

. int local  a . número local b a = 1 b = 1.1 . número local c c = a + b        

Convenciones de llamadas

Las convenciones de llamada en Parrot son complejas, pero toda esa complejidad se puede ocultar mediante el uso de directivas PIR:

. sub  foo . parámetro  int  a . parámetro  int  b . local  int  tmp  tmp = a + b . return ( tmp ) . fin

Cada una de las directivas precedidas por un " ." se expande al bytecode de Parrot requerido, pero no representa directamente ninguna operación fundamental de Parrot.

Ejemplo

El programa Hola Mundo en PIR es

. sub  hola  : main  print  "Hola mundo!\n" . end

Si el programa se guarda como hello.pir , se puede compilar y ejecutar con este comando:parrot hello.pir

Enlaces externos