Quelques notions d'informatique : la logique

Un processeur contient dans sa mémoire un jeu d'instructions. C'est l'ensemble des instructions machine ou opérations élémentaires qu'un processeur peut réaliser. Elles sont stockées sous forme binaire : on parle de langage machine. Il s'agit d'opérations de calcul, de comparaison de valeurs, de déplacement dans la mémoire...

Un programme informatique est une suite d'instructions qui fait appel aux instructions machine du processeur et les combine pour remplir sa tâche. Un programme peut être interprété (lu et exécuté simultanément) ou compilé (traduit en langage machine pour être exécuté ultérieurement). Il est écrit dans un langage de programmation, chacun possédant sa propre syntaxe et répondant à une logique spécifique (programmation impérative ou orientée objet par exemple; cf la liste des paradigmes de programmation sur Wikipédia). On distingue les langages de bas niveau, les plus proches du langage machine, qui doivent gérer les aspects matériels spécifiques au processeur (manipulation de registres, adresses mémoires...), et les langages de haut niveau d'abstraction, dont la syntaxe est plus proche des langues naturelles et qui fait abstraction de l'aspect matériel pour se concentrer sur l'aspect logique.

Historiquement, les programmes ont d'abord été écrit en langage machine, puis en assembleur. C'est le langage de plus bas niveau, constitué essentiellement de symboles mnémoniques correspondant à des instructions machine, et converti en langage machine par un programme assembleur. A cette époque, les programmes consistent en un enchaînement automatique de commandes : on parle de traitement par lots. Dans les années 1950, les premiers compilateurs et langages de programmation de haut niveau compilés sont développés, « lorsque les avantages apportés par la possibilité de réutiliser le logiciel sur différents types de processeurs sont devenus plus importants que le coût de l'écriture d'un compilateur. La capacité de mémoire très limitée des premiers ordinateurs a également posé plusieurs problèmes techniques dans le développement des compilateurs. » (Wikipédia). Dans les années 1960, les premiers interpréteurs de commandes et langages interprétés sont développés avec l'apparition de périphériques tels que le téléscripteur, permettant le traitement transactionnel des opérations (interactivité avec l'utilisateur, programmation dynamique). Ces différentes approches de la programmation ont perduré et coexistent toujours, chacune possédant ses avantages et ses inconvénients.

Un système d'exploitation « est un ensemble de programmes qui dirige l'utilisation des ressources d'un ordinateur par des logiciels applicatifs » (Wikipédia). Un système d'exploitation comprend divers programmes de base, dont un interpréteur de commandes et au moins une interface utilisateur du système (ou shell en anglais) en ligne de commande (command line interface, CLI), qui permet à l'utilisateur d'entrer des commandes en mode texte pour dialoguer avec les autres composantes du système. Dans les années 1980, la généralisation des écrans et des dispositifs de pointage (souris) permet le développement d'interfaces graphiques (graphical user interface, GUI). Un logiciel applicatif est un ensemble de programmes et de données qui permet d'assigner les ressources du processeur à une tâche particulière.