Programacion De Sistemas

Páginas: 5 (1005 palabras) Publicado: 7 de agosto de 2012
ANALIZADOR LEXICO

* FUNCIONES DEL ANALIZADOR LEXICO

Analizador léxico (scanner): lee la secuencia de caracteres del programa fuente, caracter a carácter, y los agrupa para formar unidades con significado propio, los componentes léxicos (tokens en ingles). Estos componentes léxicos representan:

* palabras reservadas: if, while, do,. .
* identificadores:asociados a variables, nombres de funciones, tipos definidos por el usuario, etiquetas,... Por ejemplo: posicion, velocidad, tiempo,. . .
* operadores: = * + - / == > < & ! = . . .
* símbolos especiales: ; ( ) [ ] f g ...
* constantes numéricas: literales que representan valores enteros, en coma flotante, etc., 982, 0xF678, -83.2E+2,...
* constantes de caracteres: literalesque representan cadenas concretas de caracteres, \hola mundo",...

El analizador léxico opera bajo petición del analizador sintáctico devolviendo un componente léxico conforme el analizador sintáctico lo va necesitando para avanzar en la gramática. Los componentes léxicos son los símbolos terminales de la gramática. Suele implementarse como una subrutina del analizador sintáctico. Cuando recibela orden obtiene el siguiente componente léxico, el analizador léxico lee los caracteres de entrada hasta identificar. El siguiente componente léxico.

* COMPONENTES LÉXICOS, PATRONES, LEXEMAS
Patrón: es una regla que genera la secuencia de caracteres que puede representar a un determinado componente léxico (una expresión regular).
Lexema: cadena de caracteres que concuerda con un patrónque describe un componente léxico. Un componente léxico puede tener uno o infinitos lexemas. Por ejemplo: palabras reservadas tienen un único lexema. Los números y los identificadores tienen infinitos lexemas.

Compon. Léxico | Lexema | Patrón |
Identificador | índice, a, temp | letra seguida de letras o dígitos |
núm. entero | 1492, 1, 2 | digito seguido de mas dígitos |
If | If | letra iseguida de letra f |
do | Do | letra d seguida de o |
Op div | / | caracter / |
Op asig | = | caracter = |

Los componentes léxicos se suelen definir como un tipo enumerado. Se codifican como enteros. También se suele almacenar la cadena de caracteres que se acaba de reconocer (el lexema), que se usara posteriormente para el análisis semántico.

Typedef enum {TKN IF, TKN THEN, TKN NUM,TKN ID, TKN OPADD}...g Token Type;
Es importante conocer el lexema (para construir la tabla de símbolos). Los componentes léxicos se representan mediante una estructura registro con tipo de token y lexema:

Typedef struct {
TokenType token;
Char *lexema; //se reserva memoria dinámicamente
} Token Record;
Token Record gets Token (void);

a [índice]= 2 + 4
Buffer de entrada
| a | [ | i| n | d | i | c | e | ] | = | | 2 | | + | | 4 | | | |

Cada componente léxico va acompañado de su lexema:

<TKN ID, a>
<TKN CORAPER, [>
<TKN ID, indice>
<TKN CORCIERRE, ]>
<TKN NUM, 2>
<TKN OPADD, +>
<TKN NUM, 4>

* ESPECIFICACIÓN DE LOS COMPONENTES LÉXICOS: EXPRESIONES REGULARES.

Los componentes léxicos se especifican haciendouso de expresiones regulares. Además de las tres operaciones básicas: concatenación, repetición (Una o más repeticiones +r+ indica una o más repeticiones de r
(0|1)+ = (0|1)(0|1)*

Cualquier carácter
.*b.* indica cualquier cadena que contiene una letra b

Un rango de caracteres [ ] (clase):

[a-z] indica cualquier carácter entre la a y z minúsculas
[a-zA-Z] indica cualquier letra delabecedario minúscula o mayúscula
La [0-9] indica cualquier digito de 0 a 9
[abc] indica a|b|c

Cualquier carácter excepto un conjunto dado ~
~ (a|b) indica cualquier carácter que no sea una a o b

Opcionalidad?
r? indica que la expresión r puede aparecer o no. En el caso de que aparezca solo lo hará una vez.
Cuando queremos usar estos símbolos con su significado tenemos que usar la barra de...
Leer documento completo

Regístrate para leer el documento completo.

Estos documentos también te pueden resultar útiles

  • Programacion de sistemas
  • programacion de sistemas
  • que es un sistema DE PROGRAMACION
  • Programacion de sistemas
  • Programacion de sistemas
  • Programacion en sistemas
  • Programacion de Sistemas
  • Programacion De Sistemas

Conviértase en miembro formal de Buenas Tareas

INSCRÍBETE - ES GRATIS