Você está na página 1de 4

UNIVERSIDAD NACIONAL DE SAN AGUSTN I Escuela Profesional de Ingeniera de Sistemas

Anlisis Lxico a e
Laboratorio Compiladores

Lizeth Joseline Fuentes Perez


Mayo, 2012

Anlsis Lxico a e
1.1 Introduccin o

El objetivo del anlisis lxico es dividir el cdigo en unidades lxicas es decir tokens, y tambin comunicar a e o e e los tokens al parser Un token se conforma de una < tokenclass, lexema >. Un token class corresponde a un conjunto de cadenas que pueden ser: identicadores, enteros, palabras reservadas, espacios en blanco. Para dividir la cadena se ir leyendo de izquierda a derecha reconociendo un token a la vez. a El Lookahead nos permite decidir donde un token comienza y donde otro token termina.

1.1.1

Ejemplos

En el lenguaje FORTRAN podemos encontrar un ejemplo como : DO 5 I = 1,25; DO 5 I = 1.25; Donde la primera es muy diferente a la segunda ya que indica un ciclo, en cambio en la segunda est haicendo una asignacin; como evaluamos puede parecer lo mismo; por ello es conveniente a o usar un Lookahead que nos permita distinguir entre las dos; para ste ejemplo ser en el punto y e a la coma. En el lenguaje PL/1 las palabras no son reservadas entonces podr ocurrir que tengamos: a IF ELSE THEN THEN = ELSE; ELSE ELSE = THEN entonces ocurre que es dicil interpretar las palabras reservadas de las dems. a En el lenguaje c++ la forma de declarar un template es F oo < Bar > y el operador de ujo de entrada es ci n >> a; cuando usamos templates anidados ocurre que F oo < Bar < Bar z z >> aparece el operador de ujo y es dif entonces la solucin fue insertar un espacio en blanco en cil, o el template anidado.

1.2

Lenguajes Regulares

Son reconocidos por expresiones regulares.

1.2.1

Expresiones regulares
.

Una expresin regular son el conjunto de expresiones ms pequeo sobre el alfabeto o a n Por ejemplo si = 0, 1 ; una expesin regular ser : o a (1 + 0)

aqu el lenguaje ser todas las cadenas formadas por ceros y unos; lo que es equivalente a decir a = no es lo mismo que lenguaje vac . o Para la expresin c el lenguaje es c o

1.2.2

Operaciones

Unin A + B = a|a A b|b B. o Concatenacin AB = ab|a A B. o Iteracin A = i0 Ai ; donde i es el nmero de veces que se repite A. o u

1.3

Lenguajes Formales

Denicin Sea o un alfabeto, un lenguaje sobre es un conjunto de cadenas de caracteres que estn a formalmente especicados sobre . Por ejemplo sobre el conjunto de caracteres del alfabeto Ingls; se e forman las oraciones del lenguaje Ingls. e Hay una relacin entre las expresiones regulares y los lenguajes, se le llama L, que es la funcin de o o signicado: L() = L( c ) = c L(A + B) = L(A) L(B) AB = ab|a L(A) L(B) L(A ) = i0 L(Ai ) La funcin L hace que la sintaxis tenga signicado ees decir semmtica; nos permite considerar la o a notacin por separado; y porque una expresin puede tener varios signicados. o o La notacin es importante ya que cambia el signicado de las expresiones como los nmeros romanos o u y los comunes, es ms sencillo resolver operaciones con los nmeros comunes que con los romanos.Lo a u mismo sucede con las expresiones regulares, pueden ser expresadas de diferentes maneras pero signican lo mismo; pero algunos son mejores entonces eso hace la diferencia en velocidad de un programa que hace exactamene lo mismo.

ii

1.4

Especicaciones Lxicas e
i f + else + f or .

keyword

integer di gi t = 0 + 1 + 2 + 3 + 4 + 5 + 6 + 7 + 8 + 9 di gi tdi gi t di gi t + . Identicador Conjunto de letras o d gitos que comienzan con una letra : letr a = [a z A Z] letr a(letr a + di gi to) Espacio en Blanco Secuencia de blancos,l neas nuevas. Por ejemplo para reconocer las cadenas: anyone@cs.stanford.edu tenemos la siguiente expresin o regular: letr a+ @ letr a+ . letr a+ . letr a+

iii

Você também pode gostar