Diseño de programas: Formalismo y Abstracción de segona mà