ANALISIS
LEXICO
y Diagramas de Transición
UNIVERSIDAD “GERARDO BARRIOS”
FACULTAD DE CIENCIA Y TECNOLOGÍA
COMPILADORES E INTÉRPRETES. CICLO I – 2016
Análisis Lexico y DT 1
Análisis Lexico y DT 2
Objetivos
 Conocer el funcionamiento del analizador léxico
 Comprender su relación con la tabla de símbolos.
 Entender como interviene la generación de errores a
partir de ésta etapa.
 Aprender a especificar un analizador léxico.
 Realizar diagramas y tablas de transicion.
Análisis Lexico y DT 3
Fases de un
compilador
Compilación
Análisis Síntesis
Léxico
“Tokens”
Sintáctico
“Intrucciones”
Semántico
“significado”
Generación de
Código
Análisis Lexico y DT 4
Análisis Léxico
 Está constituido por todas las palabras y
símbolos que lo componen. Para un lenguaje de
programación la definición también es válida.
 Lo constituyen todos los elementos
individuales del lenguaje, denominados
frecuentemente en inglés tokens
Análisis Lexico y DT 5
Términos
Token
 Así son tokens: las palabras reservadas del
lenguaje, los símbolos que denotan los distintos
tipos de operadores, identificadores (de
variables, de funciones, de procedimientos, de
tipos, etc.), separadores de sentencias y otros.
Análisis Lexico y DT 6
Términos
Token
◦ Elemento léxico del lenguaje
◦ Símbolo No Terminal de las fases siguientes
Patrón
◦ Expresión regular que define el lenguaje
◦ Letra (Letra | Digito)*
Análisis Lexico y DT 7
Términos
Lexema
◦ Secuencia de caracteres que concuerda con un patrón
◦ Numero, caracter.
Atributos
◦ Estructura de datos de cada token para almacenarse en la
TS
◦ Depende del tipo de token
◦ [ID, Lexema, Tipo, Valor, línea]
Análisis Lexico y DT 8
ANALISIS
LEXICO
 Un programa fuente es una serie de símbolos
que representan las construcciones del lenguaje
tales como variables, etiquetas, palabras
reservadas, constantes, operadores, entre otros.
 El programa fuente se trata inicialmente con el
analizador léxico
Análisis Lexico y DT 9
Pasos del AL
 Identificar la colección de tokens
 Estructurar la colección de tokens
 Describir el lenguaje como expresiones regulares
Análisis Lexico y DT 10
EJEMPLO
 Así, para la siguiente sentencia de Pascal:
IF cuenta = sueldo THEN jefe:= justo;
El analizador léxico la separa en la siguiente
secuencia de tokens:
Análisis Lexico y DT 11
EJEMPLO
Y les asigna su atributo, habitualmente por medio
de un código numérico cuyo significado se ha
definido previamente.
Análisis Lexico y DT 12
LEXICO
El análisis léxico es un análisis a
nivel de caracteres, su misión es
reconocer los componentes
léxicos o tokens, enviando al
analizador sintáctico
Análisis Lexico y DT 13
Ejemplo
 Analizador léxico que reconozca los siguientes
elementos:
 Números enteros
 Operadores aritméticos suma, resta, producto,
división, incremento y decremento (+, - *, /, ++,--)
 Identificadores
 WHILE
Análisis Lexico y DT 14
Especificación AL
Especificación formal
 Gramáticas Lineales
 Recursivas a izquierdas
 Recursivas a derechas
 expresiones regulares
 Autómatas Finitos (Diagramas de Transición)
Análisis Lexico y DT 15
Funciones del AL
 Tratar con la tabla de símbolos
 Generar tokens bajo demanda del analizador
sintáctico
 Manejar el fichero fuente
 Ignorar comentarios
 Contabilizar posición de tokens
 Preprocesar macros, constantes, includes…
Análisis Lexico y DT 16
ANALISIS LEXICO
Jueves 07 de abril de 2016
Grupos de 3 o 4 integrantes

