A apresentação está carregando. Por favor, espere

A apresentação está carregando. Por favor, espere

Estudo de Caso: Raiz Quadrada Programming from Specifications Carroll Morgan Prentice-Hall, 1994 [Capítulo 7] Equipe: Alysson Barros Cleber Ribeiro.

Apresentações semelhantes


Apresentação em tema: "Estudo de Caso: Raiz Quadrada Programming from Specifications Carroll Morgan Prentice-Hall, 1994 [Capítulo 7] Equipe: Alysson Barros Cleber Ribeiro."— Transcrição da apresentação:

1 Estudo de Caso: Raiz Quadrada Programming from Specifications Carroll Morgan Prentice-Hall, 1994 [Capítulo 7] Equipe: Alysson Barros Cleber Ribeiro

2 Capítulo 7 – Estudo de Caso da Raiz Quadrada Introdução Aplicação prática e exemplo de aplicação da lei de refinamentos; O encontro de invariantes ajuda-nos a refresca os assunto já visto.

3 Capítulo 7 – Estudo de Caso da Raiz Quadrada Programa Abstrato: O ponto de início Dados um número natural s, atribuímos a um número natural r, o inteiro mais próximo que não exceda a raiz quadrada de s (√s). Por Exemplo: s = 29, r = 5. O programa abstrato: var r,s : N r := [√s]

4 Capítulo 7 – Estudo de Caso da Raiz Quadrada Programa Abstrato: O ponto de início No programa abstrato, os símbolos utilizados não são códigos: √ e ; Nosso trabalho seguinte é remover esse símbolos para que eles possam ser utilizados em códigos de um linguagem de programação.

5 Capítulo 7 – Estudo de Caso da Raiz Quadrada Removendo os operadores ‘exóticos’ Chamamos de exóticos por não serem tratados como códigos ; O primeiro passo é remover a função de raiz e a função piso do programa: Simples especificação 1.7 : r: [ r = [ √s]] Definição de : r : [ r ≤ √s < r + 1] Definição de √ : r : [ r² ≤ s < (r + 1) ²]

6 Capítulo 7 – Estudo de Caso da Raiz Quadrada Removendo os operadores ‘exóticos’ Podemos observar que a designação do programa está escrito agora para o cliente ; Usou-se o poder dos operadores, deixando as expressões limpas e sucintas; Nossa tarefa agora é mover de uma designação para uma especificação: A especificação é mais fácil para desenvolver; Necessitamos de uma fórmula no lugar de uma expressão para explanar as definições das funções raiz e piso.

7 Capítulo 7 – Estudo de Caso da Raiz Quadrada Procurando a invariante A pós condição na iteração 5.5 é da forma: inv ^ ¬GG. Investigar a re-escrita para as pós-condições: r² ≤ s ^ ¬ (s ≥ (r + 1) ²) e s s) A primeira opção nos deixa com a opção: do s ≥ (r + 1) ² -> …. od, com a invariante r² ≤ s A segunda : do r² > s ->.... od, com invariante s < (r + 1) ²

8 Capítulo 7 – Estudo de Caso da Raiz Quadrada do od var (1) Lei 5.5 - Iteração Lei 3.3 – Comp. Seq. Procurando a invariante

9 Capítulo 7 – Estudo de Caso da Raiz Quadrada if fi (1) (2) Lei 4.1 (3) Lei 4.1 (2) (3) Procurando a invariante

10 Capítulo 7 – Estudo de Caso da Raiz Quadrada do if fi od var r qp1 p2p3 valor Código Final


Carregar ppt "Estudo de Caso: Raiz Quadrada Programming from Specifications Carroll Morgan Prentice-Hall, 1994 [Capítulo 7] Equipe: Alysson Barros Cleber Ribeiro."

Apresentações semelhantes


Anúncios Google