Beruflich Dokumente
Kultur Dokumente
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