BLACKBOARD PRESENTATION
CHAVARRÍA REYES JUAN JESÚS
Created on September 5, 2024
More creations to inspire you
PRIVATE TOUR IN SÃO PAULO
Presentation
SUMMER ZINE 2018
Presentation
RACISM AND HEALTHCARE
Presentation
FACTS IN THE TIME OF COVID-19
Presentation
FOOD 1
Presentation
TANGRAM PRESENTATION
Presentation
COUNTRIES LESSON 5 GROUP 7/8
Presentation
Transcript
Lenguaje y Automnatas 2
1.3 Comprobaciones de tipos en expresiones.
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, respectivamenteLa 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
L-value y R-value
Ahora consideraremos algunas comprobaciones estáticas simples que pueden realizarse durante la construcción de un árbol sintáctico para un programa fuente. Hay una diferencia entre el significado de los identificadores a la izquierda y el lado derecho de una asignación.
Las reglas de comprobación de tipos siguen la estructura operador/operando de la sintaxis abstracta. Suponga que el operador rel representa a los operadores relacionales como <=.
Comprobación de tipos
La comprobación de tipos asegura que el tipo de una construcción coincida con lo que espera su contexto. Por ejemplo, en la siguiente instrucción if:if (expr) instr
Por ejemplo, sabemos que el + en z = x + y es concatenación si sabemos que cualquiera de las variables x, y oz es de tipo cadena
El operador + en Java representa la suma cuando se aplica a enteros; significa concatenación cuando se aplica a cadenas
Una coerción ocurre cuando el tipo de un operando se convierte en forma automática al tipo esperado por el operador
Utilizando el atributo tipo para el tipo de una ex- presión, dejemos que E consista de rel aplicado a E1 y E2
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