A notação tradicional para expressões aritméticas, que representa uma operação binária na forma x + y, ou seja, com o operador entre seus dois operandos, é conhecida como notação infixa. Uma notação alternativa para esse tipo de expressão é a notação pré-fixa, na qual o operador é expresso antes de seus operandos. O atrativo da notação pré-fixa é que ela dispensa o uso de parênteses ao adotar a noção de pilha para a representação das expressões. Qual das seguintes expressões pré-fixas é equivalente à expressão infixa a = a v b & c v d & e sobre a gramática livre de contexto apresentada a seguir.
G = ({S, E, T, F, V}, {a, b, c, d, e, =, v, &, (, )}, P, S) P = {S → V=E E → TvE | T T → F&T | F F → (E) | V V → a | b | c | d | e}
A notação tradicional para expressões aritméticas, que representa uma operação binária na forma x + y, ou seja, com o operador entre seus dois operandos, é conhecida como notação infixa. Uma notação alternativa para esse tipo de expressão é a notação pós-fixa, na qual o operador é expresso após seus operandos. O atrativo da notação pós-fixa é que ela dispensa o uso de parênteses ao adotar a noção de pilha para a representação das expressões. Qual das seguintes expressões pós-fixas é equivalente à expressão infixa a = a & b v c & d v e sobre a gramática livre de contexto apresentada a seguir.
G = ({S, E, T, F, V}, {a, b, c, d, e, =, v, &, (, )}, P, S) P = {S → V=E E → EvT | T T → T&F | F F → (E) | V V → a | b | c | d | e}
X = X + Y * Z; Y = Z * X + Y * Z; Z = Z * X + Y * Z;
sobre a gramática livre do contexto apresentada a seguir:
G = ({A, E, T, F, V}, {x, y, z, =, +, -, *, /, (, )}, P, A) P = {A → V=E E → E+T | E-T | T T → T*F | T/F | F F → (E) | V V → x | y | z}
No programa abaixo, escrito na sintaxe do C, os parâmetros da função sum
são passados por nome.
float sum(int i, int j, int t)
{
int temp = 0;
for(; i <= j; i++)
{
temp = temp + t;
}
return temp;
}
void main()
{
int k = 1;
printf("%d", sum(k, 5, k*k));
}
O texto impresso na última linha do programa é:
O código objeto apresentado a seguir é equivalente a qual comando de atribuição?
LOAD a, R0 LOAD b, R1 COPY R0, R2 ADD R1, R0 MUL R2, R0 SUB R2, R1 MUL R2, R1 ADD R1, R0 SUB R0, R2 STORE R2, x