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

MTRO. ALEXANDRO YAEZ DGUEZ.

ANALIZADOR LXICO
Funcin de un analizador lxico, autmatas finitos Expresiones regulares y AFN. Diseo de un generador de analizadores lxicos. Autmatas finitos determinsticos Autmatas finitos no determinsticos

1. Funcin de un analizador lxico


Leer los caracteres de cdigo fuente y formarlos en unidades lgicas para que lo aborden las partes siguientes de compilador (generalmente el analizador Sintctico).las unidades lgicas que genera el analizador lxico se denominan Tokens. Los Tokens son las palabras de un lenguaje natural: cada tokens es una secuencia de caracteres que representa una unidad de informacin en el programa fuente.

1. Funcin de un analizador lxico


TOKENS: Palabras reservadas: if, while, son cadenas fijas de letras. Identificadores: Son cadenas definidas por el usuario; compuesta por lo general de letras y nmeros y que comienzan con una letra. Smbolos especiales: como los smbolos aritmticos +, * , -. Adems de algunos smbolos compuestos de mltiples caracteres como son: <,>, = , <>.

1. Funcin de un analizador lxico


ATRIBUTO DEL TOKEN El atributo es cualquier valor asociado a un Token. Ejm: El Token NUM puede tener un atributo de valor de cadena como 32767, que consta de 5 caracteres numricos, pero tambin tendr un atributo de valor numrico que consiste en le valor real de 32767 calculado a partir de su valor de cadena.

1. Funcin de un analizador lxico


El token de smbolo especial como MAS, no solo se tiene el valor de cadena +, sino tambin la operacin aritmtica real + que esta asociada con l mismo. Es decir el smbolo del token mismo se puede ver simplemente como otro atributo.

1. Funcin de un analizador lxico


REGISTRO DE TOKEN

El mismo analizador lxico puede realizar la operaciones necesarias para registrar un atributo en el lugar apropiado, o puede simplemente pasar el atributo a una fase posterior del compilador Debido a que el analizador lxico posiblemente tendr que calcular varios atributos para cada token, a menudo es til recolectar todos lo atributos en un solo tipo de datos estructurado.

1. Funcin de un analizador lxico


REGISTRO DE TOKEN Un registro as se podra declarar en C como: El atributo de valor de cadena slo es necesario para identificadores y atributo de valor numrico slo para nmeros. Un arreglo ms comn es que el analizador lxico solamente devuelva el valor del Token y coloque los otros atributos en variables donde se puede tener acceso a ellos por otras partes del compilador

2. Expresiones Regulares
Estas expresiones representan patrones de cadena de caracteres. Las expresiones regulares r se encuentran completamente definidas mediante el conjunto de cadenas con las que concuerda. Este conjunto se denomina lenguaje generado por la expresin regular. Vale decir que la palabra lenguaje se utiliza para definir conjunto de cadenas y no tiene una relacin especifica con el lenguaje de programacin.

2. Expresiones Regulares
Este lenguaje depende en primer lugar del conjunto de caracteres ASCII o de algn subconjunto del mismo, en ocasiones el conjunto ser mas general que el conjunto de caracteres ASCII. En cuyo caso los elementos se describirn como Smbolos. Este conjunto de smbolos legales se conoce como alfabeto y se representa con el smbolo griego (sigma). Por ltimo una expresin regular r puede contener caracteres que contengan significados especiales, este tipo de caracteres se llama metacaracteres o metasmbolos.

2. Expresiones Regulares
METACARACTERES O METASMBOLOS No pueden ser caracteres legales en el alfabeto. Sin embargo, a menudo hay situaciones que mediante el uso de un carcter de escape desactiva el significado especial de un metacarcter, los mas comunes con la diagonal inversa y las comillas. Advierte que los caracteres de escape si son caracteres legales en el alfabeto, son por si mismo metacarcteres.

2. Expresiones Regulares
EXPRESIONES REGULARES BSICA Cadena Vaca: Cadena que no contiene ningn carcter y se utiliza el smbolo (psilon) para denotar la cadena vaca y definiremos el metasmbolo ( ) estableciendo L( )={ }. Conjunto Vaco: La ausencia de cadenas y se describir como { } y su smbolo ser . Observe que la diferencia entre { } y { }: el conjunto { } no contienen ninguna cadena, mientras que el conjunto { } contiene la cadena simple que no se contiene de ningn carcter.

2. Expresiones Regulares
OPERACIONES DE EXPRESIONES REGULARES:

