| INSTITUTO POLITÉCNICO NACIONAL ESCUELA SUPERIOR DE CÓMPUTO |

Introducción | Contenido | Bibliografía

Introducción
Contenido
UNIDAD I
UNIDAD II
UNIDAD III
UNIDAD IV
UNIDAD V
UNIDAD VI
UNIDAD VII
UNIDAD VIII
UNIDAD IX
PROBLEMARIO Problema Unidad 8.4 Problemas 1-10 Problemas 11-20 Problemas 21-30

Problemas 31-40

Problemas 41-50

Bibliografía

PROBLEMARIO

Problemas 1-10

> Los siguientes problemas resueltos, reforzarán en el curso de compiladores los conocimientos que se adquieren con un estudio continuo de la materia. Por lo que se recomienda un repaso de estos, por medio de asesorías o una discusión de su solución en el salón de clases.

> 1. Existe un ensamblador con macroinstrucciones. Escriba un organigrama con la forma de funcionamiento.

> 2. Determinar todas las posibles combinaciones de la notación T respecto a los tres lenguajes implicados en la misma.

> 3. Supongamos que sólo se dispone de un compilador FORTRAN para la computadora 1401 y que en realidad se tiene una computadora 360 con un simulador de la 1401. Representar esta desagradable situación con la notación gráfica de Rosin.

> 4. Comentar, empleando la notación de Rosin, el bootstrapping usando históricamente para realizar los primeros compiladores de PASCAL, partiendo del autocompilador.

> Supongamos que el autocompilador se fuera a adaptar a la máquina objeto 370. Entonces se tiene la Figura siguiente:

> 5. Se de los siguientes traductores:
> De ensamblador a código máquina 370,
> De PASCAL a código máquina 370, y el compilador está escrito en ensamblador, De MODULA a código máquina 370, y el compilador está escrito en PASCAL.

> En la Figura siguiente se han dibujado los diagramas en T necesarios. Las flechas
> apuntan a cada compilador ya traducido.

> 6. Considerar algunas características del Algol 60, cuya supresión no afectaría a mucho al usuario, pero en cambio si al constructor del compilador.

> Algunos de los aspectos más complejos pedidos pueden ser:

> - Procedimientos y parámetros: de nombre, valor y referencia.

> - Expresiones aritméticas condicionales.

> - Variables own.

> - Vectores de etiquetas.

> - Arrays dinámicos.

> 7. Considerar algunas características del PASCAL, cuya supresión no afectaría a mucho al usuario, pero en cambio si al constructor del compilador.

> Algunos de los aspectos más complejos pedidos pueden ser los que se describen
> en el lenguaje PL/O [WIRT76]. Resumimos aquí:

> - Mejor el tener sólo un tipo, p. ej. Entero.

> - Si hay más de un tipo, es más simple si son estancos, p. ej. entero y
> boolean, que en PASCAL no se convierten entre sí,

> - Sin procedimientos, o por lo menos sin parámetro.s

> Dejando el PASCAL así, viene a ser el Tiny·Pascal [HEISnn].

> 8. Calcular el producto de los dos conjuntos de caracteres siguientes:

> A = {a, abc, d, fg} B = {λ, e, ab, ba}.

> El conjunto producto puesto en forma de tabla es:

> 9. Escribir un diagrama de Conway para la sentencia de asignación múltiple.

> En la figura siguiente se da la solución.

> 10. Escribir un diagrama de Conway para la estructura de bloque.

> En la Figura siguiente se da la solución. Obsérvese que el punto y coma sólo serán
> correctos antes del end si se tiene la sentencia nula en el lenguaje.

> Atrás Siguiente

##### Introducción / Contenido / Unidad I / Unidad II / Unidad III / Unidad IV / Unidad V / Unidad VI / Unidad VII / Unidad VIII / Unidad IX / Problemario / Bibliografía

##### Inicio

##### Créditos

José Sánchez Juárez, Andrés Ortigoza Campos, Fabiola Ocampo Botello