Teoría del compilador | conjunto 2

Las siguientes preguntas se han hecho en el examen GATE CS. 

1. Dada la siguiente expresión gramatical: 
E -> E * F | F+E | FF 
-> FF | id ¿cuál de las siguientes es verdadera? (GATE CS 2000) 
(a) * tiene mayor precedencia que + 
(b) – tiene mayor precedencia que * 
(c) + y — tiene la misma precedencia 
(d) + tiene mayor precedencia que * 

Respuesta (b) 

La precedencia en la gramática se impone asegurándose de que una regla de producción con un operador de mayor precedencia nunca produzca una expresión con un operador con menor precedencia. 
En la gramática dada, ‘-‘ tiene mayor precedencia que ‘*’ 

2. Considere un programa P que consta de dos módulos fuente M1 y M2 contenidos en dos archivos diferentes. Si M1 contiene una referencia a una función definida en M2, la referencia se resolverá en (GATE CS 2004) 
a) Tiempo de edición 
b) Tiempo de compilación 
c) Tiempo de enlace 
d) Tiempo de carga 

Respuesta (c) 
El compilador transforma el código fuente en el idioma de destino. El idioma de destino generalmente está en forma binaria conocida como código objeto. Normalmente, un archivo de objeto puede contener tres tipos de símbolos: 

* símbolos definidos, que permiten que otros módulos lo llamen, 
* símbolos indefinidos, que llaman a los otros módulos donde se definen estos símbolos, y 
* símbolos locales que se usan internamente dentro del archivo de objetos para facilitar la reubicación. 

Cuando un programa comprende varios archivos de objetos, el enlazador combina estos archivos en un programa ejecutable unificado, resolviendo los símbolos a medida que avanza. 
http://en.wikipedia.org/wiki/Compiler  
http://en.wikipedia.org/wiki/Linker_%28computing%29 

3. ¿Cuál de los siguientes es suficiente para convertir una gramática CFG arbitraria en una gramática LL(1)? (GATE CS 2003) 
(a) Eliminando la recursividad por la izquierda sola 
(b) Factorizando solo la gramática 
(c) Eliminando la recursividad por la izquierda y factorizando la gramática 
(d) Ninguna de las anteriores 

Respuesta(d) 
Eliminar la recursividad por la izquierda y factorizar la gramática no es suficiente para convertir una gramática CFG arbitraria a LL(1). 
http://pages.cpsc.ucalgary.ca/~robin/class/411/LL1.3.html 

4. Suponga que el analizador SLR para una gramática G tiene n1 estados y el analizador LALR para G tiene n2 estados. La relación entre n1 y n2 es (GATE CS 2003) 
(a) n1 es necesariamente menor que n2 
(b) n1 es necesariamente igual a n2 
(c) n1 es necesariamente mayor que n2 
(d) ninguna de las anteriores 

Respuesta (b) 

http://parasol.tamu.edu/people/rwerger/Courses/434/lec10.pdf  
http://dragonbook.stanford.edu/lecture-notes/Stanford-CS143/11-LALR-Parsing.pdf 

Consulte GATE Corner para ver todos los documentos/soluciones/explicaciones del año anterior, plan de estudios, fechas importantes, notas, etc. 

Escriba comentarios si encuentra que alguna de las respuestas/explicaciones es incorrecta, o si desea compartir más información sobre los temas discutidos anteriormente. 

Publicación traducida automáticamente

Artículo escrito por GeeksforGeeks-1 y traducido por Barcelona Geeks. The original can be accessed here. Licence: CCBY-SA

Deja una respuesta

Tu dirección de correo electrónico no será publicada. Los campos obligatorios están marcados con *