Search this site
Embedded Files
Skip to main content
Skip to navigation
Página principal
Guia2Compiladores
Proyectos Compiladores
Mini SQL
Proyacto Logo
Leng. Manipulacion Polinomios
Mini-JavaScript
Formas
LitleQuilt
Mini-PostScript
GeneradorEnsamblador
Interprete Maquina Post
Compiladores
Guia3Compiladores
tercetos
GeneracionCodigo
Prog para calc conj Primero
Programacion Orientada a Objetos
Polimorfismo
Temario Estudio
Proyectos
Álbum de fotos digital
MiniPaint
FlappyBird
EditorBitmaps
Generador Evaluador Examenes
JuezEnLinea
MiniNapster
Página principal
Guia2Compiladores
Proyectos Compiladores
Mini SQL
Proyacto Logo
Leng. Manipulacion Polinomios
Mini-JavaScript
Formas
LitleQuilt
Mini-PostScript
GeneradorEnsamblador
Interprete Maquina Post
Compiladores
Guia3Compiladores
tercetos
GeneracionCodigo
Prog para calc conj Primero
Programacion Orientada a Objetos
Polimorfismo
Temario Estudio
Proyectos
Álbum de fotos digital
MiniPaint
FlappyBird
EditorBitmaps
Generador Evaluador Examenes
JuezEnLinea
MiniNapster
More
Página principal
Guia2Compiladores
Proyectos Compiladores
Mini SQL
Proyacto Logo
Leng. Manipulacion Polinomios
Mini-JavaScript
Formas
LitleQuilt
Mini-PostScript
GeneradorEnsamblador
Interprete Maquina Post
Compiladores
Guia3Compiladores
tercetos
GeneracionCodigo
Prog para calc conj Primero
Programacion Orientada a Objetos
Polimorfismo
Temario Estudio
Proyectos
Álbum de fotos digital
MiniPaint
FlappyBird
EditorBitmaps
Generador Evaluador Examenes
JuezEnLinea
MiniNapster
Guia3Compiladores
3a Guía de Compiladores
Nombre: Grupo: Fecha:
En hoc 1 hay una pila cual es?
1.-
En hoc 4 hay 2 pilas cuales son?
1.-
2.-
En hoc 6 hay 3 pilas cuales son?
1.-
2.-
3.-
Falso o verdadero (F/V)
1.-Una gramática no es ambigua si existe alguna cadena de terminales que pueda obtenerse mediante árboles de
análisis sintáctico distintos (dos árboles distintos dan la misma cadena) ( )
2.-Dos gramáticas son equivalentes si generan el mismo lenguaje.________( )
3.-Dos bloques basicos son equivalentes sicalculan el mismo conjunto de expresiones _________ ( )
4.-En el Análisis sintáctico ascendente el árbol de análisis sintáctico la construcción se inicia en la raíz y avanza hacia las hojas ( )
5.-En el Análisis sintáctico descendente se construye el árbol de análisis sintáctico de la cadena de desde
las hojas y avanza hacia las raíz ( )
6.-el arbol sintactico no es una version condensada del arbol de analisis sintactico ( )
7.-Un Esquema de traducción asocia a cada símbolo de una GLC un conjunto de atributos y a cada producción, un
conjunto de reglas semánticas para calcular los valores de los atributos asociados con los símbolos que aparecen en esa producción. ( )
8.-Definición dirigida por la sintaxis es una GLC en la que se encuentran intercalados, en los lados derechos de
las producciones, fragmentos de programa llamados acciones semánticas. ( )
9.-Los valores de los atributos sintetizados se calculan a partir de los valores de atributos de su nodo padre o sus
nodos hermanos. ( )
10.-El código de tres direcciones consiste en una secuencia de instrucciones, cada una de las cuales tiene como
máximo tres operandos. ( )
11.-En lenguaje C los parámetros formales son como variables locales que ya fueron inicializadas en el momento
de la llamada a la función o procedimiento ( )
12.-En lenguaje C las variables locales (no estáticas) se crean cuando se entra a una función y se destruyen cuando se sale de la función ( )
13.-En hoc los parámetros usados dentro de la definicion de las funciones no tienen nombre___________ ( )
14.-No es posible definir funciones recursivas en hoc_________________ ( )
15.-En hoc no hay variables locales____________________________________( )
16.-En hoc cuando una función termina su ejecución se saca su marco de la pila de llamadas. ( )
17.-En hoc los parámetros reales son listas de expresiones ____________( )
18.-En hoc el código que ejecuta la maquina virtual de pila esta en prefijo (considere como se ejecuta una
operacion de suma) ( )
19.-En hoc el tipo de las variables es entero ( )
20.-En hoc los parámetros reales se meten a la pila ( )
1.-Indica gráficamente cómo del símbolo
inicial de una gramática deriva una cadena del lenguaje.
a) árbol de análisis sintáctico con anotaciones
b) árbol sintáctico
( )
c) árbol de análisis sintáctico
d) Ninguno de los anteriores
2.-El código de tres direcciones se usa en
a) El análisis sintáctico
b) El análisis léxico
( )
c) Generación de código intermedio
d) Generación de código
3.-Un ______________________ es [A→ α . β ,
a] donde A→ αβ es una producción y a es un terminal o $.
a) mango
b) prefijo viable
c) elemento LR (1)
d) elemento LR (0)
( )
4.-Es una producción de G con un punto en
cierta posición del lado derecho.
a) mango
b) prefijo viable
c) elemento LR (1)
d) elemento LR (0)
( )
5.-Son prefijos de las formas de frase derecha
que pueden aparecer en la pila
a) mango
b) elemento LR (1)
c) prefijo viable
d) elemento LR (1)
( )
6.-Un _________________ de una forma de frase
derecha g es una producción S → y una posición de g donde la
cadena podría encontrarse y sustituirse por A para producir la
forma de frase derecha previa en una derivación por la derecha de g.
a) prefijo viable
b) mango
c) elemento LR (0)
d) elemento LR (1)
( )
PROBLEMAS
1.- Dibuje el arbol para la expresiones de tipo
de la estructura de abajo :
struct agregado { int m, n, o; };
typedef struct agregado Agregado;
2.- Cual es la expresion de tipo para : char
*g(char *, char *, char);
3.-Expresense, utilizando variables de tipos el
tipo de la funcion ref que toma como argumento una variable de
cualquier tipo y devuelve un apuntador a dicho objeto.
Genere el codigo de 3 direcciones de
4.- a := b + c * d;
5.- x := y + z - ( u * w )
6.- a * - (b+c ) y a:= ( b + c ) * ( e + f )
7.-(a * b + h) - j * k + 1
8.- a > b + h or b == d
9.-Genere el codigo de 3 direcciones de las
siguientes expresiones booleanas
I) a < b or c < d
II) a < b or c < d or e < f
III) a < b or c < d or e < f or g < h
IV) a < b and c < d
V) a < b and c < d and e < f
VI) a < b and c < d and e < f and g < h
VIII) a < b or c < d and e < f
IX) a < b and c < d or e < f
10.-Genere el codigo de 3 direcciones de :
x = 2
y = 1
if ( x > y ) A;
else B;
------------------
x = 2
y = 1
while ( x > y)
{ A; }
-------------------
a = 0
while ( a <= 5) {
a =a + 1
}
---------------------------
for ( i = 0; i < 5; i=i+1){
A;
}
Acceso a elementos de matrices
11.-Genere el codigo de 3 direcciones de :
a := 2 * x + 10;
while ( a <= p + 2 ) {
a := p[4+i*2] ;
}
---------------------------
a := a + 1;
for ( i = 0; i < 5; i=i+1){
a=p[2*i];
}
genere el código de tres direcciones para un
ciclo for en C de la forma
for (e1; e2; e3) stmt
Suponga que el código para generar expresiones
y stmt ya se ha escrito.
Generacion Codigo Objeto
Ensamblador generico
12.-Si una instrucción de asignación de la
forma x=y+z . Se traduce a:
mov y, R0
add z, R0
mov R0 , x
Como se traducen
a = b + c;
d = a + c;
a = a + 1;
13.-Si una instrucción de asignación de la
forma a=a+1 . Se traduce a:
mov a , R0
add #1, R0
mov R0, a
Como se traducen
a = c + 2
d = a + 3
En NASM (Netwide Assembler) se tienen las
siguientes instrucciones
para mover
mov destino, fuente
saltos condicionales
jl (<), jle (<=), je (==), jge (>=), jg (>), jne (!=)
14.-Si una instrucción de la forma
if ( m > 5 ) x = 6 ;
else x = 8 ;
Se traduce a:
mov eax, dword [m]
mov ebx, 5
cmp eax, ebx ; compar
jg etq1 ; salta si mayor
jmp etq2 ; salto incondicional
etq1:
mov eax , 6
jmp etq3 ;salto incondicional
etq2:
mov eax , 8
etq3:
mov eax, dword [x]
Como se traduce la de abajo?
if ( var1 <= var2 ) y = 99 ;
else y = 22 ;
15.-Para el siguiente codigo genere el codigo
de 3 direcciones y divida el codigo generado en bloques basicos
w = 0;
x = x + y;
y=0;
if( x > z ){
y = x;
x++;
} else {
y = z;
z++;
}
w = x + z;
Google Sites
Report abuse
Page details
Page updated
Google Sites
Report abuse