Arte

Páginas: 13 (3086 palabras) Publicado: 14 de agosto de 2013
PROGRAMACIÓN PROCEDURAL

Verificación y Derivación formal de Programas

1

Enfoques para determinar si un programa es correcto
validar

Testing:
Sólo puede mostrar la presencia de errores y no su inexistencia.
Para asegurar que un programa es correcto es necesario analizar todos los
valores posibles de datos de entrada (imposible cuando el cjto. es infinito)

Prueba formal deprogramas:
.
Asegura que el programa es correcto con respecto a una especificación para todas
las entradas

Dos problemas importantes:
1) la manipulación lógica puede ser tediosa y propensa a errores;
2) la prueba solamente muestra que el programa implementa la
especificación correctamente. No hay certeza de que la especificación
describe lo que el usuario realmente desea

VerificaciónFormal
Para la verificación de programas Imperativos se utiliza un sistema de reglas basado
en la tripla de Hoare

Tripla de Hoare

{ P} A {Q}

A : programa/ sentencia;
P y Q predicados o aserciones

Interpretación :Si el predicado P es cierto antes de la ejecución del programa A y el
programa termina , entonces Q será cierto tras la ejecución de A.

La precondición P y la postcondiciónQ se especifican mediante fórmulas denominadas
aserciones. Se garantiza que si la entrada actual satisface las restricciones de entrada
(precondiciones) la salida satisface las restricciones de salida (postcondiciones)

Precondiciones y Postcondiciones
{ P} A {Q}
El programa A actúa como una función de estados en estados: comienza su
ejecución en un estado inicial válido, descrito por elvalor de los parámetros de
entrada, y termina en un estado final en el que los parámetros de salida contienen

los resultados esperados.
 Espacio de Estados:Es el universo de valores que pueden tomar las variables
 Precondiciones: son los asertos que deben cumplirse a la entrada de

una tarea. Si la tarea o instrucción se realiza sin que la precondición se
cumpla no tendremos garantía delos resultados obtenidos.
 Postcondiciones son los asertos acerca de los resultados que se

esperan a la salida

Verificación Vs Derivación
Verificar: demostrar que el programa construido es correcto
respecto de la especificación dada

Derivar o deducir un programa permite construir un programa a
partir de su especificación, de forma que se obtiene un algoritmo
correcto porconstrucción

Corrección Total y Corrección Parcial
Corrección parcial: {P} A {Q} es parcialmente correcto si el estado
final de A, cuando termina el programa (aunque no se exige esta
premisa), satisface {Q} siempre que el estado inicial satisface {P}.
Corrección total: Se da cuando un código además de ser correcto
parcialmente, termina.
Los algoritmos sin bucles siempre terminan por lo que lacorrección parcial implica la corrección total. Esta
distinción es esencial sólo en el caso de códigos que incluyan bucles o recursiones

Programación imperativa
Instrucciones
Asignación
Secuencia
Condicional

Iteración

Método de Verificación
Precondición más débil (pmd)

Invariante  para demostrar que un
ciclo es correcto

Instrucciones: Asignación,Secuencia, Condicional

Reglageneral:
1. Encontrar la precondición más débil {pmd} tal que

{pmd} S {Q} es válido
Pmd: conj. de todos los estados tales que desde ellos y ejecutando el programa S se llega a Q

2. Cualquier precondición {P} que implique {pmd} hace que el programa S
sea correcto
Si {P}



{pmd} entonces el programa S también es correcto para la terna
{P} S {Q}

Verificación de códigos sin buclesPara demostrar la corrección de las partes de un programa se parte de la
postcondición y a partir de ahí se deduce la precondición. El código se
verifica en sentido contrario a como se ejecuta.
{P} = PreC. Inicial
Código 1
PreC2 =PostC. 1

Código 2
PreC. 3 =PostC. 2

EJECUCION

Código 3

{ Q} =PostC. 3

VERIFICACION

Reglas para instrucciones del lenguaje
Sentencias de...
Leer documento completo

Regístrate para leer el documento completo.

Estos documentos también te pueden resultar útiles

  • arte por arte
  • DE TU ARTE A MI ARTE
  • arte o no arte
  • Arte
  • Arte
  • Arte
  • Arte
  • Arte

Conviértase en miembro formal de Buenas Tareas

INSCRÍBETE - ES GRATIS