Redes

Páginas: 8 (1970 palabras) Publicado: 8 de diciembre de 2010
Analizador Lexicográfico

Software de Sistemas Mónica Pinto Alarcón Curso 2005/2006

1

Introducción
Programa Fuente = Serie de Símbolos
Los símbolos representan las construcciones del lenguaje
Variables, etiquetas, palabras reservadas, constantes, operadores

El analizador léxico identifica los significados de estas construcciones Lee el programa fuente carácter a carácter Los comparacon patrones que representan unidades sintácticas primarias o tokens
2/38

1

Introducción
Un analizador léxico: Transforma el programa fuente a tiras de tokens Cada token pueden tener asociado uno o varios atributos
Ejemplo: Un atributo de un token puede ser un puntero a la tabla de símbolos o un puntero a la tabla de constantes.
3/38

Ejemplo 1
posición := principal + velocidad * 60IDENT ASIGNACION IDENT MAS IDENT POR ENTERO
Tabla de Símbolos

TOKEN IDENT IDENT IDENT ENTERO

ATRIBUTO

SIMBOLO posición principal velocidad

INFORMACIÓN
Ej. tipo de la variable

... ...

60
4/38

2

Funciones del Analizador Lexicográfico
Funciones Básicas
Leer carácter a carácter del programa fuente. Entregarle los tokens identificados al analizador sintáctico Producirparte del listado con los errores de compilación

Funciones Complementarias
Ignorar del programa fuente los comentarios, espacios en blanco y tabuladores. Reconocer las palabras reservadas del lenguaje. Reconocer las variables y asignarles una posición en la tabla de símbolos. Relacionar mensajes de error con el número de línea en el que aparecen.
5/38

Lexemas, expresiones regulares ytokens
perimetro := radio + 47

Token
IDENT ASIG MAS

Lexema
perimetro, radio, pi, hola := +

Expr. Regular

Expr. Reg. LEX

(a+...+z+_)(a+...+z+_+0+...+9)* [a-zA-Z_][a-zAZ0-9_]* := + (0+...+9)(0+...+9)* (F+f)(O+o)(R+r) := + [0-9]+ [Ff][Oo][Rr]

ENTERO 47, 1234567, 0 PR_FOR For, for, FOR

IDENT ASIG IDENT MAS ENTERO

6/38

3

Lexemas, expresiones regulares y tokens
Lexemas: Soncaracteres o conjuntos de caracteres (palabras) que pertenecen al léxico del lenguaje. Expresiones Regulares (Patrones): Definen las reglas que permiten identificar los componentes léxicos o tokens. Tokens: Son los componentes léxicos generados por el analizador lexicográfico Atributos: Son información adicional para cada componente léxico que serán utilizadas en el análisis semántico y/o en lafase de síntesis (ej. Lexema, Tipo, Valor, Línea). Depende del token
7/38

Ejemplo 2
Expresiones Regulares
a*(b | c)+
bccbcbccbc abbbccc abbcbcccbbc

L1 = {w : w=a*(b | c)+}

(0-9)*.(0-9)+
0.236425 3567.45627 .753473 5.0

L2 = {w: w=(0-9)*.(0-9)+} a* 0 o más “a” (b | c) “b” o “c” c+ 1 o más “c” 0-9 0 ó 1 2 ó …ó 9
8/38

4

Ejemplo 3
Expresión Regular
end loopif read start varwrite [0-9]+ [a-zA-Z](_?([a-zA-Z0-9]))* , ; ( ) [+-] [*/] “”|””|””|”=“ := [ \n] .

Token
end loopif read start var write entero id coma pyc pari pard opsum opmul oprel asig -

Atributos
valor Puntero tabla símbolos Constante identificando + o – Constante identificando * o / Constante identificando op. 9/38 -

Implementación del Analizador Lexicográfico
Estrategias de ImplementaciónImplementación automática
Especificación de los patrones de la gramática Uso de LEX

Implementación manual
Codificación con estructuras condicionales (if, case, …)

10/38

5

LEX
Uso básico:
Implementación de la fase de Análisis Lexicográfico de un compilador Uso combinado con el Analizador sintático YACC

Otros usos de Lex:
Transformaciones sencillas de ficheros fuente
Ej: Dado un textocompletamente en mayúsculas convertirlo en un texto en formato “frase”: mayúscula sólo la primera letra de una palabra tras un punto.

11/38

LEX
Acepta una especificación del lenguaje de programación mediante un conjunto de expresiones regulares A cada expresión regular se le puede asociar código C que se ejecutará cuando se el correspondiente lexema en el programa de entrada Genera un...
Leer documento completo

Regístrate para leer el documento completo.

Estos documentos también te pueden resultar útiles

  • Red De Redes
  • Red de redes
  • Redes
  • Redes
  • Redes
  • Redes
  • Redes
  • Redes

Conviértase en miembro formal de Buenas Tareas

INSCRÍBETE - ES GRATIS