Vous êtes sur la page 1sur 6

UNIVERSIDAD NACIONAL JORGE BASADRE GROHMANN | FACULTAD DE INGENIERA

ESCUELA ACADMICO PROFESIONAL DE INGENIERA EN INFORMTICA Y SISTEMAS


CURSO: COMPILADORES Y TEORA DE LENGUAJES
AO DE ESTUDIOS: TERCERO

PRCTICA N 05: ANALIZADOR LXICO CON C++


1. OBJETIVOS

Estudiar el cdigo fuente de un programa prototipo de anlisis lxico.


Aplicar el anlisis lxico utilizando cdigo en lenguaje C++ creado con Borland C++

2. FUNDAMENTO TERICO

LXICO

El lxico de un lenguaje de programacin u otro lenguaje usado en la informtica est constituido por
todas las palabras y smbolos que lo componen. En los lenguajes de programacin el lxico lo constituyen
todos los elementos individuales del lenguaje, denominados frecuentemente tokens. As son tokens: las
palabras reservadas del lenguaje, los smbolos que denotan los distintos tipos de operadores,
identificadores (de variables, de funciones, de procedimientos, de tipos, etc), separadores de sentencias,
y otros smbolos empleados en las distintas construcciones del lenguaje.

ANLISIS LXICO

Un programa fuente es una serie de smbolos que representan las construcciones del lenguaje tales como
variables, etiquetas, palabras reservadas, constantes, operadores, entre otros. El programa fuente se
trata inicialmente con el analizador lxico, el cual tiene el propsito de agrupar el texto en los diferentes
tipos de patrones que conforman las unidades lxicas como identificadores (de variables, de funciones,
de procedimientos, de tipos, de clases), palabras reservadas y operadores. Por razones de eficiencia, a
cada token se le asocia un atributo (o ms de uno) que se representa internamente por un cdigo numrico
o por un tipo enumerado. Por ejemplo a un identificador se le puede dar una representacin interna de 1,
a una contante de 2, a un operador aritmtico un 2,, cada palabra reservada tiene su propio cdigo.
As, para la siguiente sentencia de Pascal:

IF cuenta = sueldo THEN jefe:= justo;

El analizador lxico la separa en la siguiente secuencia de tokens:

IF cuenta = sueldo THEN jefe := justo ;

Y les asigna su atributo, habitualmente por medio de un cdigo numrico cuyo significado se ha definido
previamente.

TOKEN ATRIBUTO OBSERVACIONES


IF 20 Palabra reservada
cuenta 1 Identificador
= 15 Operador de comparacin
sueldo 1 Identificador
THEN 20 Palabra reservada
jefe 1 Identificador
:= 10 Asignacin
justo 1 Identificador
; 27 Separador de sentencias

El anlisis lxico es un anlisis a nivel de caracteres, su misin es reconocer los componentes lxicos o
tokens, enviando al analizador sintctico los tokens y sus atributos.

Tambin se encarga de eliminar los comentarios. El analizador lxico tambin recibe el nombre de
explorador (en ingls scanner).

Docentes: Ing. Ana Cori Morn / Ing. Edith Alfaro Gonzales Pgina 1 de 6
UNIVERSIDAD NACIONAL JORGE BASADRE GROHMANN | FACULTAD DE INGENIERA
ESCUELA ACADMICO PROFESIONAL DE INGENIERA EN INFORMTICA Y SISTEMAS
CURSO: COMPILADORES Y TEORA DE LENGUAJES
AO DE ESTUDIOS: TERCERO

3. PROCEDIMIENTO

Con el objeto de clarificar algunos de los conceptos sobre diseo de compiladores, se desea construir un
mini compilador de un lenguaje muy simple (aunque de alto nivel), que se ha denominado SIMPLE. El
lenguaje objeto ser un lenguaje de bajo nivel denominado ENSAMBLA.

La primera parte de este ejercicio consistir en un programa que simula el anlisis lxico de un compilador,
que lee desde un archivo de texto el programa fuente.

Definicin del compilador de SIMPLE:

Figura 1. Representacin simblica de un compilador para SIMPLE

A partir de este diagrama, conteste las siguientes preguntas:

1. Cul es el lenguaje fuente?


2. Cul es el lenguaje objeto?
3. Cul es el lenguaje de implementacin?

(Puede consultar la introduccin terica de la gua 1 para entender qu funcin cumplen cada uno de
estos lenguajes).

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


(normalmente en lenguaje mquina). Por ahora nos limitaremos a comprender y analizar una de las
formas, de cmo se llevara a cabo un analizador lxico segn las caractersticas de un lenguaje.

FICHERO FUENTE

Digite un programa en el lenguaje SIMPLE/0, en un archivo de texto, gurdelo como prueba1.txt. Puede
utilizar uno de los cdigos vistos en la gua 1.

ANLISIS LXICO A TRAVS DEL LENGUAJE INTERMEDIO

