Beruflich Dokumente
Kultur Dokumente
Anlisis Lxico
Qu queremos hacer? Ejemplo: If (i == j)
z=0; else z=1;
Meta: Partir la cadena de entrada en subcadenas y clasificar las subcadenas de acuerdo a su rol
Qu es un token?
La salida del analizador lxico en un conjunto de tokens. Un token es una categora sintctica
En Espaol:
Nombres, verbos, adjetivos,
En un lenguaje de programacin
Identificadores, enteros, palabras reservadas, espacios en blanco,
Tokens
Los token corresponden a conjuntos de cadenas.
Identificadores:cadenas de letras o dgitos que comienzan con una letra.
Ejemplo
Recordar:
\tif(i==j)\n\t\tz=0; \n\telse\n\t\tz=1:
Mirar adelantado
Dos puntos importantes:
La meta final es particionar la cadena. Esto se implementa leyendo la cadena de izquierda a derecha, reconociendo un token a la vez. Mirar adelantado algunas veces se requiere para decidir donde finaliza un token y donde comienza el ltimo token.
i vs if = vs ==
Componentes lxicos: Las ocurrencias mltiples se smbolos (o palabras) se denominan componentes lxicos.
Frase: Una frase es una secuencia de smbolos.
Gramtica (sintaxis): La gramtica o sintaxis de un lenguaje define si una secuencia arbitraria de smbolos es correcta, es decir, si es una frase significativa. Decimos que una frase correcta ser aceptada por el lenguaje.
Cadena: Secuencia (finita) de elementos de un cierto conjunto (alfabeto). De manera anloga al conjunto vaco de la teora de conjuntos, llamaremos a una cadena vaca . La cadena vaca es una cadena que no contiene smbolos.
Produccin: las reglas para la sustitucin de cadenas se denominan producciones. Los smbolos y ::= se usan comnmente para representar producciones. por ejemplo; la regla (produccin) sab ( s::=ab) significa que puede sustituirse s por ab, o que s se define como ab.
Smbolos terminales: Son los smbolos que realmente aparecen en una frase. Nunca aparecer en el lado izquierdo de una produccin. Los smbolos begin, end, if, then, else, son ejemplos de smbolos terminales pertenecientes a la gramtica que describe a PASCAL.
Smbolos no terminales: los smbolos no terminales deben ser definidos por otras producciones (o reglas BNF); es decir, tambin aparecen en el lado izquierdo de las producciones. Los smbolos no terminales son variables sintcticas.
Lenguajes Regulares
Existen diferentes formalismos para especificar tokens. Los lenguajes regulares son los ms populares.
Teora simple y til Fcil de entender Implementaciones eficientes.
Lenguaje
Def. Sea un conjunto de caracteres. Un lenguaje sobre es un conjunto de cadenas tomadas desde .
( se conoce como el alfabeto)
Ejemplo de lenguajes
Alfabeto = Caracteres del idioma ingles
Lenguaje = sentencias en ingles. No todas las cadenas en el alfabeto ingles forman sentencias.
Autmata finito
Expresin Regular = Especificacin.
Autmata finito = implementacin. Un autmata finito consiste de:
Un alfabeto de entrada Un conjunto de estados S Un estado inicial n Un conjunto de estados de aceptacin FS Un conjunto de transiciones estadoestado
Autmata finito
Transicin
s1 a s2
Se lee
En el estado s1 teniendo entrada a moverse al estado s2
Si es el final de la entrada
Si el estado es de aceptacin => aceptar, de otra forma => rechazar Si no existe transicin con smbolo a => rechazar
Una transicin
Ejemplo
Un autmata finito que acepte 1
1
Un autmata finito acepta una cadena si podemos seguir las etiquetas de los arcos con los caracteres de la cadena desde el estado de inicio hasta un estado de aceptacin
Otro Ejemplo
Un autmata finito que acepta cualquier cantidad de 1s seguido de un 0.
Alfabeto: {0,1}
1 0
Otro Ejemplo
Alfabeto {0,1} Que lenguage reconoce lo siguiente: