Beruflich Dokumente
Kultur Dokumente
Facultad de ingeniería
Escuela de Ciencias y Sistemas
Área de Ciencias de la Comunicación
Contenido
1. Construcción de AST para un lenguaje derivado de java ................................... 2
1.1. Sentencias de Selección .............................................................................. 2
1.1.1. Sentencia If ............................................................................................ 2
1.1.1.1. Sentencia If, else ................................................................................ 2
1.1.1.2. Sentencia if else if .............................................................................. 3
1.1.2. Sentencia switch .................................................................................... 3
Default: ............................................................................................................... 3
Break: ................................................................................................................. 3
1.2. Sentencias Cíclicas ...................................................................................... 4
1.2.1. Sentencia while ...................................................................................... 4
1.2.2. Sentencia For ........................................................................................ 4
1.3. Sentencias de Transferencia ........................................................................ 5
1.3.1. Break ..................................................................................................... 6
1.3.2. Continue ................................................................................................ 6
1.4. Estructura de Datos Display ......................................................................... 6
1.4.1. Casos en los que se requiere un nodo con más atributos ..................... 8
Universidad de San Carlos de Guatemala
Facultad de ingeniería
Escuela de Ciencias y Sistemas
Área de Ciencias de la Comunicación
1.1.1. Sentencia If
Esta sentencia permite entre ejecutar o no una serie de sentencias, contiene un valor
llamado condición, que debe ser una expresión que devuelva un valor lógico, es decir
un booleano, esta condición debe de ir dentro de paréntesis y el resultado de dicha
condición determinara si se ejecuta la serie de sentencias, siendo verdadera que si
se van a ejecutar y falsa cuando no.
If(condicion){
instrucción 1;
...........
instrucción N;
}
If(condicion1){
//Bloque instrucciones condicion1 verdadero
}else If(condicion2){
//Bloque instrucciones condicion2 verdadero
} else If(condición n){
//Bloque instrucciones condición n verdadero
}else{
//Bloque instrucciones falso
}
Switch(Expresion){
Case expresión 1:
// Instrucciones expresión 1
Case expresión 2:
// Instrucciones expresión 2
Case expresión n:
// Instrucciones expresión n
Default:
// Instrucciones expresión 1
}
Universidad de San Carlos de Guatemala
Facultad de ingeniería
Escuela de Ciencias y Sistemas
Área de Ciencias de la Comunicación
While(condicion){
instrucción 1;
...........
instrucción N;
}
Seguido de la palabra For y entre paréntesis debe venir siempre tres zonas
separadas por punto y coma:
Zona de inicialización
Zona de condición
Zona de incremento o decremento
1.3.1. Break
La sentencia break se puede utilizar en una sentencia switch o en cualquier tipo de
sentencia de bucles. Cuando se ejecuta la sentencia break el bucle que lo contiene
o la sentencia switch terminan y el resto del cuerpo del bucle ya no se ejecuta.
While(true){
instrucción 1;
...........
instrucción N;
break;
1.3.2. Continue
La sentencia continue se puede utilizar en cualquier tipo de sentencia de bucles.
Cuando se ejecuta la sentencia continue el bucle que lo contiene sigue a su siguiente
iteración y el resto del cuerpo del bucle ya no se ejecuta.
While(true){
instrucción 1;
...........
instrucción N;
continue;
Los atributos del Display varían en cuanto a las validaciones necesarias del lenguaje,
sin embargo, uno de los usos más comunes es para la validación en las sentencias
de transferencia, se tiene que conocer si en el bloque actual es válido que venga un
break o un continue, recordando que unicamente son válidos en ciertas sentencias,
se tiene que conocer en todos los bloques de instrucciones internos que se
encuentran dentro de un bloque de alguna sentencia valida.
Universidad de San Carlos de Guatemala
Facultad de ingeniería
Escuela de Ciencias y Sistemas
Área de Ciencias de la Comunicación
While(condicion){
Break; // valido
Continue; // valido
}
While(condicion){
If(condicion){
If(condicion){
If(condicion){
Break; // valido
Continue; // valido
}
}
}
}
Break; // Invalido
Continue; // Invalido
Tomando en cuenta que el contador de ifs anidados incrementa cada vez que se
analiza la lista de instrucciones de un if y decrementa cada vez que se termina de
analizar su lista de instrucciones.
En las sentencias cíclicas pueden tener una sentencia break o una sentencia
continuar, nunca ambas.
Posición Tipo de Sentencia Break encontrado Continue encontrado
1 While True False