Articulo de referencia

Representación intermedia del loro

La representación intermedia de Parrot ( PIR ), anteriormente denominada código intermedio (IMC), es uno de los dos lenguajes ensamblador de la máquina virtual Parrot . El otro ...

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

Si bien Parrot aún está en desarrollo, actualmente se utiliza en muchas funciones diferentes y ha tenido varias versiones.

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 ajuste a las complejidades de Parrot, como las convenciones de llamada.

Abstracciones

PIR proporciona tanto abstracción de tipos como polimorfismo hasta cierto punto. Por ejemplo, el +operador " " se puede usar con int, numo con ambos:

. local int a . local num b a = 1 b = 1.1 . local num c c = a + b

Convenciones de llamadas

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

. sub foo . param int a . param int b . local int tmp tmp = a + b . return ( tmp ) . fin

Cada una de las directivas precedidas por un " ." se expande al código de bytes 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

  • Redacción PIR
  • Ejemplos de PIR