Want to make creations as awesome as this one?

Transcript

Presentacion interactiva

Jesus Ortiz Martinezlenguajes y Automatas 2ing. Alberto RomoMoreno

1.3 Presentacion interactiva

¿En esta presentacion estaremos hablando de los diferentes tipos de comprobacion asi como sus reglas y especificaciones estos tipos de lenguaje aseguran que un operador o funcion se aplique al numero y tipo de operados correctos solo si es necesario la convercion entre tipos

introduccion

Ahora consideraremos algunas comprobaciones estáticas simples que pueden realizarse durante la construcción de un árbol sintáctico para un programa fuente. En general, tal vez haya que realizar comprobaciones estáticas complejas, para lo cual primero hay que construir una repre- sentación intermedia y después analizarla. Hay una diferencia entre el significado de los identificadores a la izquierda y el lado derecho de una asignación. En cada una de las siguientes asignaciones: i = 5; i = i + 1; el lado derecho especifica un valor entero, mientras que el lado izquierdo especifica en dónde se va a almacenar el valor. Los términos l-value y r-value se refieren a los valores que son apropiados en los lados izquierdo y derecho de una asignación, respectivamente. Es decir, los r-value son lo que generalmente consideramos como "valores", mientras que los l-value son las ubicaciones. La comprobación estática debe asegurar que el lado izquierdo de una asignación denote a un l-value. Un identificador como i tiene un l-value, al igual que un acceso a un arreglo como a[2]. Pero una constante como 2 no es apropiada en el lado izquierdo de la asignación, ya que tiene un r-value, pero no un value.

Resumen o ejemplo

Una vez que se construyen los árboles de sintaxis, se puede realizar un proceso más detallado de análisis y síntesis mediante la evaluación de los atributos, y la ejecución de fragmentos de código en los nodos del árbol. Para ilustrar las posibilidades, vamos a recorrer árboles sin- tácticos para generar código de tres direcciones. En específico, le mostraremos cómo escribir funciones para procesar el árbol sintáctico y, como efecto colateral, emitir el código de tres direcciones necesario. Instrucciones de tres direcciones El código de tres direcciones es una secuencia de instrucciones de la forma x = y op z en donde x, y y z son nombres, constantes o valores temporales generados por el compilador; y op representa a un operador. Manejaremos los arreglos usando las siguientes dos variantes de instrucciones: x [y]=z x = y [z]

conclucion

Con eésto terminamos el repaso de L-Values y R-Values. Puede que parezcan conceptos obvios, pero viene bien tenerlos claros porque los podremos estar utilizando para siguientes metodos