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

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

Lógica para Computação (IF61B) Lógica para Computação: Especificação de Programas Prof. Celso Antônio Alves Kaestner, Dr. Eng.

Apresentações semelhantes


Apresentação em tema: "Lógica para Computação (IF61B) Lógica para Computação: Especificação de Programas Prof. Celso Antônio Alves Kaestner, Dr. Eng."— Transcrição da apresentação:

1 Lógica para Computação (IF61B) Lógica para Computação: Especificação de Programas Prof. Celso Antônio Alves Kaestner, Dr. Eng. kaestner@dainf.ct.utfpr.edu.br Alterado e complementado por Prof. Adolfo Neto, D.Sc. adolfo@utfpr.edu.br

2 Lógica para Computação (IF61B) 25/05/09Prof. Celso A A Kaestner 2 Especificação de programas Uma tarefa típica em Computação: Especificações em linguagem natural exigem que se assuma o significado de diversos termos, e por isto são “imprecisas / vagas / inconsistentes” permitindo diversas interpretações; Este é um problema amplamente estudado em Engenharia de Software, que busca métodos e formalismos tenta eliminar / reduzir este problema. Modelagem problema computacional problema real

3 Lógica para Computação (IF61B) 25/05/09Prof. Celso A A Kaestner 3 Especificação de programas Visão operacional de um programa: Programas como transformadores de estados:... programa  1 = {v 1 1,v 1 2...v 1 m }  = {v 2 1,v 2 2...v 2 m }  = {v n 1,v n 2...v n m } dados de entrada dados de saída...

4 Lógica para Computação (IF61B) 25/05/09Prof. Celso A A Kaestner 4 Especificação de programas Especificação de propriedades de programas: Exemplo: dados dois valores (x e y) inteiros maiores ou iguais a 10 calcular sua soma (z); Especificação 1: –sobre o estado inicial: x  10  y  10 –sobre o estado final: z = x + y Especificação 2 (superespecificação): –sobre o estado inicial: x  10  y  10  (x + y)  0 –sobre o estado final: z = x + y  z  20

5 Lógica para Computação (IF61B) 25/05/09Prof. Celso A A Kaestner 5 Especificação de programas Especificação 3 (especificação pouco clara): –sobre o estado inicial: x  10  (x + y)  (10 + x) –sobre o estado final: z = x + y Especificação 4 (especificação incompleta): –sobre o estado inicial: x  10 –sobre o estado final: z = x + y “Especificação” 5 (não é especificação...): –sobre o estado inicial: x  10  y  10 –sobre o estado final: z = x + y  z < 10

6 Lógica para Computação (IF61B) 25/05/09Prof. Celso A A Kaestner 6 Especificação de programas Vantagens de se ter uma especificação definida por formalismo matemático: 1.Precisão; 2.Verificação de consistência; 3.Simulação; 4.Verificação de programas. Pode-se usar a Lógica Matemática como linguagem de especificação (SILVA; FINGER; MELO, 2006, p. 165);

7 Lógica para Computação (IF61B) 25/05/09Prof. Celso A A Kaestner 7 Especificação de programas Sistematização das propriedades de programas: 1.Pré-condições: válidas sobre os dados de entrada; 2.Pós-condições: válidas sobre os dados de saída; 3.Invariantes: válidas sempre, durante toda a execução do programa.

8 Lógica para Computação (IF61B) Especificação de programas Exemplo: fatorial. 1 se n=0 n! =1se n=1 n*(n-1)! se n>1 PRE: n  0 POS: fat = n! INV: fat > 0 25/05/09Prof. Celso A A Kaestner 8

9 Lógica para Computação (IF61B) Referências SILVA, Flávio S. C. da; FINGER, M.; MELO, Ana C. V. de. Lógica para Computação. São Paulo: Thomson Learning, 2006.


Carregar ppt "Lógica para Computação (IF61B) Lógica para Computação: Especificação de Programas Prof. Celso Antônio Alves Kaestner, Dr. Eng."

Apresentações semelhantes


Anúncios Google