Lenguaje de mandatos desarrollado por Edsger Dijkstra para la transformación de predicados. Dispone de un conjunto de construcciones del tipo condición-acción donde las condiciones se expresan como proposiciones sobre las variables del programa y las acciones modifican los estados. Las órdenes se encuentran insertadas en bloques condicionales "fi-if" y bucles "do-od". En los bloques condicionales, si se cumple más de una condición, sólo se ejecutará una acción escogida de forma aleatoria. Los bucles se ejecutan hasta que todas las condiciones son falsas.