Entradas

Mostrando las entradas de febrero, 2023

Ejercicios InOrden

Imagen
RECORRIDO InOrden IZQUIERDA- RAIZ- DERECHA  Ejercicios: 1.  RECORRIDO:   1, 8, 7, 7, 3, 6, 8 2.  RECORRIDO:   9, 22, 37, 39, 44, 47, 50, 66, 73, 85, 88, 90, 94

Ejercicios PreOrden

Imagen
Ejercicios Recorrido PreOrden RAIZ- IZQUIERDA- DERECHA 1. RECORRIDO:   6, 5 , 3 2. RECORRIDO:   5, 3, 4, 6, 2, 7, 9 3. RECORRIDO:   3, 6, 3, 5, 1, 2, 4, 1, 6, 5, 7, 8 4. RECORRIDO:   F, B, A, D, C, E, G, I, H 5. RECORRIDO:   18, 3, 2, 5, 34, 20, 12, 77, 40, 90

1.7 Manejo de errores semánticos

  Un error semántico se produce cuando la sintaxis del código es correcta, pero la semántica o significado no es el que se pretendía. La construcción obedece las reglas del lenguaje, y por ello el compilador o intérprete no detectan los errores semánticos. Los compiladores e intérpretes sólo se ocupan de la estructura del código que se escribe, y no de su significado. Un error semántico puede hacer que   el programa termine de forma anormal, con o sin un mensaje de error. Hablando en    términos    coloquiales,    puede    hacer    que    el    equipo    se    quede    "colgado".

Ejercicios - Código JAVA

Imagen
 

1.6 Generación de la tabla de símbolo y de direcciones

  1.6 Generación   de   la   tabla   de   símbolo   y   de   direcciones   Las tablas de símbolos (también llamadas tablas de identificadores y tablas de   nombres),   realizan   dos   importantes   funciones   en   el   proceso   de   traducción:   verificar que la semántica sea correcta y ayudar en la generación apropiada de   código. Ambas funciones se realizan insertando o recuperando  desde la tabla de   símbolos los atributos de las variables usadas en el programa fuente.  Estos atributos,   tales como: el nombre, tipo, dirección de almacenamiento y dimensión de una   variable, usualmente se encuentran explícitamente en las declaraciones o más   implícitamente a través del contexto en que aparecen los nombres de variables en   el   programa. Una de las estructuras de datos que se encuentran relacionadas con las fases del   proce...

1.5 Esquema de traducción

Imagen
  1.5 Esquema   de traducción   Un esquema de traducción es una gramática independiente de contexto en la que   se   asocian   atributos   con   los   símbolos   gramaticales   y   se   insertan   acciones   semánticas   encerradas   entre   llaves   {   }   dentro   de   los   lados   derechos   de   las   producciones.   Los   esquemas   de   traducción   pueden   tener   tantos   atributos   sintetizados   como heredados. Cuando   se   diseña   un   esquema   de   traducción,   se   deben   respetar   algunas   limitaciones para asegurarse de que el valor de un atributo esté disponible cuando   una acción se refiera a él. Estas limitaciones, motivadas por las definiciones con   atributos por la izquierda, garantizan que las acciones ...

1.4 Pila semántica en un analizador sintáctico

Imagen
   1.4 Pila semántica en un analizador sintáctico   Las pilas y colas son estructuras de datos que se utilizan generalmente para simplificar ciertas operaciones de programación. Estas estructuras pueden implementarse mediante arrays o listas enlazadas. Pila: colección de datos a los cuales se les puede acceder mediante un extremo, que se conoce generalmente como tope. Las pilas tienen dos operaciones básicas: ·          Push (para introducir un elemento) ·          Pop (para extraer un elemento)   Sus características fundamentales es que al extraer se obtiene siempre el último elemento que acabe de insertarse. Por esta razón también se conoce como estructuras de datos LIFO, una posible implementación mediante listas enlazadas seria insertando y extrayendo siempre por el principio de la lista. Las pilas se utiliz...

Acciones semánticas del analizador sintáctico-Evaluación

Imagen
Ejercicio 1  (6*7+5*5/3+7*7)+(4*7+3*8)   =    151.33 Ejercicio 2 (6*9+4/5+8) - (9+6-7*7+5*6)  =  66.8

Ejercicios de las acciones semánticas del analizador sintáctico

Imagen
 Ejercicio 1: (6*5+4/7+8*7)+(9/5+3*6-4/8*3)      =     104.87 Ejercicio 2: (7/6*8+9*5/3)-(4/7*8+5*6)     =    -10.2

Ejercicios de las acciones semánticas del analizador sintáctico

Imagen
LIFO LastInput- ultimo en entrar FirstInput- Primero en salir  Ejemplo:        (5*2+3-9/3)-(5+2-3+9) Ejercicio 1: (6*5+4/7+8*7)+(9/5+3*6-4/8*3)      =     104.87

Evaluación parcial

Imagen
 a) 12/8+4*7/9-6*5/9     =    1.2777 b)      9*4+6-3/5*8+3     =      40.2 c)     3/5*2+4-3*3/6*4     =    -0.8

Recorrido postorden

Imagen
  Recorrido postorden: En el orden postorden se recorre de la siguiente manera: subárbol izquierdo, subárbol derecho, raíz. Postorden:  I,D,R  Izquierdo, Derecho, Raíz Ejemplo:  Recorrido:     3,2,8,5,4,9,6,7,4,7,8,9,5,7,5 Ejercicio 1: Recorrido:    1,6,4,3,2,,6,3,1,7,7,4,2,3,5,9 Ejercicio 2: Recorrido:       8,6,9,3,5,7,3,2,8,6,5,4,8,1,3,5,3

Acciones semánticas de un analizador sintáctico

Imagen
  Acciones semánticas de un analizador sintáctico Definición de un analizador sintáctico: es la fase del analizador que se encarga de chequear el texto de entrada en base a una gramática dada. Y en caso de que el programa de entrada sea válido, suministra el árbol sintáctico que lo reconoce. En teoría, se supone que la salida del analizador sintáctico es alguna representación del árbol sintáctico que reconoce la secuencia de Token suministrada por el analizador léxico. En la práctica, el analizador sintáctico también hace: ·         Acceder a la tabla de símbolos (para hacer parte del trabajo del analizador semántico). ·         Chequeo de tipos (del analizador semántico). ·         Generar código intermedio. ·         Generar errores cuando se producen. En definitiva, realiza casi todas las operaciones de la compilación. Este métod...