Sie sind auf Seite 1von 7

INSTUTUTO TECNOL OGICO SUPERIOR DE ALVARADO CAMPUS TLALIXCOYAN

Lenguaje y Automas 2 Unidad 2 Generacin de cdigo intermedio


2.2 Representacin de cdigo intermedio 2.2.1 Notacin polaca

Joaqun E. Rosales Alarcn Ing. Rafael Zamudio Reyes

Representacin de cdigo intermedio


Existen muchas formas de cdigo intermedio, estas notaciones simplifican la traduccin de nuestro cdigo fuente a nuestro cdigo objeto ya que ahorran y acotan smbolos de la tabla de smbolos. Las representaciones que ms se emplean son: * rboles semnticos y grafos a cclicos dirigidos * Cdigo de tres direcciones Cuartetos, Tercetos o Tercetos indirectos.

Una forma de representar el cdigo generado por un compilador es mediante una estructura de tipos arborescente, a la que se denomina rbol semntico a fin de diferenciarlo del rbol sintctico o rbol del anlisis sintctico que representa la estructura gramatical. Por ejemplo, para la representacin de la sentencia: a:=b*c+b*-c, se tiene:

Notacin polaca
La notacin polaca, tambin conocida como notacin de prefijo o notacin prefija, es una forma de notacin para la lgica, la aritmtica, y el algebra. Su caracterstica distintiva es que coloca los operadores a la izquierda de sus operandos.

Aritmtica La expresin para sumar los nmeros uno y dos, en la notacin de prefijo, se escribe "+ 1 2" en vez de "1 + 2". En expresiones mas complejas, los operadores todava preceden sus operandos, pero los operandos pueden ser ellos mismos expresiones no triviales incluyendo sus propios operadores.
Por ejemplo, la expresin que seria escrita en la notacin de infijo convencional como:

(5 - 6) * 7
Puede ser escrito en prefijo como

* (- 5 6) 7
O simplemente *-567

Puesto que los simples operadores aritmticos son todos binarios (por lo menos, en contextos aritmticos), cualquier representacin prefijo de ellos es inequvoca, y poner signos de agrupamiento a la expresin de prefijo es innecesario. En el ejemplo anterior, los parntesis en la versin de infijo eran requeridos. Si los movemos: 5 - (6 * 7) O simplemente los quitamos: 5-6*7 Cambiaria el significado y el resultado de toda la expresin. Sin embargo, la versin correspondiente de prefijo de este segundo calculo seria escrita como: -5*67 El proceso de la substraccin es diferido hasta que ambos operandos de la substraccin se hayan ledo (es decir, 5 y el producto de 6 y 7). Como con cualquier notacin, las expresiones mas interiores son evaluadas primero, pero en la notacin de prefijo este "interioridad" se puede transportar por el orden en vez del agrupamiento.

La notacin polaca es la originada por un Autmata con pila, en la que los operadores siempre preceden a los operandos sobre los que actan, y que tiene la ventaja de no necesitar parntesis: Estndar Ejemplo 1: 2 * (3 + 5) Ejemplo 2: 2 * 3 + 5 Polaca Ejemplo 1: * 2 + 3 5 Ejemplo 2: + * 2 3 5

Das könnte Ihnen auch gefallen