Seleccin entre alternativas: y se indica mediante el metacaracter | (barra vertical). Concatenacin: se indica mediante la yuxtaposicin sin un metacarcter. Repeticin o cerradura: y se indica mediante el metacaracter * .

2. Expresiones Regulares
OPERACIONES DE EXPRESIONES REGULARES Seleccin entre alternativas: Si r y s son expresiones regulares, entonces en trminos de lenguajes, ellenguaje r |s es la unin de los lenguajes de r y s o L(r |s)= L(r) U L(s). Concatenacin: La concatenacin de dos expresiones regulares r La concatenacin de dos expresiones regulares r y s se escribe como rs, y corresponde a cualquier cadena que sea la concatenacin de dos cadenas, con al primera de ella correspondiendo a r y la segunda correspondiendo a s.

2. Expresiones Regulares
Repeticin: La repeticin de una expresin regular, denominada tambin en ocasiones cerradura (de Kleenne) se escribe r*, donde r es una expresin regular. La expresin regular r* corresponde a cualquier concatenacin finita de cadenas, cada una de las cuales corresponde a r .

2. Expresiones Regulares

2. Expresiones Regulares
LA PRECEDENCIA DE LAS OPERACIONES La seleccin entre alternativa tiene la precedencia ms baja. La concatenacin tiene uan precedencia Media. Asterisco o repeticin tiene la precedencia ms alta.

4. Autmatas Finitos
Un autmata finito o mquina de estado finito es un modelo matemtico de un sistema que recibe una cadena constituida por smbolos de un alfabeto y determina si esa cadena pertenece al lenguaje que el autmata reconoce. Un alfabeto = {a, b, c}, una cadena podra ser: x = aacbbcba.

4. Autmatas Finitos
En el comienzo del proceso de reconocimiento de una cadena, el AF se encuentra en el estado inicial y a medida que procesa cada smbolo de la cadena va cambiando de estado de acuerdo a lo determinado por la funcin de transicin. Cuando se ha procesado el ltimo de los smbolos de la cadena de entrada, el autmata se detiene. Si el estado en el que se detuvo es un estado de aceptacin o final, entonces la cadena pertenece al lenguaje reconocido por el autmata, caso contrario, la cadena no pertenece a dicho lenguaje.

4. Autmatas Finitos
Formalmente, un autmata finito (AF) puede ser descrito como una 5-tupla (S,,T,s,A) donde: S un conjunto de estados; es un alfabeto; T es la funcin de transicin: ; es el estado inicial; es un conjunto de estados de aceptacin o finales. Ejemplo 1 S = {S1, S2}, = {0,1}, T = {(S1,0,{S2});(S1,1,{S1});(S2,0,{S1});(S2,1,{S2})} s = S1 A = {S1}.

4. Autmatas Determinsticos
Un AFD o autmata finito determinista es aquel autmata finito cuyo estado de llegada est unvocamente determinado por el estado inicial y el carcter ledo por el autmata. Formalmente, un autmata finito determinista (AFD) es similar a un Autmata de estados finitos, representado con una 5-tupla (S,,T,s,A) donde: es un alfabeto; S un conjunto de estados; T es la funcin de transicin: ; es el estado inicial; es un conjunto de estados de aceptacin o finales

4. Autmatas Determinsticos
Al contrario de la definicin de autmata finito, este es un caso particular donde no se permiten transiciones vacas, el dominio de la funcin T es S (con lo cual no se permiten transiciones desde un estado de un mismo smbolo a varios estados). A partir de este autmata finito es posible hallar la expresin regular resolviendo un sistema de ecuaciones. S1 = 1 S1 + 0 S2 + S2 = 1 S2 + 0 S1 Siendo la palabra nula. Resolviendo el sistema y haciendo uso de las reducciones apropiadas se obtiene la siguiente expresin regular: 1*(01*01*)*.

5. Autmatas No Determinsticos
Un AFND o autmata finito no determinista es aquel que presenta cero, una o ms transiciones por el mismo carcter del alfabeto. Un autmata finito no determinista tambin puede o no tener ms de un nodo inicial. Los AFND tambin se representan formalmente como tuplas de 5 elementos (S,,T,s,A). La nica diferencia respecto al AFD es T. AFD: AFND: (partes de S) Debido a que la funcin de transicin lleva a un conjunto de estados, el automta puede estar en varios estados a la vez (o en ninguno si se trata del conjunto vaco de estados).

GRACIAS

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