option
Cuestiones
ayuda
daypo
buscar.php

Procesadores del lenguaje I

COMENTARIOS ESTADÍSTICAS RÉCORDS
REALIZAR TEST
Título del Test:
Procesadores del lenguaje I

Descripción:
Procesadores del lenguaje I

Fecha de Creación: 2026/01/12

Categoría: Otros

Número Preguntas: 50

Valoración:(0)
COMPARTE EL TEST
Nuevo ComentarioNuevo Comentario
Comentarios
NO HAY REGISTROS
Temario:

¿Qué actúan como puentes esenciales entre humanos y computadoras, según el texto?. A. Lenguajes de programación y algoritmos. B. Hardware informático y sistemas operativos. C. Procesadores del lenguaje y sus componentes. D. Abstracciones de alto nivel y lógica binaria.

¿Cuál es el propósito principal de un procesador de lenguaje?. A. Ejecutar programas rápidamente en cualquier máquina. B. Diseñar nuevos lenguajes de programación para el usuario. C. Transformar código fuente en forma ejecutable o intermedia. D. Transformar código fuente en forma ejecutable o intermedia.

¿Qué tipo de procesador de lenguaje traduce el programa completo antes de la ejecución?. A. Un intérprete con JIT (just-in-time) y bytecode. B. Un traductor de alto nivel a otro de alto nivel. C. Una máquina virtual con código intermedio. D. Un compilador que genera un ejecutable autónomo.

En contraste con un compilador, ¿qué no produce un intérprete?. A. Un archivo ejecutable independiente. B. Una representación intermedia de bajo nivel. C. Una secuencia de tokens y lexemas válidos. D. Un archivo con código máquina optimizado.

¿Qué concepto engloba tanto a compiladores como a intérpretes, y a cualquier programa que convierte código?. A. Máquina virtual y bytecode intermedio. B. El término traductor en un sentido amplio. C. Un preprocesador y su expansión de macros. D. Lenguaje fuente y lenguaje objeto.

¿Qué se refiere al código original escrito por el programador en un lenguaje de alto nivel?. A. El código objeto final de la compilación. B. El código intermedio para la optimización. C. El lenguaje fuente o programa inicial. D. El bytecode para la máquina virtual.

¿Cuál es la representación intermedia del programa generada por el analizador sintáctico?. A. Un árbol de análisis sintáctico o AST. B. Un conjunto de lexemas y sus tipos. C. Una secuencia de tokens agrupados. D. Una secuencia de tokens agrupados.

¿Qué fase del compilador es responsable de verificar el "significado" y la coherencia del programa?. A. Analizador léxico y su agrupación de caracteres. B. Analizador sintáctico y el verificador gramatical. C. Analizador semántico y verificador de significado. D. Generador de código intermedio final.

¿Qué se busca mejorar en la fase de optimización de código?. A. La depuración de errores semánticos complejos. B. La depuración de errores semánticos complejos. C. La portabilidad del software a nuevas plataformas. D. La portabilidad del software a nuevas plataformas.

¿Cuál es uno de los beneficios clave de las máquinas virtuales (VM)?. A. Permiten ejecutar múltiples sistemas operativos de forma aislada en un mismo hardware físico. B. Detección temprana de errores sintácticos. C. Mayor velocidad de ejecución del programa. D. Reducir el tiempo de compilación del código.

¿Cuál es el primer paso para crear un analizador léxico?. A. La especificación de los patrones de tokens con expresiones regulares. B. La implementación del algoritmo de escaneo del código. C. La construcción de un Autómata Finito Determinista (AFD). D. El desarrollo de un mecanismo para el manejo de errores.

¿Cuál es la tarea fundamental que realiza el escáner del programa fuente, guiado por un AFD?. A. Definir los patrones de los tokens usando expresiones regulares. B. Leer el flujo de caracteres para identificar los lexemas válidos. C. Convertir el Autómata Finito No Determinista (AFN) en un AFD. D. Generar automáticamente el código del compilador en lenguaje C.

