Vous êtes sur la page 1sur 5

1

Compiladores / Gua II / Ciclo 02 - 2016

Centro de Investigacin y
Transferencia de Tecnologa

Anlisis Lxico

Facultad: Ingeniera
Escuela: Computacin
Asignatura: Compiladores

Contenido
En la presente 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 anlisis lxico.


Identificar la forma en que un compilador realiza el anlisis lxico de un programa.

Material y Equipo

Gua de laboratorio N 2.
Computadora con Netbeans 7 o superior.

Introduccin Terica
Lxico
El lxico de un lenguaje de programacin u otro lenguaje usado en informtica est constituido por todas las palabras y
smbolos que lo componen. En los lenguajes de programacin, el lxico lo constituyen los elementos individuales del
lenguaje denominados tokens. Los tokens son todas 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 instrucciones del lenguaje.

Analizador Lxico
Al analizador lxico (scanner): lee la secuencia de caracteres del programa fuente, caracter a carcter, y los agrupa para
formar unidades con significado propio, los componentes lxicos (tokens en ingls). stos componentes lxicos
representan:

Palabras reservadas: if, while, do,


Identificadores asociados a variables, nombres de funciones, tipos definidos por el usuario, etiquetas, etc.
Operadores: =, +, -, /, ==, <, >, &, !=,
Smbolos especiales: ;, ( ), [ ], { },
Constantes numricas: literales que representan valores enteros, en coma flotante, etc.
Constantes de caracteres: literales que representan cadenas de caracteres, por ejemplo: estoy en labo de
compi,...

El analizador lxico opera bajo peticin del analizador sintctico devolviendo un componente lxico conforme el analizador
sintctico lo va necesitando para avanzar en la gramtica. Los componentes lxicos son los smbolos terminales de la
gramtica. Suele implementarse como una subrutina del analizador sintctico. Cuando recibe la orden obtn el siguiente
componente lxico el analizador lxico lee los caracteres de entrada hasta identificar el siguiente componente lxico.

Compiladores / Gua II / Ciclo 02 - 2016


Dame el siguiente componente lxico

Programa fuente

Analizador
Lxico

Analizador
Sintctico
Toma componente lxico

Tabla de
Smbolos

Procedimiento

Siguiendo con el estudio del analizador lxico, se puede representar de la siguiente manera:
(Expresin regular 1)
(Expresin regular 2)
(Expresin regular 3)

(Accin 1)
(Accin 2)
(Accin 3)
.
.
.

(Expresin regular n)

(Accin n)

Donde cada accin es un fragmento de programa que describe cual ha de ser la accin del analizador lxico cuando la
secuencia de entrada coincida con la expresin regular.
Qu es una expresin regular?
Son una serie de caracteres que forman un patrn, normalmente representativo de otro grupo de caracteres mayor, de tal
forma que podemos comparar el patrn con otro conjunto de caracteres para encontrar las coincidencias.
Las expresiones regulares estn disponibles en casi cualquier lenguaje de programacin, pero, aunque su sintaxis es
relativamente uniforme, cada lenguaje usa su propio dialecto.

Patrn: es una expresin regular.


Token: es el terminal asociado a un patrn. Utilizamos la palabra terminal desde el punto de vista de la gramtica
utilizada por el analizador sintctico.
Lexema: es cada secuencia de caracteres que encaja con un patrn, es decir, es como instancia de un patrn.

A continuacin, se presenta una aplicacin capaz de evaluar el lxico utilizado en una expresin que corresponde a un
lenguaje de programacin. Dicho programa hace las respectivas distinciones entre cada elemento que forma parte de las
expresiones (variables, palabras reservadas, smbolos, nmeros, etc.)

Compiladores / Gua II / Ciclo 02 - 2016

Compiladores / Gua II / Ciclo 02 - 2016


La salida que se obtiene del programa debera ser la siguiente:

La idea es que el analizador lxico reconozca cada una de las representaciones que se encuentran en las expresiones del
lenguaje de programacin.
Cada vez que se desee hacer ms robusto nuestro analizador debemos agregar ms patrones en nuestro cdigo.
Ejercicios:
1. Modificar el ejemplo de manera que se pueda evaluar la expresin:
x=1;
do{
if (w==1)
{
While(x<5)
{
z++;
}
}
else{
Array[i] = 7;
}
}while(j==0);
2. Modificar el ejemplo de manera que acepte ms palabras reservadas, por ejemplo: for, foreach, bool, int, double,
char, string.

Compiladores / Gua II / Ciclo 02 - 2016

Investigacin Complementaria
1. Investigar qu es un analizador sintctico y los elementos que lo componen.

Bibliografa

Manuel Alfonseca Moreno, Marina de la Cruz Echeanda, Alfonso Ortega de la Puente, Estrella Pulido Caabate,
Compiladores: Teora y Prctica, Pearson Educacin, S.A., Madrid, 2006

Vous aimerez peut-être aussi