Una expresión regular es la forma de describir un lenguaje , la forma de construirlo es por medio de un diagrama que contenga la información necesaria para analizar la cadena, este diagrama tendrá forma de grafo dirigido.
jueves, 19 de junio de 2008
Autómata finito
Una expresión regular es la forma de describir un lenguaje , la forma de construirlo es por medio de un diagrama que contenga la información necesaria para analizar la cadena, este diagrama tendrá forma de grafo dirigido.
Reconocimiento de los componentes léxicos
Todas las expresiones se consideran posibles tokens. El token manager consume el numero máximo de caracteres de la cadena de entrada que coincida con alguna de las expresiones regulares. Esto es, el token manager prefiereel match mas largo que sea posible. Si existieran múltiples matches (de la misma longitud), se elige la expresión regular que ocurre antes en el archivo de la gramática.
Luego de reconocer una expresión regular, se ejecuta la acción léxica asociada, si es que la hay. Todas las variables y métodos declarados en el token manager están disponibles para ser usadas, además de otras variables y métodos adicionales. Inmediatamente ejecutadas las acciones, el token manager cambia su estado al estado de la necesidades del usuario.
miércoles, 11 de junio de 2008
Especificaciones De Componentes Léxicos
Las especificaciones del componente léxico son:
El alfabeto; son representados por el conjunto finitos de símbolos.
o Cadena sobre un alfabeto, que es la secuencia finita de los símbolos de este alfabeto.
o Cadena vacía
o Operacionales con cadenas; concatenación y exponenciación
o Lenguaje; representado por el conjunto de cadenas sobre un alfabetoOperaciones de lenguaje; la unión, concatenación, cerradura de Kleene (cierre *)y cerradura positiva (Cierre +)
Manejo de buffer de entrada
Utiliza 2 buffer de entrada resultara útil cuando es necesario un pre-análisis en la entrada para identificar los componentes léxicos, después se introducen algunas técnicas básicas para encontrar la velocidad del analizador léxico, como es el uso de centinelas que sirven para marcar el final de buffer, hay tres métodos general de implantar un léxico:
· Utilizar un generador de analizadores léxicos, como el compilador LEX
· Escribir el analizador léxico en un lenguaje convencional de programación
· Escribir léxico en lenguaje ensamblador y manejarlo explícitamente lectura de entrada.
Parejas de buffer
1. Texto de lenguaje fuente
2. Traductor
3. Texto de lenguaje traductor
4. Programa objeto
5. Compilador
6. Programa fuente
7. Mensaje error
8. Programa fuente
9. Analizador léxico
10. Analizador sintáctico
11. Analizador semántico
12. Generación del código intermedio
13. Optimización de código
14. Generador del código
15. Programa objeto
16. Manejo de errores
17. Manejo de tabla de símbolos
18. Analizador léxico
19. Analizador sintáctico
20. Tabla de símbolos
21. Componente léxico
Funcionamiento
Existen 4 funciones principales para un analizador léxico, grafico que va hallando cada token en forma consecutiva, esta pueden ser:
· Utilidades de caracteres y manejo de líneas
· Prueba de predicado
· Acciones
· Errores
ANÁLISIS LÉXICO
Se encarga de buscar los componentes léxicos o palabras que componen el programa fuente , según las reglas de entrada.
En la fase de análisis léxico se leen los caracteres del programa fuente y se agrupan en cadenas que representan los componentes léxicos, cada componente léxico es una secuencia lógicamente coherente de caracteres relativa a un identificador, una palabra reservada, un operador o un carácter de puntuación. A la secuencia de caracteres que representa el componente léxico se le llama lexema. En el caso de los identificadores creados por el programador no solo se genera un componente léxico, sino que se genera otro lexema en la tabla de símbolos.