¿Cuál es el rol del Autómata Finito (AF) en el proceso de análisis léxico?. A. Es una herramienta para escribir las expresiones regulares. B. Es una estructura de datos para almacenar los tokens generados. C. Es la "máquina" que reconoce si una secuencia de caracteres coincide con un patrón. D. Es el componente encargado de reportar los errores de sintaxis.

Cuando el analizador léxico procesa float limite = 25.5;, ¿qué tipo de token genera para el lexema "float"?. A. Un token de tipo IDENTIFIER. B. Un token de tipo KEYWORD. C. Un token de tipo FLOAT_LITERAL. D. Un token de tipo ASSIGNMENT_OPERATOR.

En el análisis léxico de Python, ¿qué token especial se genera cuando la indentación de una línea es mayor que la anterior?. A. Un token INDENT. B. Un token DEDENT. C. Un token NEWLINE. D. Un token WHITESPACE.

¿Qué herramienta clásica, sucesora de Lex, se menciona para generar automáticamente analizadores léxicos en lenguaje C?. A. ANTLR. B. Flex. C. JFlex. D. YACC.

Según el texto, ¿cuál es la ventaja de usar una herramienta generadora como Flex o JFlex?. A. Ayudan a definir las expresiones regulares complejas. B. Permiten al desarrollador centrarse en la especificación de alto nivel de los tokens. C. Son capaces de realizar tanto el análisis léxico como el sintáctico. D. Generan código que no necesita ser compilado posteriormente.

¿Qué dos piezas de información, como mínimo, encapsula la estructura de datos de un token?. A. El lexema y su número de línea en el código. B. El patrón que lo define y el lexema coincidente. C. El tipo de token y un valor de atributo opcional. D. El estado inicial y el estado final del autómata.

¿Cuál es la "regla de la correspondencia más larga" que debe seguir un escáner?. A. Encontrar el lexema más largo posible que coincida con un patrón. B. Descartar todos los espacios en blanco y los comentarios. C. Dar prioridad siempre a las palabras clave sobre los identificadores. D. Reportar un error si un lexema no coincide con ningún patrón.

¿En qué consiste la estrategia de recuperación de errores léxicos llamada "modo de pánico"?. A. Intentar corregir el carácter erróneo insertando uno válido. B. Detener la compilación por completo al encontrar el primer error. C. Ignorar el error y continuar el análisis sin reportarlo. D. Descartar caracteres hasta encontrar un "sincronizador" conocido.

¿Cuál es el "punto de partida inevitable" para construir un analizador sintáctico?. A. Implementar un sistema para el manejo de errores. B. Seleccionar si el análisis será ascendente o descendente. C. La definición explícita de la gramática del lenguaje. D. Escribir el código del analizador de forma manual.

¿Qué dos maneras principales se mencionan para la implementación de un analizador sintáctico?. A. Codificarlo manualmente o usar un generador automático. B. Usar herramientas clásicas o herramientas modernas. C. Escribir un analizador descendente o uno ascendente. D. Implementar el análisis léxico y el sintáctico a la vez.

¿Cuáles son las dos grandes familias o estrategias opuestas de análisis sintáctico que se presentan?. A. Análisis estático y análisis dinámico. B. Análisis descendente y análisis ascendente. C. Análisis manual y análisis automatizado. D. Análisis predictivo y análisis con retroceso.

Además de detectar errores, ¿qué se espera de un buen sistema de manejo de errores sintácticos?. A. Detener la compilación inmediatamente. B. Corregir automáticamente todo el código erróneo. C. Ignorar los errores para finalizar la compilación. D. Recuperarse para continuar analizando y encontrar más errores.

¿Cuál es la aplicación "natural" del análisis sintáctico mencionada en el texto?. A. El procesamiento de formatos de datos como JSON. B. La validación de consultas en bases de datos SQL. C. La construcción de compiladores e intérpretes. D. El autocompletado en los editores de texto.

En el desarrollo de un lenguaje de programación, ¿qué estructura fundamental construye el analizador sintáctico?. A. La tabla de símbolos del programa. B. El Árbol de Sintaxis Abstracto (AST). C. La secuencia de tokens del análisis léxico. D. El código objeto ejecutable final.

