Lenguaje similar a C++.
x := E
skip
S1; S2
es una programa si S1
y S2
son dos programas.if B then S1 else S2 endif
while B do S endwhile
Llamamos estado de un programa a los valores de todas sus variables en un punto de su ejecución.
Podemos considerar la ejecución de un programa como una sucesión de estados.
La asignación es la instrucción que permite pasar de un estado al siguiente en esta sucesión de estados.
Las estructuras de control se limitan a especificar el flujo de ejecución.
Definición:
Decimos que un programa $S$ es correcto respecto de una especificación dada por una precondición $P$ y una postcondición $Q$, si siempre que el programa comienza en un estado que cumple $P$ el programa termina su ejecución y en el estado final se cumple $Q$.
Notación: $\{P\} S \{Q\}$ si y solo si $S$ es correcto (tripla de Hoare).
Cuando tenemos un condicional tenemos que considerar las dos alternativas por separado.
while (guarda B) {
cuerpo del ciclo S
}