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

Conceptos del Anlisis Lxico

CONCEPTOS GENERALES SOBRE ANALISIS LEXICO

OBJETIVO

Definicin de conceptos generales sobre la unidad II, Anlisis Lxico.


1. Token 9. Diagrama y Tabla de Transicin
2. Patrn 10. Autmata
3. Lexema 11. Autmata Finito
4. Atributo 12. Autmata Finito Determinista
5. Gramtica 13. Autmata Finito No Determinista
6. Alfabeto 14. Autmata de Pila
7. Smbolo 15. Autmata de Turing
8. Expresin Regular

QU ENTENDEMOS POR LEXICO?

El lxico de un lenguaje natural est constituido por todas las palabras y smbolos que lo
componen. Para un lenguaje de programacin la definicin tambin es vlida.

En un lenguaje de programacin el lxico lo constituyen todos los elementos individuales del


lenguaje, denominados frecuentemente en ingls tokens. As son tokens: 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.

QU ENTENDEMOS POR SINTAXIS?

En lingstica, sintaxis es el estudio de la funcin que desempea cada palabra en el entorno de


una frase. Mientras que semntica es el estudio del significado de una palabratanto a nivel
individual como en el contexto de una frase.

En los lenguajes de programacin, sintaxis es un conjunto de reglas formales que especifican la


composicin de los programas a base de letras, dgitos y otros caracteres.Por ejemplo, las reglas
de sintaxis especifican en C/C++ que cada sentencia o lnea de programa debe terminar con un
;, o que la declaracin de tipos debe ir antes que la de variables. (int var;)

QU ENTENDEMOS POR SEMANTICA?

Por: Ing. Pedro Antonio Villalta, Compiladores e Interpretes Pgina 1


Conceptos del Anlisis Lxico

Semntica en los lenguajes de programacin es el conjunto de reglas que especifican el


significado de cualquier sentencia, sintcticamente correcta y escrita en un determinado lenguaje.
Por ejemplo en el lenguaje Pascal la sentencia: suma:= 27/x Es sintcticamente correcta, ya que
a la izquierda del smbolo de asignacin hay un identificador, y a la derecha una expresin.

Pero para que sea semnticamente correcta hay que comprobar:

a) Lado debe ser compatible con el operador / y con el operando 27.


b) Suma debe ser un tipo compatible con el resultado de la operacin.

El ANALIZADOR LEXICO

Un programa fuente es una serie de smbolos (letras, smbolos, caracteres especiales: +,*, !). Con
estos smbolos se representan las construcciones del lenguaje tales como variables, etiquetas,
palabras reservadas, constantes, etc. Es necesario que el compilador o traductor identifique los
distintos significados de estas construcciones, que los creadores de lenguajes dan en la definicin
del lenguaje.

El programa fuente se trata inicialmente con el analizador lxico (en ingls scanner), con el
propsito de agrupar el texto en grupos de caracteres con significado propio llamados tokens o
componentes lxicos, tales como variables, identificadores, palabras reservadas y operadores. Por
razones de eficiencia a cada token se le asocia un atributo (o ms de uno) que se representa
internamente por un cdigo numrico o por un tipo enumerado.

Por ejemplo considerar la siguiente sentencia es C/C++:

if sueldo == 1000 sueldo * 0.25;

El analizador lxico la separa en la siguiente secuencia de tokens:

Por: Ing. Pedro Antonio Villalta, Compiladores e Interpretes Pgina 2


Conceptos del Anlisis Lxico

En general, el anlisis lxico es un anlisis a nivel de caracteres, su misin es reconocer los


componentes lxicos o tokens, enviando al analizador sintctico (en la siguiente etapa)los
tokens y sus atributos.

CONCEPTOS ANALIZADOR LEXICO

Token
Es el nombre que se le da a cada patrn definido, ste nombre debe usarse en todos los
procesos del anlisis en todos los lexemas encontrados.

Patrn
Es una representacin lgica de una serie de agrupaciones de caracteres con caractersticas
comunes.

Lexema
Es cada una de las combinaciones de caracteres que encajan en la definicin de un patrn o
token. Ej. Variable1, x, a, edad, y2, etc.

Atributo
Caractersticas propias de cada token, por tanto se les denomina atributos del token.

Gramtica
Se define como un ente formal para especificar de una manera finita el conjunto de cadenas de
smbolos que constituyen un lenguaje.

Alfabeto
Conjunto finito de smbolos no vaco que conforman una gramtica, se representan por
(sigma).

Por: Ing. Pedro Antonio Villalta, Compiladores e Interpretes Pgina 3


Conceptos del Anlisis Lxico

Smbolo
Entidad abstracta que no se va a definir pues se deja como axioma. Normalmente son letras de
alfabetos, nmeros o caracteres especiales como +, -, *, /, etc. No necesariamente sern uno
solo, ya que un smbolo puede ser una combinacin como palabras reservadas de un lenguaje
de programacin then, end, beging, else, while, etc.

