Loading presentation...

Present Remotely

Send the link below via email or IM

Copy

Present to your audience

Start remote presentation

  • Invited audience members will follow you as you navigate and present
  • People invited to a presentation do not need a Prezi account
  • This link expires 10 minutes after you close the presentation
  • A maximum of 30 users can follow your presentation
  • Learn more about this feature in our knowledge base article

Do you really want to delete this prezi?

Neither you, nor the coeditors you shared it with will be able to recover it again.

DeleteCancel

Make your likes visible on Facebook?

Connect your Facebook account to Prezi and let your likes appear on your timeline.
You can change this under Settings & Account at any time.

No, thanks

Componentes léxicos, patrones y lexemas

No description
by

Geovanni Guzman

on 2 April 2014

Comments (0)

Please log in to add your comment.

Report abuse

Transcript of Componentes léxicos, patrones y lexemas

Componentes léxicos, patrones y lexemas
Creación de tabla de tokens

Análisis léxico (Scanner)
La fase de rastreo (scanner), tiene las funciones de leer el programa fuente como un archivo de caracteres y dividirlo en tokens.
Función de un analizador léxico
Su principal función consiste en leer la secuencia de caracteres del programa fuente, carácter a carácter, y elaborar como salida la secuencia de componentes léxicos que utiliza el analizador sintáctico.
¿Cómo lo hace?
El analizador sintáctico emite la orden al analizador léxico para que agrupe los caracteres y forme unidades con significado propio llamados componentes léxicos (tokens).
¿Qué es un token?
Los tokens son las palabras reservadas de un lenguaje, secuencia de caracteres que representa una unidad de información en el programa fuente.
Ejemplo: if, else, while, int, etc.
Los componentes léxicos
Palabras reservadas: if, while, do, …
Identificadores: variables, funciones, tipos definidos por el usuario, etiquetas, …
Operadores: =, >, <, >=, <=, +, *, …
Símbolos especiales: ;, ( ), { }, …
Constantes numéricas. literales que representan valores enteros y flotantes.
Constantes de carácter: literales que representan cadenas de caracteres.
Otras funciones
Manejo de apertura y cierre de archivo, lectura de caracteres y gestión de posibles errores de apertura.
Eliminar comentarios, espacios en blanco, tabuladores y saltos de línea.
Contabilizar número de líneas y columnas para emitir mensajes de error.
Ventajas
Al separar el análisis léxico y análisis sintáctico es que facilita la transportabilidad del traductor si se decide realizar cambios posteriores, por ejemplo cambiar las etiquetas begin-end por llaves de apertura y cierre { }.
Componentes léxicos, patrones y lexemas
Componente léxico
Es la secuencia lógica y coherente de caracteres relativo a una categoría: identificador, palabra reservada, literales (cadena/numérica), operador o carácter de puntuación, además de que un componente léxico puede tener uno o varios lexemas.
Patrón
Es una regla que genera la secuencia de caracteres que puede representar a un determinado componente léxico (expresión regular).
¿Qué es una expresion regular?
Frecuentemente se les llaman patrones, ya que son expresiones que describen a un conjunto de cadenas.
Lexema
Es una cadena de caracteres que concuerda con un patrón que describe un componente léxico (valor de cadena).
Ejemplo
Ejemplo de una cadena de código: const pi = 3.1416;
Nota
En la practica los componentes léxicos suelen tener solo un atributo.
Para efectos de diagnóstico, puede considerarse tanto el lexema para un identificador como el numero de línea en el que se encontró por primera vez. Esta información puede ser almacenada en la tabla de símbolos para el identificador.
Creación de tabla de tokens
Almacena todos los nombres declarados en el programa y sus atributos (tipo, valor, dirección, parámetros, etc.).
Funciones
Verificar que la sintaxis sea correcta
Ayudar en la generación apropiada de código.
Ambas funciones se realizan insertando o recuperando desde la tabla de símbolos los atributos de las variables usadas en el programa fuente.
Atributos
Tales como: el nombre, tipo, dirección de almacenamiento y dimensión de una variable, usualmente se encuentran explícitamente en las declaraciones o más implícitamente a través del contexto en que aparecen los nombres de variables en el programa.
Objetivo
Registrar información que se comparte entre varias etapas y que permite administrar los recursos asociados a las entidades que manipulará el programa.
Ejemplo
if Plazo >= 30
then Tasa := Base + Recargo / 100
else Tasa := Base
[if] [Plazo] [>=] [30]
[then] [Tasa] [:=] [Base] [+] [Recargo] [/] [100]
[else] [Tasa] [:=] [Base]
[59] [Plazo] [>=] [30]
[then] [Tasa] [:=] [Base] [+] [Recargo] [/] [100]
[else] [Tasa] [:=] [Base]
[59] [27] [80] [28]
[60] [27] [85] [27] [70] [27] [73] [28]
[61] [27] [85] [27]

IF ID >= CTE
THEN ID := ID + ID / CTE
ELSE ID := ID
Full transcript