¿Para qué es fundamental el análisis sintáctico en el procesamiento de formatos de datos como JSON o XML?. A. Para garantizar que el archivo se adhiere a la sintaxis del formato. B. Para comprimir el contenido del archivo y reducir su tamaño. C. Para traducir el contenido del archivo a otro idioma. D. Para ejecutar las instrucciones contenidas en el archivo.

¿Qué deben hacer primero las herramientas como Linters (Pylint, ESLint) para "entender" el código y encontrar errores?. A. Ejecutar el programa para observar su comportamiento. B. Leer los comentarios escritos por el programador. C. Construir el Árbol de Sintaxis Abstracto (AST) del código. D. Comparar el código con una base de datos de programas.

En los IDEs modernos, ¿en qué se basa la función de "renombrar variable" o "extraer método" para realizar cambios seguros?. A. En la búsqueda y reemplazo de texto simple. B. En la ejecución de pruebas unitarias antes del cambio. C. En el análisis sintáctico para entender la estructura del código. D. En la inteligencia artificial para predecir la intención del programador.

¿Qué tipo de problemas previene el análisis sintáctico en una aplicación que procesa consultas en lenguaje SQL?. A. Errores de conexión con la base de datos. B. Consultas que no devuelven ningún resultado. C. Errores de lógica en la petición del usuario. D. Consultas que no cumplen con la gramática formal de SQL.

¿Qué problema "fatal" causa la recursión izquierda en un analizador de descenso recursivo?. A. Hace que el analizador sea extremadamente lento. B. Obliga al analizador a usar demasiado retroceso. C. Genera una recursión infinita que "cuelga" el programa. D. Impide el uso de una pila para el análisis formal.

¿Cuál es el problema fundamental del análisis descendente que el retroceso (backtracking) intenta resolver?. A. La elección de qué producción aplicar cuando hay varias opciones. B. La construcción del árbol de análisis sintáctico desde las hojas. C. El manejo de la pila explícita y la tabla de análisis. D. La identificación de errores semánticos en el código fuente.

En un analizador predictivo tabular LL(1), ¿qué dos componentes se utilizan junto con el buffer de entrada?. A. Una lista enlazada y un árbol de sintaxis. B. Una cola de prioridad y un conjunto de símbolos. C. Una pila explícita y una tabla de análisis. D. Dos funciones recursivas por cada no-terminal.

Al diseñar un analizador, si se opta por una implementación manual con control total, ¿qué estrategia de análisis se menciona como la preferida?. A. El análisis predictivo tabular con ANTLR. B. El análisis con retroceso para máxima flexibilidad. C. La construcción manual de la tabla de análisis LL(1). D. El descenso recursivo con una función por no-terminal.

En un analizador de descenso recursivo, ¿cómo se maneja un símbolo no-terminal B encontrado en una regla A -> ...B...?. A. Se verifica si coincide con el token de entrada actual. B. Se consulta la tabla de análisis M[A, B] para decidir. C. Se realiza una llamada a la función correspondiente a B. D. Se empuja el símbolo B directamente en la pila explícita.

¿Qué estrategia de manejo de errores se describe para un analizador de descenso recursivo, que evita las cascadas de errores?. A. Detener el análisis por completo al primer error. B. El "modo de pánico", que descarta tokens hasta un punto de sincronización. C. Ignorar todos los tokens hasta el final del archivo. D. Corregir automáticamente el código fuente del programador.

¿Cuál es el primer paso práctico que se debe realizar al diseñar un analizador sintáctico descendente?. A. Implementar la función match() para los terminales. B. Definir y adecuar la gramática, eliminando recursión y factorizando. C. Escribir las funciones parse() para cada no-terminal. D. Construir la tabla de análisis para el método LL(1).

¿Por qué el análisis con retroceso (backtracking) se considera "extremadamente ineficiente" y casi nunca se usa en compiladores reales?. A. Porque puede explorar muchos caminos incorrectos, volviéndose exponencial. B. Porque solo puede analizar gramáticas que son libres de contexto. C. Porque no puede manejar gramáticas con recursión por la derecha. D. Porque requiere que la gramática esté completamente factorizada.

