jueves, 26 de septiembre de 2019

Cuádruplos

Cuádruplos

Es una estructura tipo registro con cuatros campos que se llaman:
Operador
Operando1
Operando2
Resultado
Donde operando1, operando2 y resultado pueden ser constantes, identificadores y variables temporales definidos por el compilador mientras que operador representa una operación arbitraria.
Operador
Operando1
Operando2
Resultado
*
C
D
T1
+
B
T1
T2
=
T2
A
EJEMPLO:
A := B + C * D
Esquemas de generación.
¿Que son?
 Los esquemas de generación son las estrategias o acciones que deberán realizarse y tomarse en cuenta en el momento de generar código intermedio.
Declaración de variables y constantes.
Las declaraciones de variables y constantes deben separarse de tal manera que queden las expresiones una por una de manera simple.


• Por ejemplo int a,b,c;
se descompone a int a;
int b; intc; respectivamente.
Las variables utilizadas en los programas se clasifican en dos tipos:
variables locales y variables globales.
Variables locales:
Aquella que está declarada para el programa o algoritmo completo.
 Para definir variables locales, la definición debe hacerse inmediatamente después de una llave de inicio ({), y la variable deja de existir fuera de la llave de fin(}) que corresponde a la llave de inicio después del cuál fue definida la variable.
Ejemplo:
{
int a,b;
a=5;
b=a + 100;
}
Variables globales:
Aquella que está declarada y definida dentro de una función y sólo es válida dentro de la misma función y no podrá utilizarse en otra parte del programa.
 Una variable global se declara fuera de cualquier función y primero que cualquier función que requiera de ella. Una variable se declara de la siguiente forma:
 tipo identificador1, identificador2..ident n;
Ejemplos:
 Algunos ejemplos de cómo definir variables son los siguientes:
 int alumnos, contador;
 float A,B,C;
 char Letra;


Declaración de Constantes.
Para declarar constantes en el lenguaje C, sólo basta anteponer el calificador const seguido del tipo de dato que manejará esa constante (int,char,etc), y por último el valor que tomará esa variable.
Ejemplo:
const int k = 12
Estatuto de asignación.
Las operaciones de asignación deben quedar expresadas por una expresión sencilla, si está es compleja se debe reducir hasta quedar un operador sencillo.
Ejemplo:
x = a+b/5; debe quedar de la
forma y = b/5; z = a+y; x=z
Estatuto Condicional.
Las condiciones deben expresarse de manera lo más sencilla posible de tal forma que puedan evaluarse en cortocircuito. Por ejemplo una instrucción como:
if (a == b && f!=5 && f%3==0)
se evalúa primero x = (a==b && f!=5) y = x && f%3==0; if (y)
Las instrucciones de decisión compleja como switch se reducen a una versión complejas de if’s
Son por así decirlo las normas que regulan nuestras expresiones regulares, (if,then, else) donde una expresión condicional nos permite elegir que pautas deben ser encontradas, en base a una condición.
Nuestros programas pueden tomar decisiones sirviéndose de las expresiones condicionales.
Una expresión condicional responde a los valores de True o False y de acuerdo al resultado podemos decidir si ejecutar o no un pedazo de código o simplemente no hacer nada.
if (expresion condicional) {

bloque de código}
if (expresion condicional) {

bloque de código ; }
else {
bloque de código ;
}
Estatus condicional.
Ejecutara instrucciones dependiendo del valor de una condición que resulta en un dato tipo boolean.
Ejemplo:
If Expresión lógica Then
Instrucciones Afirmativo
Else
Instrucciones negativo
End If
Hay otra forma, abreviada, de escribir una sentencia if, aunque es importante observar que esta expresión no sólo compara valores, sino que también asigna un valor a una variable. su sintaxis es:
 Variable = (condición) ? valor1 : valor2
Esta expresión emplea el operador ? para asignar valores a una variable. Si la condición resulta verdadera entonces asigna valor1, de lo contrario asignará valor2.
 var sCondición = (user = "Juan") ? "Jefe" : "Empleado" ;
Estatuto de Ciclos.
Los ciclos se descomponen en un ciclo genérico, por lo que ciclos «while», «for» y «do-while» tienen la misma representación interna.
Todo queda en forma de «while»
Ejemplo:
While (A>B) and (A<=2*B-5) do A:= A+B
el Código intermedio generado será:
L1: if A>B goto L2
goto L3
L2: T1:= 2*B
T2:= T1-5
if A
goto L3
L4: A:= A+B
goto L1
L3: . . .
Arreglos.
Los Arreglos se descomponen en estructuras básicas de manejo de manera simple:
Ejemplo:
char a= ‘Hola’;
Se reduce a:
a[0]=‘H’; a[1]=‘o’; a[2]=‘l’; a[3]=‘a’;
Funciones.
Las funciones pueden reducir a en línea. Lo que se hace es expandir el código original de la función.
Las funciones se descomponen simplificando los parámetros de manera individual al igual que el valor de retorno.
Ejemplo:
cuadrado(); //Declaramos la función
// regresar el cuadrado de un número
double cuadrado(double n)
{
return n*n;

}



Resultado de imagen para cuadruplos

Resultado de imagen para cuadruplos

No hay comentarios:

Publicar un comentario