Une opération est une fonction quelconque dont la signature (à savoir les paramètres et la ou les valeurs de retour) mentionne des types abstraits, et dont la sémantique est exprimée en terme de ces types abstraits.
On peut par exemple avoir une opération pour déterminer si une personne est l'ancêtre d'une autre. Cette opération met en jeu deux types : personne et booléen (pour la valeur de retour).
Un exemple de fonction qui n'est pas une opération est la fonction dont l'argument est une personne et qui récupère le champ date-de-naissance dans la structure utilisée pour représenter la personne. Ce n'est pas une opération, car la sémantique est exprimée en terme de la représentation de l'objet.