Un programma è una sequenza di istruzioni che indica a un computer come eseguire un dato compito. Un programma mostra quindi come il computer riceve ed elabora l'input fornito per restituire l'output atteso.
Scrivere un programma è quindi analogo a fare un patto con il diavolo: entrambi daranno letteralmente ciò che viene chiesto loro. Per evitare errori e imprevisti occorre dunque descrivere con precisione quali input sono validi, quali output aspettarsi e quali operazioni eseguire a tal fine.