Nesta atividade, vamos tratar da Semânticas Dinâmicas.
Usando as instruções de máquina virtual dadas na Seção 3.5.1.1 do livro-texto(o if, o goto e o uso de rótulos), dê uma definição de semântica operacional das seguintes construções:
Escreva uma função de mapeamento de semântica denotacional para as seguintes sentenças:
Você pode reutilizar as funções definidas na Seção 3.5.2.
Compute a pré-condição mais fraca para cada uma das seguintes construções de linguagen e suas pós-condições.
a = 2 * (b - 1) - 1 { a > 0 }
a = a + 2 * b - 1 { a > 1 }
a = 2 * b + 1;
b = a - 3;
{ b < 0 }
a = 3 * (2 * b + a);
b = 2 * a - 1;
{ b > 5 }
if (a == b)
b = 2 * a + 1;
else
b = 2 * a;
{ b > 1 }
if (x < y)
x = x + 1;
else
x = 3 * x;
{ x < 0 }