Вы находитесь на странице: 1из 8

Compiladores.

Gua 2

Facultad:
Ingeniera
Escuela:
Computacin
Asignatura: Compiladores

Tema: Anlisis Lxico


Contenido
En esta gua se dar a conocer la manera en que un
compilador realiza el anlisis lxico de un programa
fuente.

Objetivos Especficos
Simular un compilador, tomando en cuenta nicamente el
analizador lxico.
Interpretar la forma en que un compilador realiza el
anlisis lxico de un programa.

Material y Equipo
Gua de Laboratorio N 2.
Computadora con DevC++

Introduccin Terica
Lxico

Gua 3

El lxico de un lenguaje de programacin u otro lenguaje


usado
Gua 4en 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
fa
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.

Compiladores. Gua 2

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:

Y les asigna su atributo, habitualmente por medio de un


cdigo numrico cuyo significado se ha definido previamente.

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 ingles
scanner).

Compiladores. Gua 2 3

Procedimiento
Con el objeto de clarificar algunos de los conceptos sobre
Gua 3de compiladores, se desea construir un mini compilador
diseo
de un lenguaje muy simple (aunque de alto nivel), que se ha
denominado
MUSIM que significa MUy_SIMple. El lenguaje objeto
Gua 4
ser un lenguaje de bajo nivel denominado ENSAMPOCO que
significa ENSAMbla POCO. En la gua 1 se trabajo con sus
fa
primeras
versiones MUSIM/0 y ENSAMPOCO/0.
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 MUSIM/0

A partir
1. Cul
2. Cul
3. Cul

de
es
es
es

este diagrama, conteste las siguientes preguntas:


el lenguaje fuente? _____________________________
el lenguaje objeto? _____________________________
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 MUSIM/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
componentes lxicos o tokens, y enviarlos al
sintctico (en este gua no se detallar el

fuente en
analizador
analizador

Compiladores. Gua 2

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. Abra el
DevC++ y digite el siguiente cdigo:

Compiladores. Gua 2 5

Compiladores. Gua 2

Guarde el cdigo .cpp en el mismo directorio donde guardo el


archivo prueba1.txt, luego ejecute el cdigo.

Anlisis de resultados
1. Qu
es
lo
que
muestra
el
programa?
_______________________________________________________
_______________________________________________________
_______________________________________________________
_______________________________________________________
2. Coloque en el archivo prueba.txt algn carcter no
reconocido por el lenguaje MUSIM/0. Vuelva a ejecutar
la aplicacin generada en C++. Qu observ en la
ejecucin?
cul
es
la
razn
del
resultado?
_______________________________________________________
_______________________________________________________
_______________________________________________________
_______________________________________________________
_______________________________________________________

Compiladores. Gua 2 7

3. Elimine el carcter ; de alguna de las instrucciones.


Vuelva a ejecutar la aplicacin. Qu observ en la
ejecucin?
cul
es
la
razn
del
resultado?
_______________________________________________________
_______________________________________________________
_______________________________________________________
4. Deduzca el
utilizando
archivos

algoritmo y escriba un
la librera <fstream>

programa en C++
para manejo de

_______________________________________________________
_______________________________________________________
_______________________________________________________
_______________________________________________________
_______________________________________________________
_______________________________________________________
_______________________________________________________
_______________________________________________________
_______________________________________________________

Investigacin complementaria
a) Desarrolle un analizador lxico para el lenguaje Micro C
(de la Gua 1).
b) Investigue que es un analizador sintctico y las partes
que lo componen.
c) Investigar que es y cmo se utiliza la notacin BNF

Bibliografa
Cueva, J. (1998). Conceptos bsicos de procesadores de
lenguaje. Universidad de Oviedo, Espaa.

Compiladores. Gua 2

Gua 2: Anlisis Lxico

Hoja de cotejo:

Docente:

Tema: Presentacin del programa

Alumno:

2
1

MquinaMquina
No:
No:
Mquina GL:
No:

Alumno:

Docente:

GL:

Docente:

GL:

Fecha:

EVALUACION
%
CONOCIMIENTO

Del 20
al 30%

APLICACIN
DEL
CONOCIMIENTO

Del 40%
al 60%

1-4

5-7

8-10

Conocimie
nto
deficient
e de los
fundament
os
tericos

Conocimiento
y explicacin
incompleta de
los
fundamentos
tericos

Conocimiento
completo y
explicacin
clara de los
fundamentos
tericos

No tiene
actitud
proactiva
.

Actitud
propositiva y
con
propuestas no
aplicables al
contenido de
la gua.

Tiene actitud
proactiva y sus
propuestas son
concretas.

ACTITUD
Del 15%
al 30%

TOTAL

100%

Nota

Вам также может понравиться