Clase analisis lexico

  • 1.
    ANALISIS LEXICO y Diagramas deTransición UNIVERSIDAD “GERARDO BARRIOS” FACULTAD DE CIENCIA Y TECNOLOGÍA COMPILADORES E INTÉRPRETES. CICLO I – 2016 Análisis Lexico y DT 1
  • 2.
    Análisis Lexico yDT 2 Objetivos  Conocer el funcionamiento del analizador léxico  Comprender su relación con la tabla de símbolos.  Entender como interviene la generación de errores a partir de ésta etapa.  Aprender a especificar un analizador léxico.  Realizar diagramas y tablas de transicion.
  • 3.
    Análisis Lexico yDT 3 Fases de un compilador Compilación Análisis Síntesis Léxico “Tokens” Sintáctico “Intrucciones” Semántico “significado” Generación de Código
  • 4.
    Análisis Lexico yDT 4 Análisis Léxico  Está constituido por todas las palabras y símbolos que lo componen. Para un lenguaje de programación la definición también es válida.  Lo constituyen todos los elementos individuales del lenguaje, denominados frecuentemente en inglés tokens
  • 5.
    Análisis Lexico yDT 5 Términos Token  Así son tokens: las palabras reservadas del lenguaje, los símbolos que denotan los distintos tipos de operadores, identificadores (de variables, de funciones, de procedimientos, de tipos, etc.), separadores de sentencias y otros.
  • 6.
    Análisis Lexico yDT 6 Términos Token ◦ Elemento léxico del lenguaje ◦ Símbolo No Terminal de las fases siguientes Patrón ◦ Expresión regular que define el lenguaje ◦ Letra (Letra | Digito)*
  • 7.
    Análisis Lexico yDT 7 Términos Lexema ◦ Secuencia de caracteres que concuerda con un patrón ◦ Numero, caracter. Atributos ◦ Estructura de datos de cada token para almacenarse en la TS ◦ Depende del tipo de token ◦ [ID, Lexema, Tipo, Valor, línea]
  • 8.
    Análisis Lexico yDT 8 ANALISIS LEXICO  Un programa fuente es una serie de símbolos que representan las construcciones del lenguaje tales como variables, etiquetas, palabras reservadas, constantes, operadores, entre otros.  El programa fuente se trata inicialmente con el analizador léxico
  • 9.
    Análisis Lexico yDT 9 Pasos del AL  Identificar la colección de tokens  Estructurar la colección de tokens  Describir el lenguaje como expresiones regulares
  • 10.
    Análisis Lexico yDT 10 EJEMPLO  Así, para la siguiente sentencia de Pascal: IF cuenta = sueldo THEN jefe:= justo; El analizador léxico la separa en la siguiente secuencia de tokens:
  • 11.
    Análisis Lexico yDT 11 EJEMPLO Y les asigna su atributo, habitualmente por medio de un código numérico cuyo significado se ha definido previamente.
  • 12.
    Análisis Lexico yDT 12 LEXICO El análisis léxico es un análisis a nivel de caracteres, su misión es reconocer los componentes léxicos o tokens, enviando al analizador sintáctico
  • 13.
    Análisis Lexico yDT 13 Ejemplo  Analizador léxico que reconozca los siguientes elementos:  Números enteros  Operadores aritméticos suma, resta, producto, división, incremento y decremento (+, - *, /, ++,--)  Identificadores  WHILE
  • 14.
    Análisis Lexico yDT 14 Especificación AL Especificación formal  Gramáticas Lineales  Recursivas a izquierdas  Recursivas a derechas  expresiones regulares  Autómatas Finitos (Diagramas de Transición)
  • 15.
    Análisis Lexico yDT 15 Funciones del AL  Tratar con la tabla de símbolos  Generar tokens bajo demanda del analizador sintáctico  Manejar el fichero fuente  Ignorar comentarios  Contabilizar posición de tokens  Preprocesar macros, constantes, includes…
  • 16.
    Análisis Lexico yDT 16 ANALISIS LEXICO Jueves 07 de abril de 2016 Grupos de 3 o 4 integrantes