La caractéristique définissant des ordinateurs modernes qui les distingue de toutes les autres machines est qu'ils peuvent être programmés. Cela veut dire qu'un certain type d'instructions (le programme) ne peut être donnée à l'ordinateur, et il portera les traiter. Alors que certains ordinateurs peuvent avoir des concepts étranges "Instructions" et "sortie" (voir l'informatique quantique), les ordinateurs modernes basés sur l'architecture de von Neumann ont souvent du code machine sous la forme d'un langage de programmation impératif.
En termes pratiques, un programme d'ordinateur peut être quelques instructions ou d'étendre à plusieurs millions d'instructions, de même que les programmes de traitement de texte et les navigateurs Web par exemple. Un ordinateur moderne typique peut exécuter milliards d'instructions par seconde (gigaflops) et fait rarement une erreur au cours de nombreuses années de fonctionnement.
Les grands programmes informatiques constitués de plusieurs millions d'instructions peuvent prendre équipes de programmeurs ans à écrire, et en raison de la complexité de la tâche presque certainement contenir des erreurs. Stockés architecture programme Principaux articles: programme d'ordinateur et la programmation informatique A 1970 carte perforée contenant une ligne à partir d'un programme FORTRAN. La carte lit: "Z
(1) = Y + W
(1)» et est étiqueté "PROJ039" à des fins d'identification. Cette section concerne la plupart des ordinateurs à base de machines RAM commune.
Dans la plupart des cas, les instructions informatiques sont simples: ajouter un numéro à un autre, déplacer des données d'un endroit à un autre, envoyer un message à un certain dispositif externe, etc. Ces instructions sont lues à partir de la mémoire de l'ordinateur et sont généralement effectuées (exécuté) dans l'ordre où ils ont été donnés. Cependant, il ya généralement des instructions spécialisées pour indiquer à l'ordinateur pour sauter en avant ou en arrière pour un autre endroit dans le programme et de poursuivre l'exécution à partir de là.
Ceux-ci sont appelés "des instructions de saut" (ou branches). En outre, des instructions de saut peuvent être apportées à se produire sous conditions différentes de sorte que les séquences d'instructions peuvent être utilisées en fonction du résultat d'un calcul précédent ou d'un événement externe. De nombreux ordinateurs soutiennent directement les sous-programmes en fournissant un type de saut qui "se souvient" l'emplacement où