LEX y PCLEX: funciones, autómatas finitos, patrones y errores léxicos

Enviado por Programa Chuletas y clasificado en Informática y Telecomunicaciones

Escrito el en español con un tamaño de 5,14 KB

LEX y PCLEX: características, funciones y conceptos sobre autómatas finitos

Sensibilidad al contexto que maneja LEX

8. ¿Cuáles son las características de sensibilidad al contexto que maneja LEX?

  • ( ): Indica agrupación.
  • { }: Indica rango de repetición.
  • $: El patrón que lo precede solo se reconoce si está al final de la línea.
  • ^: Fuera de los corchetes, indica que el patrón que le sucede solo se reconoce si está al comienzo de la línea.

Funciones y variables que suministra PCLEX

9. ¿Cuáles son las funciones y variables que suministra PCLEX?

  • yylex(): Analizador lexicográfico.
  • yytext: Coincide con el lexema actual.
  • yyleng: Longitud del lexema actual.
  • yylval: Variable global utilizada para pasar valores semánticos.
  • yyerror(): Función que se encarga de emitir y controlar errores.

Autómatas finitos: usos, nombres y misión

1. ¿Para qué se utilizan los autómatas finitos?

Para reconocer los lenguajes expresados mediante expresiones regulares.

2. ¿Con qué otro nombre se conoce a los autómatas finitos?

Se les conoce como reconocedores.

3. ¿Cuál es la misión de un autómata finito?

Reconocer si una cadena de entrada respeta las reglas determinadas por una expresión regular.

Autómata finito determinista

4. ¿Qué es un autómata finito determinista?

Es aquel en el que toda transición desde un estado exige un símbolo distinto de ε; no hay dos aristas etiquetadas con el mismo símbolo desde un mismo estado.

Implementación y representación

5. ¿Cómo se implementa un AFN?

El grafo aparece explícitamente: entrada (estado, símbolo) -> salida (nuevo estado). Es decir, se representa el grafo de transiciones.

Componentes para evaluar expresiones

6. ¿Qué involucra un analizador léxico para evaluar expresiones?

  • Constantes enteras sin signo.
  • Operadores relacionales.
  • Identificadores de variables.

7. ¿Qué componentes léxicos utiliza este analizador?

Implementación con TT.

Ventajas y desventajas

8. ¿Cuáles son las ventajas de un autómata finito?

  • Aplicaciones variadas.
  • Fácil de programar (trivial).
  • Acceso rápido.

9. ¿Cuáles son las desventajas de un autómata finito?

Despilfarro de memoria.

Métodos de implementación

10. ¿En qué consiste el primer método de implementación?

Se basa en que muchas columnas/filas pueden ser idénticas.

11. ¿En qué consiste el segundo método de implementación?

Es especialmente útil cuando la matriz de transición es muy dispersa.

Errores léxicos

12. ¿Cuáles son los errores léxicos más comunes?

  • Debidos a un carácter extraño.
  • Suelen aparecer al principio de lexemas.
  • Desbordamiento de variables/constantes.
  • Fin de la línea antes de cerrar una cadena.
  • Problemas al cerrar/abrir comentarios.

Conceptos sobre el analizador léxico

1. ¿Qué es un analizador léxico?

Es el componente que se encarga de buscar los componentes léxicos o palabras que componen un programa.

2. ¿Cómo trabaja un analizador léxico?

Trabaja a través de una secuencia de caracteres mediante la gramática.

3. ¿Cuál es la función principal de un analizador léxico?

Consiste en leer los caracteres de entrada y elaborar como salida una secuencia de componentes.

4. ¿Qué funciones realiza un analizador léxico?

  • Eliminar los comentarios.
  • Eliminar espacios en blanco.
  • Reconocer los identificadores de usuario.
  • Llevar la cuenta de las líneas que se leen.

5. ¿Razones por las que se separan las fases del análisis léxico y sintáctico?

Porque permite construir un procesador especializado y más potente en función de su tarea.

Estructura del procesador léxico

6. ¿Cuál es la estructura del procesador léxico gráfico?

(Expresión regular 1) {acción 1}
(Expresión regular 2) {acción 2}
(Expresión regular 3) {acción 3}
(Expresión regular n) {acción n}

7. ¿Qué es un patrón?

Es una expresión regular.

8. ¿Qué es un lexema?

Es una secuencia de caracteres concretos que encaja con un patrón.

9. ¿Qué es un token?

Es el terminal asociado a un patrón.

10. ¿Cuáles son las formas de crear un analizador léxico?

Ad hoc (a pelo), autómatas finitos, metacompilador:

Entradas relacionadas: