Line 1: | Line 1: | ||
{{TOCright}} | {{TOCright}} | ||
== Tópicos == | == Tópicos == | ||
− | Processamento semântico e geração de código Postfix | + | Processamento semântico e geração de código Postfix. Optimização. |
== Exercício 1 == | == Exercício 1 == | ||
Line 16: | Line 16: | ||
</c> | </c> | ||
+ | # Traduza para código Postfix '''não optimizado''' a função acima. | ||
+ | # Identifique os blocos básicos. | ||
# Identifique as optimizações independentes da máquina que são possíveis. | # Identifique as optimizações independentes da máquina que são possíveis. | ||
− | |||
− | |||
== Exercício 2 == | == Exercício 2 == | ||
− | Escreva em código Postfix optimizado uma função que recebe os valores dos três coeficientes de uma equação de 2º grau ''(ax² + bx + c)'' e devolve o número de raizes. | + | Escreva em código Postfix ''não optimizado''' uma função que recebe os valores dos três coeficientes de uma equação de 2º grau ''(ax² + bx + c)'' e devolve o número de raizes. Que optimizações poderia fazer a nível do código Postfix? |
== Exercício 3 == | == Exercício 3 == | ||
Line 37: | Line 37: | ||
</c> | </c> | ||
+ | # Traduza-a para código Postfix '''não optimizado''' a função acima. | ||
# Identifique os blocos básicos. | # Identifique os blocos básicos. | ||
# Que optimizações poderiam ser efectuadas? | # Que optimizações poderiam ser efectuadas? |
Contents[hide] |
Processamento semântico e geração de código Postfix. Optimização.
Considere a seguinte função em C:
<c> int find(int tab[], int max, int val) {
int i; for (i = 0; i < max; i++) if (tab[i] == val) break; return i;
} </c>
Escreva em código Postfix não optimizado' uma função que recebe os valores dos três coeficientes de uma equação de 2º grau (ax² + bx + c) e devolve o número de raizes. Que optimizações poderia fazer a nível do código Postfix?
Considere a seguinte função em C:
<c> int main() {
int a[10], i = 1; a[0] = 0; while (i < 10) a[i++] = a[i-1] + 2 * i - 1; return 0;
} </c>