Abstrakte Unterprogramme treten zusammen mit abstrakten Typen (vgl. 2.7.3) auf. Ein abstraktes Unterprogramm ist ein Unterprogram, das keinen Implementationsteil besitzt, von dem aber erwartet wird, das es ,,weiter unten`` im Ableitungsbaum einen solchen besitzen wird.
Wenn der Vatertyp eines abgeleiteten Typs ein abstraktes Unterprogramm ,,besitzt``, dann
Beispiele für ein abstrakte Unterprogramme sind:
function is_empty(s:set) return boolean is abstract;