Expresin Regular
Representan patrones de cadenas de caracteres. Se conocen ms como metalenguajes que
sirven para describir los lenguajes regulares.

Diagrama de Transicin
Es el conjunto de secuencias de entrada que representan grficamente los smbolos validos por
la gramtica, es una representacin de los universales autmatas que aparecen en la
matemtica y otras ciencias.

Tabla de Transiciones
Es la manera ms cercana de representar los autmatas, consta de filas que representan los
estados y las columnas que representan los smbolos de entrada. Adicionalmente se agregan
dos columnas para representar los tokens y para indicar retrocesos.

Cadena
Se define como una secuencia de smbolos de un lenguaje determinado. Por ejemplo 0001,
abcd, a+4*b, 11000, etc. Una cadena siempre tiene una longitud que esta denotada por la
cantidad de smbolos independientes que la conforman.
|abcde| 5
|000111| 6
Cuando la cadena es vaca se representa como ||0.

Lenguaje
Un lenguaje es un conjunto de palabras que se puede representar con un determinado alfabeto.

Autmata
Es una construccin lgica que recibe como entrada una cadena de smbolos y produce una
salida indicando si la salida es una cadena que pertenece a un determinado lenguaje.

Por: Ing. Pedro Antonio Villalta, Compiladores e Interpretes Pgina 4


Conceptos del Anlisis Lxico

Autmata Finito
Son formas matemticas para describir las diferentes clases particulares de algoritmos.En el
mundo de la computacin permiten reconocer cadenas de smbolos, por eso se usan en la
etapa de lxico de los compiladores.

Autmata Finito Determinista

Formalmente, un autmata finito determinista M es una coleccin de cinco elementos:


1. Un alfabeto de entrada S.
2. Una coleccin finita de estados Q.
3. Un estado inicial Q0.
4. Una coleccin de estados finales o de aceptacin Qf.
5. Una funcin f : QS Q que determina el nico estado siguiente para el par(Qi, S)
correspondiente al estado actual y la entrada.

Autmata Finito No Determinista

Si se permite que desde un estado se realicen cero, una o ms transiciones mediante el mismo
smbolo de entrada, se dice que el autmata finito es no determinista. A veces es ms
conveniente disear autmatas finitos no determinista.
Un autmata finito no determinista es una coleccin de cinco objetos (Q,S, Q0, Qf, f), donde:

1. Una coleccin finita de estados Q.


2. Un alfabeto de entrada S.
3. Un estado inicial Q0.
4. Una coleccin de estados finales o de aceptacin Qf.
5. Una funcin f : QSP(Q) que determina un subconjunto de Q para el par(Qi, S)
correspondiente al estado actual y la entrada. P(Q) son los subconjuntos de Q.
(AFN) en lugar de deterministas.

Autmata de Pila

Formalmente un autmata de pila es una sxtupla de la forma (S,,,T,i,F) donde:

S: Es una coleccin finita de estados


: Es el alfabeto de la maquina

Por: Ing. Pedro Antonio Villalta, Compiladores e Interpretes Pgina 5


Conceptos del Anlisis Lxico

: Es la coleccin finita de smbolos de pila


T: Es una coleccin finita de transiciones
i: Es el estado inicial (es un elemento de S)
F: Es la coleccin de estados de aceptacin (es un subconjunto de S)

Autmata de Turing

Formalmente una mquina de Turing es una sxtupla de la forma (S, , , , i, h) donde:

S: Coleccin finita de estados (por lo menos 2 uno de inicio y uno de parada).


: Es un conjunto finito de smbolos distintos de espacio en blanco (), llamado
alfabeto de la maquina.
: Conjunto finito de smbolos, incluidos los de , que se conocen como smbolos
de la maquina (incluye )
: Funcin de transicin de la maquina
i: Elemento de S, llamado estado inicial
h: Elemento de S, llamado estado de parada.

Por: Ing. Pedro Antonio Villalta, Compiladores e Interpretes Pgina 6


Conceptos del Anlisis Lxico

Pedro Antonio Villalta, perfil de Google+


https://plus.google.com/u/0/105223072803758915793/about

Perfiles en Facebook y Twitter

Facebook.com/pavillalta
twitter.com/pavillalta

Correos de contacto

pavillalta@gmail.com
pavillalta@ugb.edu.sv

Blogs educativos

1. Comercio electronico (e-commerce)


2. Compiladores e interpretes
3. Desarrollo de aplicaciones para dispositivos mviles (development
mobile applications)
4. Ingenieria en sistemas informticos (systems engineering)
5. Ingenieria web (web engineering)
6. Noticias de tecnologa | informtica | ciencia (technology news)
7. Programacion visual c++ .net (programming visual c + +. net)
8. Programacion web php, ajax, css, javascrip...(web programming)
9. Programacin visual basic .net (programming visual basic)
10. Redes de computadoras (computer network)
11. Investigacin Cientfica
12. Artes Marciales, Tae Kwon Do

Por: Ing. Pedro Antonio Villalta, Compiladores e Interpretes Pgina 7

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