El anlisis lxico debe separar el fichero fuente en componentes lxicos o tokens, y enviarlos al analizador
sintctico (en este gua no se detallar el analizador sintctico). Habitualmente se envan los componentes
lxicos y sus atributos. En este caso solo se enviaran los tokens, ya que el atributo va implcito en el token
(tan slo se tiene el tipo de dato entero).

A continuacin se muestra la definicin de clase Lxico, la cual contiene las funciones necesarias para
poder implementar un anlisis lxico adecuado para el lenguaje MUSIM/0.

Digite el siguiente cdigo:

Docentes: Ing. Ana Cori Morn / Ing. Edith Alfaro Gonzales Pgina 2 de 6
UNIVERSIDAD NACIONAL JORGE BASADRE GROHMANN | FACULTAD DE INGENIERA
ESCUELA ACADMICO PROFESIONAL DE INGENIERA EN INFORMTICA Y SISTEMAS
CURSO: COMPILADORES Y TEORA DE LENGUAJES
AO DE ESTUDIOS: TERCERO

Docentes: Ing. Ana Cori Morn / Ing. Edith Alfaro Gonzales Pgina 3 de 6
UNIVERSIDAD NACIONAL JORGE BASADRE GROHMANN | FACULTAD DE INGENIERA
ESCUELA ACADMICO PROFESIONAL DE INGENIERA EN INFORMTICA Y SISTEMAS
CURSO: COMPILADORES Y TEORA DE LENGUAJES
AO DE ESTUDIOS: TERCERO

Docentes: Ing. Ana Cori Morn / Ing. Edith Alfaro Gonzales Pgina 4 de 6
UNIVERSIDAD NACIONAL JORGE BASADRE GROHMANN | FACULTAD DE INGENIERA
ESCUELA ACADMICO PROFESIONAL DE INGENIERA EN INFORMTICA Y SISTEMAS
CURSO: COMPILADORES Y TEORA DE LENGUAJES
AO DE ESTUDIOS: TERCERO

4. ANLISIS DE RESULTADOS

a) Qu es lo que muestra el programa?


b) Coloque en el archivo ejemplo.txt algn carcter no reconocido por el lenguaje SIMPLE/0. Vuelva a
ejecutar la aplicacin generada por C++. Qu observ en la ejecucin? Cul es la razn del
resultado?
c) Elimine el carcter ; de alguna de las instrucciones. Vuelva a ejecutar la aplicacin. Qu observ
en la ejecucin? Cul es la razn del resultado?
d) Explique detalladamente que es lo que realiza la funcin siguienteToken().

INDICACIONES

Para la elaboracin de su informe de laboratorio, tome en cuenta las siguientes indicaciones:


a. El informe se presenta de manera individual; en forma impresa o escrita.

Docentes: Ing. Ana Cori Morn / Ing. Edith Alfaro Gonzales Pgina 5 de 6
UNIVERSIDAD NACIONAL JORGE BASADRE GROHMANN | FACULTAD DE INGENIERA
ESCUELA ACADMICO PROFESIONAL DE INGENIERA EN INFORMTICA Y SISTEMAS
CURSO: COMPILADORES Y TEORA DE LENGUAJES
AO DE ESTUDIOS: TERCERO

b. Se sugiere que use el siguiente esquema:


Cartula.
Objetivos.
Fundamento terico.
Procedimiento y desarrollo.
Anlisis de Resultados
Conclusiones.
Referencias bibliogrficas.
c. En su cartula, considere como mnimo los siguientes puntos:
Como cabecera: Nombre de la Universidad / Facultad / Escuela.
Nmero y nombre del informe de laboratorio.
Nombre del curso / Nombre del docente.
Nombre del estudiante / Cdigo universitario.
Ao / Seccin.
Fecha de elaboracin. (Da que se realiz el laboratorio)
Fecha de entrega del informe. (Da que debe presentar el informe)
d. Use como mnimo 3 referencias bibliogrficas (libros) y ctelas en su fundamento terico. Debe usar el
estilo APA para citar material bibliogrfico.
e. Las figuras y tablas de su fundamento terico deben estar enumeradas de acuerdo al estilo de redaccin
APA.
f. Las pginas de su informe deben estar enumeradas, todo el texto debe estar correctamente alineado y
los prrafos deben contar con sangra de acuerdo al nivel de texto que corresponda.
g. Las conclusiones, la cantidad conclusiones y recomendaciones debe ser la misma que la cantidad de
objetivos y cada conclusin debe estar relacionada estrechamente con un objetivo. Recuerde que las
conclusiones deben estar bien redactadas y debe mostrar la conclusin que obtuvo de su experiencia en
el laboratorio.

Docentes: Ing. Ana Cori Morn / Ing. Edith Alfaro Gonzales Pgina 6 de 6

Vous aimerez peut-être aussi