Entradas

Mostrando entradas de septiembre, 2019

2.3.6 Estructuras

Imagen
2.3.6 Estructuras

2.3.5 Funciones

Imagen
2.3.5 Funciones ·          Las funciones pueden reducir a en línea, lo que se hace es expandir el código original de la función. ·          Las funciones se descomponen simplificando los parámetros de manera individual al igual que el valor de retorno.

2.3.4 Instrucciones de control

Imagen
2.3.4 Instrucciones de control

2.3.3 Instrucción de asignación

Imagen
2.3.3 Instrucción de asignación Deben quedar expresadas por una expresión sencilla. 

2.3.2 Expresiones

Imagen
2.3.2 Expresiones

2.3.1 Variables y constantes

2.3.1 Variables y constantes • Una constante es un dato numérico o alfanumérico que no cambia durante la ejecución 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 ejecución de un proceso, su contenido puede cambiar durante la ejecución 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.

2.3 Esquema de generación

2.3 Esquema de generación • Los esquemas de generación son las estrategias o acciones que se deberán realizarse y tomarse en cuenta en el momento de generar código intermedio. • Los esquemas de generación dependen de cada lenguaje.

2.2.4 Cuádruplos

2.2.4 Cuádruplos Es una estructura tipo registro con cuatros campos que se llaman: Operador Operando1 Operando2 Resultado Donde operando1, operando2 y resultado  pueden ser constantes, identificadores y variables temporales definidos por el compilador mientras que operador representa una operación arbitraria. Operador Operando1 Operando2 Resultado * C D T1 + B T1 T2 = T2 A EJEMPLO: A := B + C * D

2.2.3 Triplos.

2.2.3 Triplos.  En la historia de los compiladores han sido utilizadas una amplia variedad de representaciones intermedias como lo es la siguiente clase de representación de código intermedio de un árbol de 3 direcciones,2 para los operandos y una para la ubicación del resultado. esta clase incluye un amplio número de representaciones diferentes entre las cuales encontramos cuadruplos y triples. la principal diferencia entre estas notaciones y la notación postfija es que ellos incluyen referencias explicitas para los resultados de los cálculos intermedios, mientras que la notación posfija los resultados son implícitos al representarlos en una pila. §      La diferencia entre triples y cuadruplos es que con los triples es referenciado el valor intermedio hacia el número del triple que lo creo, pero en los cuádruplos requiere que ellos tengan nombres implícitos. §      Los triples tienen una ventaja obvia de ser más consistente, pero...

2.2.2 Código P.

2.2.2 Código P. Generación de Código Intermedió *Después de los análisis sintácticos y semánticos, algunos compiladores generan una representación intermedia explicita del programa fuente. Se puede considerar esta representación intermedia como un programa para una maquina abstracta. Esta representación intermedia debe tener dos propiedades importantes, debe ser fácil de producir y fácil de traducir al programa objeto. *El código intermedió es particularmente utilizado cuando el objetivo de compilador es producir código muy eficiente, ya que para hacerlo así se requiere una cantidad importante del análisis de las propiedades del código objetivo, y esto se facilita mediante el uso del código intermedio. *El código intermedio también puede ser útil al hacer que un compilador sea mas fácilmente re dirigible: si el código intermedio es hasta cierto punto independiente de la maquina objetivo, entonces genera código para una maquina objetivo diferente solo requiere volver a escr...

2.2.1 Notación Polaca

2.2.1 Notación Polaca La notación polaca, también conocida como notación de prefijo o notación prefija, es una forma de notación para la lógica, la aritmética, el álgebra y la computación. Su característica distintiva es que coloca los operadores a la izquierda de sus operandos. Si la aridad de los operadores es fija, el resultado es una sintaxis que carece de paréntesis u otros signos de agrupación, y todavía puede ser analizada sin ambigüedad.  La notación polaca es la originada por un Autómata con pila, en la que los operadores siempre preceden a los operandos sobre los que actúan, y que tiene la ventaja de no necesitar paréntesis: Estándar       Ejemplo 1: 2 * ( 3 + 5 )       Ejemplo 2: 2 * 3 + 5 Polaca       Ejemplo 1: * 2 + 3 5        Ejemplo 2: + * 2 3 5

2.2 Representaciones de código Intermedio

2.2 Representaciones de código Intermedio En el proceso de traducir un programa fuente a código destino, un compilador puede construir una o más representaciones intermedias, las cuales pueden tener una variedad de formas. Los árboles sintácticos son una forma de representación intermedia; por lo general, se utilizan durante el análisis sintáctico y semántico. Después del análisis sintáctico y semántico del programa fuente, muchos compiladores generan un nivel bajo explícito, o una representación intermedia similar al código máquina, que podemos considerar como un programa para una máquina abstracta. Esta representación intermedia debe tener dos propiedades importantes: debe ser fácil de producir y fácil de traducir en la máquina destino. Existe una forma intermedia llamada código de tres direcciones, que consiste en una secuencia de instrucciones similares a ensamblador, con tres operandos por instrucción. Cada operando puede actuar como un registro. La salida del generador...

Unidad II. Notaciones Prefija,Infija y Posfija

 Notaciones Prefija,Infija y Posfija. Forma especial en la que se pueden expresar una expresión matemática en tres formas: Infija, Prefija y Posfija. Prefija: Nos indica que el operador va antes de los operandos sus características principales son: Los operandos conservan el mismo orden que la notación infija equivalente. -No requiere de paréntesis para indicar el orden de precedencia de operadores ya que el es una operación. -Se evalúa de izquierda a derecha hasta que encontrémosle primer operador seguido inmediatamente de un par de operandos. -Se evalúa la expresión binaria y el resultado se cambia como un nuevo operando. Se repite este hasta que nos quede un solo resultado. Notación prefija:  El orden es operador, primer operando, segundo. Infija : Es la forma más común que utilizamos para escribir expresiones matemáticas, estas notaciones se refiere a que el operador esta entre los operandos. La notación infija puede estar completamente par...