Você está na página 1de 4

Clase # 6 Conceptos del Anlisis Lxico

UNIVERSIDAD

GERARDO BARRIOS

COMPILADORES E INTRPRETES, CICLO I 2015


DOCENTE: ING. MARVIN OSMARO PARADA
CLASE # 6
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 palabra tanto 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

Por: Ing. Marvin Parada, Compiladores Ciclo I-2014

Pgina 1

Clase # 6 Conceptos del Anlisis Lxico

;, o que la declaracin de tipos debe ir antes que la de variables. (int var;)


QU ENTENDEMOS POR SEMANTICA?
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/lado 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. Marvin Parada, Compiladores Ciclo I-2014

Pgina 2

Clase # 6 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. Marvin Parada, Compiladores Ciclo I-2014

Pgina 3

Clase # 6 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. Marvin Parada, Compiladores Ciclo I-2014

Pgina 4

Você também pode gostar