You are on page 1of 4

Práctica Laboratorio

Con el objeto de clarificar algunos de los conceptos sobre diseño de compiladores, se desea
construir un mini compilador de un lenguaje muy simple (aunque de alto nivel), que se ha
denominado MUSIM que significa MUy_SIMple. El lenguaje objeto será un lenguaje de bajo nivel
denominado ENSAMPOCO que significa ENSAMbla POCO.

La primera parte de este ejercicio consistirá en un programa que simula el análisis léxico de un
compilador, que lee desde un archivo de texto el programa fuente.

Definición del compilador de MUSIM/0

Generalmente un compilador toma el programa fuente, lo interpreta y crea un programa objeto


(normalmente en lenguaje máquina). Por ahora nos limitaremos a comprender y analizar una de las
formas, de cómo se llevaría a cabo un analizador léxico según las características de un lenguaje.

Fichero fuente

Digite un programa en el lenguaje MUSIM/0, en un archivo de texto, guárdelo como prueba1.txt.

Análisis Léxico a través del Lenguaje Intermedio

El análisis léxico debe separar el fichero fuente en componentes léxicos o tokens, y enviarlos al
analizador sintáctico (en este guía no se detallará el analizador sintáctico). Habitualmente se envían
los componentes léxicos y sus atributos. En este caso solo se enviaran los tokens, ya que el atributo
va implícito en el token (tan sólo se tiene el tipo de dato entero).

A continuación, se muestra la definición de clase Léxico, la cual contiene las funciones necesarias
para poder implementar un análisis léxico adecuado para el lenguaje MUSIM/0. Abra el C++ y digite
el siguiente código:
Guarde el código .cpp en el mismo directorio donde guardo el archivo prueba1.txt, luego
ejecute el código.
Análisis de resultados

Responda lo siguiente:

1. ¿Qué es lo que muestra el programa?


2. Coloque en el archivo prueba.txt algún carácter no reconocido por el lenguaje
MUSIM/0. Vuelva a ejecutar la aplicación generada en C++. ¿Qué observó
en la ejecución? ¿Cuál es la razón del resultado?
3. Elimine el carácter “;” de alguna de las instrucciones. Vuelva a ejecutar la
aplicación. ¿Qué observó en la ejecución? ¿Cuál es la razón del resultado?
4. Deduzca el algoritmo y escriba un programa en C++ utilizando la librería
<fstream> para manejo de archivos

You might also like