lunes, 22 de junio de 2009

Prueba 1.

1. En el cuadro siguiente escriba dos tareas para cada analizador:

Léxico:

1. Leer la secuencia de caracteres del programa fuente, caracter a caracter, y los agrupa para formar unidades con significado propio o tokens

2. Manejo del fichero de entrada del programa fuente: abrirlo, leer sus caracteres, cerrarlo y gestionar posibles errores de lectura.

Sintáctico:

1. Tomar el programa fuente en forma de tokens, que recibe del analizador léxico, y determinar la estructura de las sentencias del programa.

2. Obtiene un árbol sintáctico (u
otra estructura equivalente) en la cual las hojas son los tokens, y cualquier nodo que no sea una hoja, representa un tipo de clase sintáctica (operaciones).

Semántico:

1. Determinar el tipo de los resultados intermedios, una vez que se conoce la estructura sintáctica.

2. Comprobar que los argumentos que tiene un operador pertenecen al conjunto de los operadores posibles, y si son compatibles entre sí, etc. En definitiva, comprobará que el significado de lo que se va leyendo es válido.

2.Transformar las siguientes expresiones a notación postfija y prefijo.

a) a * b % c – d * a – d % e
POSTFIJA: a b * c % d a * d e % - -
PREFIJA: - % * a b c - * d a % d e

b)(a + c) – (d * e) / x % y
POSTFIJA: a c + d e * - x y % /
PREFIJA: / - + a c * d e % x y

c)(h – i – j * k) % m / x / y
POSTFIJA: h i j k * - - m % x / y /
PREFIJA: / / % - h – i * j k m x y

3.Dado el árbol de derivación, obtener la expresión en notación infija, postfija y prefija.



INFIJA: ( ( a * b % c ) – d ) * ( ( h – f ) % e )
POSTFIJA: a b * c % d – h f – e % *
PREFIJA: * - % * a b c d % - h f e

No hay comentarios:

Publicar un comentario