1.3COMPROBACIONES DE TIPOS-EFRAIN_C_F
Efrain Castañeda
Created on August 29, 2024
presentación interactiva sobre mi interpretación de la lectura del libro (Aho, Lam, Sethi, & Ullman, 2008, pags 98,99)
More creations to inspire you
ALL THE THINGS
Presentation
SANTIAGOVR_EN
Presentation
WWII TIMELINE WITH REVIEW
Presentation
BLENDED LEARNING
Presentation
TAKING A DEEPER DIVE
Presentation
WWII JUNE NEWSPAPER
Presentation
AUSSTELLUNG STORYTELLING
Presentation
Transcript
lenguajes y automatas ii
1.3 Comprobaciones de tipos en expresiones
Efrain castañeda Floresno. de control 210600517°B ingenieria en sistemas
Comprobaciones de tipos en expresiones
Las comprobaciones de tipos en expresiones se refieren a la forma en que un lenguaje de programación verifica el tipo de datos de las variables y expresiones en tiempo de compilación o en tiempo de ejecución.
R-value (Right Value) Definición: Un R-value (valor a la derecha) hace referencia a cualquier valor que no tiene una dirección de memoria identificable. Estos son valores temporales que no pueden estar a la izquierda de una asignación. Ejemplos: Literales como 5, expresiones como x + 2, y resultados de funciones son R-values. En la expresión x = 5, el 5 es un R-value.
L-value (Left Value) Definición: Un L-value (valor a la izquierda) se refiere a una expresión que tiene una ubicación en la memoria. Es un valor que puede estar a la izquierda de una asignación. Puedes pensar en un L-value como un "candidato para la asignación". Ejemplos: Variables como x, arrays, y objetos son L-values porque pueden ser leídos y modificados. En la expresión x = 5, x es un L-value.
L-value & R-value
Las reglas sobre los tipos de un lenguaje aseguran que un operador o función se aplique al número y tipo de operandos correctos, si es necesaria la conversión entre tipos. Por ejemplo: cuando se suma un entero a un número de punto flotante, entonces el comprobador de tipos puede insertar un operador en el árbol sintáctico para representar esa conversion.
Comprobación de tipos
Sobrecarga
La sobrecarga se refiere a la capacidad de un lenguaje de programación para asociar múltiples significados a una misma operación o función, dependiendo del contexto en el que se utilice
El operador + en Java representa la suma cuando se aplica a enteros; significa concatenación cuando se aplica a cadenas. Se dice que un símbolo está sobrecargado si tiene distintos significados, dependiendo de su contexto. Por ende, + esta sobrecargado en Java. Para determinar el significado de un operador sobrecargado, hay que considerar los tipos conocidos de sus operandos y resultados.
la coerción y la sobrecarga
Coerciones
La coerción se refiere a la conversión automática de un tipo de dato a otro por parte del lenguaje de programación.
En una expresión como 2 * 3.14, la transformación usual convertir el entero 2 en un número de punto flotante equivalente, 2. O, y después realizar una operación de punto flotante con el par resultante de operandos de punto flotante.
+info
+info
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. Instrucciones de tres direcciones El código de direcciones es una secuencia de instrucciones de la forma: x= y op z en donde x, y, z Son nombres, Constantes o valores temporales generados por el compilador; y op representa a un operador.
Código de tres direcciones
CONCLUSION
las comprobaciones de tipos son esenciales para garantizar la integridad y la seguridad del código. La correcta gestión de coerciones y el entendimiento de la sobrecarga de operadores así como de los conceptos de L-value y R-value, son fundamentales para el diseño de programas funcionales y confiables. Los desarrolladores debemos ser conscientes de cómo estas características pueden influir en el comportamiento del código, eligiendo herramientas y enfoques que se adapten a las necesidades del proyecto y al tipo de lenguaje.
bibliografia: libro (Aho, Lam, Sethi, & Ullman, 2008, pags 98,99)
link paginas del libro: https://drive.google.com/file/d/13nOgcRnNt-RaaX24VuRNl7W9nMMfI64x/view?usp=classroom_web&authuser=0