ClubEnsayos.com - Ensayos de Calidad, Tareas y Monografias
Buscar

Programación De Sistemas


Enviado por   •  6 de Mayo de 2013  •  1.162 Palabras (5 Páginas)  •  332 Visitas

Página 1 de 5

Token.

Un token o también llamado componente léxico es una cadena de caracteres que tiene un significado coherente en cierto lenguaje de programación. Ejemplos de tokens, podrían ser palabras clave (if, else, while, int,...), identificadores, números, signos, o un operador de varios caracteres, (por ejemplo, :=).

Son los elementos más básicos sobre los cuales se desarrolla toda traducción de un programa, surgen en la primera fase, llamada análisis léxico, sin embargo se siguen utilizando en las siguientes fases (análisis sintáctico y análisis semántico) antes de perderse en la fase de síntesis. SI Nuevo > MáxNúm ENTONCES... los tokens son: "SI" "NUEVO" ">" "MáxNúm" "entonces" los tokens se describen por lo general en dos partes, un tipo o clase y un valor: Token= (Tipo, Valor) para la secuencia anterior, los tokens pueden describirse como: (palabra reservada, SI) (identificador, "NUEVO") (operador, >) (identificador, "MáxNúm") (palabra reservada, ENTONCES).

Análisis léxico.

Un analizador léxico o analizador lexicográfico (en inglés scanner) es la primera fase de un compilador consistente en un programa que recibe como entrada el código fuente de otro programa (secuencia de caracteres) y produce una salida compuesta de tokens (componentes léxicos) o símbolos. Estos tokens sirven para una posterior etapa del proceso de traducción, siendo la entrada para el analizador sintáctico (en inglés parser).

Gramática léxica.

La especificación de un lenguaje de programación a menudo incluye un conjunto de reglas que definen el léxico. Estas reglas consisten común mente en expresiones regulares que indican el conjunto de posibles secuencias de caracteres que definen un token o lexema.

En algunos lenguajes de programación es necesario establecer patrones para caracteres especiales (como el espacio en blanco) que la gramática pueda reconocer sin que constituya un token en sí.

Análisis.

Esta etapa está basada usualmente en una máquina de estados finitos. Esta máquina contiene la información de las posibles secuencias de caracteres que puede conformar cualquier token que sea parte del lenguaje (las instancias individuales de estas secuencias de caracteres son denominados lexemas). Por ejemplo, un token de naturaleza entero puede contener cualquier secuencia de caracteres numéricos.

Herramienta FLEX.

Flex es una herramienta que traduce la especificación de un analizador léxico a un programa escrito en C que lo implementa.

Para especificarlo usaremos expresiones regulares a las que se puede asociar acciones escritas en C.

Cada vez que el analizador encuentra en la cadena de entrada una secuencia que encaja en una de las expresiones regulares especificadas, ejecutará la acción que le hayamos asociado.

fichero.l ---> FLEX ---> lex.yy.c

lex.yy.c + (ficheros .c) ---> GCC ---> ejecutable

Funcionamiento del analizador.

El fichero lex.yy.c contiene las tablas de autómata generado y la función int yylex (void) que simula el analizador especificado y sirve de interfaz con el código de usuario.

(Yylex () deberá de ser llamada en algún punto del código del usuario)

En cada llamada, yylex () irá tomando caracteres de la entrada hasta que machee una de las expresiones regulares de la especificación. Entonces, se almacenará el texto que ha macheado la expresión regular. En la variable yytext y se ejecutarán las acciones asociadas al patrón.

Las acciones podrán ser simplemente el procesamiento del texto macheado y enviarlo de nuevo a la salida.

En otras ocasiones podrán suponer la alteración de variables del código de usuario y la devolución a la rutina que llama a yylex () de algún tipo de dato por medio de RETURN (generalmente será un valor numérico que identifique la TOKEN encontrado).

ESTRUCTURA DE UNA ESPECIFICACIÓN FLEX.

Son tres partes a considerar. (Las dos primeras son obligatorias, aunque pueden estar vacías).

 <sección de declaraciones>

 <sección de reglas y acciones>

 <sección de rutinas de usuario>

Sección de Declaraciones.

En esta sección se puede incluir:

-

...

Descargar como (para miembros actualizados)  txt (7.8 Kb)  
Leer 4 páginas más »
Disponible sólo en Clubensayos.com