Академический Документы
Профессиональный Документы
Культура Документы
ing. Reinaga
Anlisis lxico
Esta fase consiste en leer el texto del cdigo fuente carcter a carcter e ir generando los tokens (caracteres relacionados entre si)
ing. Reinaga
Los tokens pueden ser de dos tipos; cadenas especificas como palabras reservadas:
ing. Reinaga
Tokens
ing. Reinaga
Y no especificas, como identificadores, constantes y etiquetas: Identificadores: numero $variable1 otro$paciente str _el4alumno
ing. Reinaga 5
public class HolaMundo{ String str=Hola Mundo; public static void main(String[] args){ System.out.println(str); } }
ing. Reinaga 6
El anlisis lxico tiene como propsito agrupar las expresiones (tokens) por ejemplo:
distancia = velocidad + aceleracin * 30 identificador distancia smbolo de asignacin = identificador velocidad signo + identificador aceleracion signo * el numero entero 30
Normalmente los espacios son eliminados en el proceso
ing. Reinaga 7
Resumiendo
El analizador lxico lee los caracteres que componen el texto del programa fuente y suministra tokens al analizador sintctico.
ing. Reinaga
Automatas finitos
Los autmatas finitos reciben como entrada informacin que procesan y en funcin de ella emiten una salida Un autmata finito recibe una palabra, la cual debe procesar por medio de un recorrido a travs de los diferentes estados que integran el automata, y si al final del procesamiento de sta el recorrido termina en un estado o posicin de aceptacin, se dice que la palabra forma parte del lenguaje.
ing. Reinaga
Autmatas finitos
Un autmata finito es una quntupla que denotaremos de manera genrica por: M=(Q,,q0,,F) donde: Q es un conjunto finito cuyos elementos llamaremos estados. es un alfabeto que llamamos alfabeto de entrada. q0Q es un estado sealado que llamamos estado inicial. F es un subconjunto de Q no vaco, cuyos elementos llamamos estados finales. es una aplicacin de QQ , que llamamos funcin de transicin.
ing. Reinaga 10
Terminologia basica
Una palabra que pertenece a un lenguaje L(G) realmente es una cadena de smbolos o caracteres, y por esto la relacin existente entre los smbolos, cadenas, lenguajes, alfabetos y gramaticas es importante.
ing. Reinaga
11
Cadena. Consiste en una secuencia de smbolos yuxtapuestos (uno seguido del otro)
Sean = {0,1,2} w= 0
x = 02
y = 011
z = 12012
En este caso w, x, y, z son cadenas formadas con los smbolos del alfabeto
ing. Reinaga 12
Ejemplo
1 0
1 = {0,1} es el alfabeto q q E = {q, q, q } es conjunto de estados s = {q} es el estado inicial F = {q } conjunto de estados finales o aceptacin : E x E es la funcin para determinar el siguiente estado
ing. Reinaga 13
En el diagrama de transicin se puede observar que pertenece al lenguaje indicado por la expresin regular (0 1)*01 y por ejemplo las cadenas 10001 y 101 pertenecen al lenguaje, mientras que la cadena 111001110 no pertenece. 0 1
0 q 0 q 1 q q
ing. Reinaga
14
Practica Sea = {x, y} E = {q, q, q, q, q} s = {q} F = {q3 } : E x Y la expresin regular x(x y)*yx, generar el diagrama del autmata finito.
ing. Reinaga
15
ing. Reinaga
16
Intervalos de caracteres
[abc] a, b, o c [^abc] Cualquier caracter excepto a, b, o c (negacion) [a-zA-Z] Desde la a a la z o desde la A hasta la Z, incluidos [a-d[m-p]] Desde la a hasta la d, o desde la m a la p: [a-dm-p] (union) [a-z&&[def]] La d, la e, o la f (interseccion) [a-z&&[^bc]] Desde la a hasta la z, excepto la b y la c: [ad-z] (resta) [a-z&&[^m-p]] Desde la a hasta la z, excepto desde la m hasta la p: [a-lq-z](resta)
ing. Reinaga
17
ing. Reinaga
18
{graph} {print}
Letras minusculas: [a-z] Letras mayusculas:[A-Z] Letras:[{lower}{upper}] Numero decimal: [0-9] Caracter alfanumerico:[{alpha}{digit}] Signos de puntuacion: uno de !"#$%&'()*+,./:;<=>?@[]^_`{|}~ Los caracteres visibles: [{alnum}{punct}] Los caracteres imprimibles: [ {graph}]
ing. Reinaga
19
Un espacio o un tabulador: [ ] Un caracter de control: [x00-x1Fx7F] Un numero hexadecimal: [0-9a-fA-F] Un espacio: [ x0Bf ]
ing. Reinaga
20
Limites
^ $ B A G z Comienzo de una lnea Fin de una lnea Fin de palabra No es fin de palabra El principio de la cadena de entrada El final del ultimo patron encajado El final de la entrada pero el terminador final, si existe El final de la cadena de entrada
ing. Reinaga
21
Cuantificadores
X? X* X+ X{n} X(n,} X{n,m} X, una o ninguna vez X, cero o ninguna vez X, una o mas veces X, exactamente n veces X, por lo menos n veces X, por lo menos n veces pero no mas de m veces
ing. Reinaga
22
Operadores lgicos
XY X|Y (X) X seguido de Y XoY X, como un grupo
ing. Reinaga
23
ing. Reinaga
24
Manejo de buffers
ing. Reinaga
25
Tabla de simbolos
Una tabla de smbolos es una estructura de datos que usa el proceso de traduccin de un lenguaje de programacin, por un compilador o un intrprete, donde cada smbolo en el cdigo fuente de un programa est asociado con informacin tal como la ubicacin, el tipo de datos y el mbito de cada variable, constante o procedimiento.
ing. Reinaga
26
ing. Reinaga
27
El primer paso consiste en crear un escner, el cual se encarga de verificar que no existan caracteres no presentes en el lenguaje.
ing. Reinaga
28
Pero puede existir algn error si ninguno de los patrones con cuerda con el prefijo de entrada
ing. Reinaga
29
ing. Reinaga
30
ing. Reinaga
31
ing. Reinaga
32