Test sobre Fundamentos de Compiladores y Lenguajes
Fundamentos de Compiladores y Lenguajes: Guía Completa SEO
Test: Lenguajes de programación, Compiladores, Teoría de la computación
20 preguntas
Pregunta 1: Dentro de una sentencia de salto `return` en C, es sintácticamente correcto usar una sentencia compuesta como `{a+1}` según el estándar del lenguaje.
A. Ano
B. Ne
Explicación: No es sintácticamente correcto según el estándar de C. La gramática para una sentencia `return` requiere una expresión (opcional) seguida de un punto y coma, no una sentencia compuesta. Aunque algunos compiladores pueden aceptarlo como extensión no estándar, no es parte del estándar del lenguaje C.
Pregunta 2: Según la resolución del Ejercicio 1 en los materiales de estudio, ¿cuál de las siguientes afirmaciones sobre la prioridad y asociatividad de los operadores en C es correcta?
A. La operación '&&' tiene menor prioridad que la operación '||'.
B. La asociatividad del operador '||' es de IZQUIERDA A DERECHA.
C. La prioridad del operador '<=' es MENOR que la del operador '!='.
D. Las comparaciones de '<' y '<=' se resuelven de derecha a izquierda por su asociatividad.
Explicación: El material de estudio establece que 'Luego tiene mayor prioridad la operación && que la operación ||.' Esto hace que la primera opción sea incorrecta. También indica que 'La asociatividad del operador || es de IZQUIERDA A DERECHA', lo que confirma la segunda opción como correcta. Además, se menciona que 'La prioridad del operador <= es MAYOR que la del operador !=', refutando la tercera opción. Finalmente, se explica que las comparaciones de '< , <=' se resuelven 'de izquierda a derecha (por asociatividad)', lo cual invalida la cuarta opción.
Pregunta 3: En una expresión de asignación, es sintácticamente correcto que una constante aparezca en el lado izquierdo de la igualdad.
A. Ano
B. Ne
Explicación: La expresión es sintácticamente incorrecta si en el lado izquierdo de la igualdad no hay un Lvalue modificable, no puede haber nunca una constante a la cual se le esté asignando un valor.
Pregunta 4: Durante el proceso de compilación, todas las etapas deben ejecutarse, incluso si no hay nada que preprocesar.
A. Ano
B. Ne
Explicación: Ninguna de las etapas del proceso de compilación puede ser eliminada. Incluso si no hay comentarios, saltos de línea, tabulaciones o directivas para resolver, la etapa de preprocesamiento siempre se ejecutará.
Pregunta 5: Según el material de estudio, ¿cuál de las siguientes afirmaciones es correcta con respecto a una expresión sintácticamente correcta?
A. Siempre es léxicamente correcta, pero no necesariamente derivable de la BNF.
B. Para ser sintácticamente correcta, debe ser derivable de la BNF y cumplir con las restricciones del lenguaje.
C. Solo necesita ser derivable de la BNF, sin importar las restricciones del lenguaje.
D. Implica que es semánticamente correcta, independientemente de su derivabilidad de la BNF.
Explicación: El material de estudio establece que "Para que una expresión sea sintácticamente correcta, debe cumplir con dos condiciones, ser derivable de la BNF y cumplir con las restricciones del lenguaje." Por lo tanto, la opción que incluye ambas condiciones es la correcta.