(Created page with "{{TOCright}} == Problema == Considere a seguinte função em C: # Que optimizações independentes da máquina são possíveis? # Traduza-a para Postfix optimizado. <source...") |
(→Problema) |
||
Line 8: | Line 8: | ||
<source lang="c"> | <source lang="c"> | ||
double *fun(double *a, double *b) { | double *fun(double *a, double *b) { | ||
− | double *c = (double *)malloc(2 * 8) | + | double *c = (double *)malloc(2 * 8); |
int i; | int i; | ||
for (i = 0; i < (len < 2 ? len : 2); i++) | for (i = 0; i < (len < 2 ? len : 2); i++) |
Considere a seguinte função em C:
double *fun(double *a, double *b) {
double *c = (double *)malloc(2 * 8);
int i;
for (i = 0; i < (len < 2 ? len : 2); i++)
c[i] = a[i] + b[i];
return c;
}
O código Postfix correspondente ao código C é o seguinte (agradece-se a comunicação de questões relativas a este código).
Código Postfix |
---|
|
Para compilar o código Postfix directamente, pode ser utilizada a ferramenta pf2asm (assumindo uma arquitectura Intel de 32 bits -- ix86):
pf2asm code.pf yasm -felf32 code.asm