Les sources d'un logiciel permettent la description de celui-ci sous forme de texte lisible par un humain, à partir duquel est généré une forme exécutable par la machine. La possession du source du programme est obligatoire pour la compréhension du fonctionnement du programme et pour sa modification (améliorations, correction de bogues).