¿Qué dos problemas principales en una gramática deben resolverse para que un analizador descendente sea predictivo y eficiente?. A. El exceso de no-terminales y la ambigüedad inherente. B. La falta de comentarios y la recursión por la derecha. C. La recursión y la falta de factorización izquierdas. D. El uso de símbolos terminales y la longitud de las reglas.

¿Cuál es la filosofía o enfoque principal del análisis sintáctico descendente?. A. Reconstruir el programa desde sus componentes más pequeños. B. Utilizar una pila y una tabla para guiar cada decisión. C. Verificar la estructura semántica antes que la sintáctica. D. Partir del símbolo inicial y expandirlo hasta generar la entrada.

¿Cuál es la dirección del análisis sintáctico ascendente, también conocido como "bottom-up"?. A. Desde las hojas del árbol (tokens) hacia la raíz. B. Analizando de forma recursiva desde el inicio. C. Desde la raíz del árbol hacia las hojas. D. Validando la gramática antes de empezar el análisis.

En el análisis "Desplazamiento-Redución", ¿qué significa la acción de "Reducir"?. A. Mover un token desde la entrada hacia la pila. B. Ignorar un token de la entrada por un error. C. Aceptar la cadena como sintácticamente correcta. D. Reemplazar una secuencia en la pila por un no-terminal.

Para construir un analizador ascendente con una herramienta, ¿cuál es el primer paso fundamental?. A. Implementar el algoritmo del "driver". B. Definir la gramática del lenguaje a analizar. C. Crear las tablas de análisis ACTION y GOTO. D. Planificar la estrategia para el manejo de errores.

¿Qué operación realiza un analizador ascendente durante la acción de "Desplazar" (Shift)?. A. Toma el siguiente token de la entrada y lo coloca en la pila. B. Reemplaza la cima de la pila con una regla gramatical. C. Finaliza el análisis porque la cadena es válida. D. Descarta tokens de la entrada para recuperarse de un error.

¿Cuál es el uso más común y principal de los analizadores sintácticos ascendentes en la industria?. A. Validar archivos de configuración en formato JSON. B. Analizar la estructura de documentos HTML. C. Formar el núcleo de compiladores e intérpretes. D. Corregir errores en el código fuente de un programa.

¿Qué ventaja clave ofrece usar un generador de parsers al diseñar un nuevo lenguaje de programación?. A. Escribe automáticamente el manual del lenguaje. B. Garantiza que el lenguaje será fácil de aprender. C. Permite probar y refinar la sintaxis de forma rápida. D. Optimiza el rendimiento del código que se escribirá.

¿Para qué sirven las tablas de análisis (ACTION y GOTO) en un parser LR?. A. Para definir las reglas de la gramática del lenguaje. B. Para almacenar los tokens leídos del archivo de entrada. C. Para mostrar los errores de sintaxis de forma legible. D. Para guiar al analizador sobre qué acción tomar en cada paso.

Si una gramática es ambigua, ¿cómo se manifestará este problema al usar una herramienta como YACC?. A. La herramienta no podrá leer el archivo de la gramática. B. Se generarán conflictos de tipo "Shift-Reduce" o "Reduce-Reduce". C. El analizador resultante será mucho más lento de lo normal. D. La gramática será rechazada por no tener recursión izquierda.

¿Qué representan los "estados" en un autómata LR durante el análisis sintáctico?. A. El progreso del reconocimiento de las reglas gramaticales. B. El número de errores de sintaxis encontrados. C. La cantidad de memoria utilizada por el analizador. D. El siguiente token que se leerá desde la entrada.

¿Cuáles son las dos decisiones principales que un driver LR toma en cada paso de su bucle de análisis?. A. Aceptar o rechazar la cadena de entrada. B. Desplazar el siguiente token o reducir usando una regla. C. Leer un token o escribir en el árbol de sintaxis. D. Avanzar en la entrada o retroceder para corregir.

Denunciar Test