Está en la página 1de 12

CODIGO P

El cdigo P comenz como un cdigo ensamblador objetivo estndar producido por varios
compiladores Pascal en la dcada de 1970 y principios de la de 1980.

Dos compiladores que generaban cdigo P fueron el compilador Pascal-P, en 1973, escrito
por Nori, Ammann, Jensen, Hageli y Jacobi y el compilador Pascal-S, de 1975, escrito ni ms
ni menos que por el creador del lenguaje Pascal, Niklaus Wirth.

Fue diseado para cdigo real para una mquina de pila hipottica la idea era hacer que los
compiladores de Pascal se transportaran fcilmente requiriendo solo que se volviera a
escribir el intrprete de la maquina P para una plataforma, el cdigo P tambin a probado
ser til como cdigo intermedio y sean utilizado varias extensiones y modificaciones del
mismo en diverso compiladores de cdigo nativo, la mayor parte para lenguaje tipo Pascal.
La mquina P est compuesta por una memoria de cdigo, una memoria de datos
no especfica para variables nombre das y una pila para datos temporales, junto
como cualquiera registro que sea necesario para mantener la pila y apoyar la
ejecucin.

En la creacin de cdigo intermedio se utilizan instrucciones simblicas para


representar los datos (variables, parmetros, etc.) que posteriormente se
trasladarn a direcciones reales en el mapa fsico de memoria.

El cdigo P hace referencia a mquinas que utilizan o se auxilian de pilas para


generar cdigo objeto.
2.2.3 TRIPLOS.
Cada instruccin de tres direcciones tiene a lo mucho un operador.

El compilador debe generar un nombre temporal para guardar los


valores calculados por cada instruccin.

Algunas instrucciones de "tres direcciones" tiene menos de tres


operadores.
Con una estructura de tres campos se pueden omitir los
valores temporales, dicha estructura recibe el nombre
de triples y tiene los siguientes campos: op, arg1 y arg2
Se debe tener en cuenta el proceso de asignacin, de declaracin,
expresiones booleanas.
Las expresiones lgicas tambin pueden pasarse a cdigo de tres
direcciones, utilizando para ello expresiones en corto circuito.
Las estructuras de control (if, switch, while, do-while, for) son
realmente etiquetas goto disfrazadas.
Cudruplos
Es una estructura tipo registro con cuatros campos que se llaman: op,
arg1, arg2 y resultado. OP tiene un cdigo intermedio.
Los operadores unarios como x:=-y no utilizan arg2. Generalmente
arg1, arg2 y resultado son valores de tipo puntero y apuntan a una
entrada en la tabla de smbolos.
Esquema de generacin
Los esquemas de generacin son las estrategias o acciones que se debern
realizarse y tomarse en cuenta en el momento de generar cdigo intermedio.

Los esquemas de generacin dependen de cada lenguaje. Tomaremos algunos


esquemas de generacin del lenguaje C.
2.3.1 Variables y constantes.

Las declaraciones de variables y constantes deben separarse de tal manera que


queden las expresiones una por una de manera simple.

Por ejemplo int a,b,c; se descompone a int a; int b; intc; respectivamente.

Una constante es un dato numrico o alfanumrico que no cambia durante la


ejecucin del programa. Ejemplo: pi = 3.1416
Una variable es un espacio en la memoria de la computadora que permite
almacenar temporalmente un dato durante la ejecucin de un proceso, su contenido
puede cambiar durante la ejecucin del programa. Ejemplo: area=pi*radio^2 Las
variables son : el radio, el area y la constate es pi
Las declaraciones de variables y constantes deben separarse de tal
manera que queden las expresiones una por una de manera simple.
Expresiones
En esta funcin recibe una cadena que representa una lnea de cdigo
intermedio y toma las medidas oportunas para que ese cdigo se utilice.
Estas medidas pueden ser escribir la lnea en un fichero adecuado,
almacenar la instruccin en una lista que despus se pasar a otros
mdulos, o cualquier otra que necesitemos en nuestro compilador.

Las expresiones son combinaciones de constantes, variables, smbolos de


operacin, parntesis y nombres de funciones especiales. Por ejemplo: a +
(b + 3) / c Cada expresin toma un valor que se determina tomando los
valores de las variables y constantes implicadas y la ejecucin de las
operaciones indicadas.
Expresiones aritmticas Son aquella donde los operadores que
intervienen en ella son numricos, el resultado es un nmero y los
operadores son aritmticos. Los operadores aritmticos ms
comnmente utilizados son: +, - , * , / y %. Comenzamos el estudio
por las expresiones aritmticas.

También podría gustarte