Please enable JavaScript.
Coggle requires JavaScript to display documents.
Método B – L14, L15, L17 - Coggle Diagram
Método B – L14, L15, L17
L15 – Loops
-
-
-
-
Exemplo MultRussian
Divide xx por 2, dobra yy, soma yy quando xx é ímpar
-
-
-
-
-
-
-
L14 – Implementation
O que é
Último refinamento, o que vira código no Atelier B
-
-
-
Comandos B0
-
-
-
-
-
-
-
-
Atenção: := é atribuição, <-- é chamada
Expressões e condições
Expressões: variável, constante, aa(xx), + - * /, mod, bool(...)
Condições: &, or, not, =, /=, <, <=, >, >=
-
Tipos B0
Só versões finitas: NAT, INT, BOOL, conjuntos adiados e enumerados
Arrays: t1 → t2, t1 × t2 → t3, ou função de função
-
Exemplo DateFields
Só conjuntos (hora, minuto, dia, mês, ano) e enumerado AM/PM
-
-
Exemplo Customer
Compras, limite de preço e preço de cada produto
Operações: comprar (se preço ≤ limite), mudar preço, consultar preço
-
-
-
-
No C: arrays com nome da máquina, saídas por ponteiro, loops na inicialização
L17 – Code Generation
-
-
Antes de gerar
-
-
Na condição, nada de f(x) ou conta: usa variável local
Lemas de boa definição
Soma, subtração e multiplicação não saem do tipo
-
-
Máquinas básicas
Ligam o B com código de fora (bibliotecas, E/S, SO)
-
-
Dica: implementação com skip, gera esqueleto, completa à mão
-
Perfis de tradução
C9X, LIGHT, 01 e project (personalizado)
-
-
Nível da geração
-
Por projeto: a partir do topo gera tudo, o main e um makefile
-