Les systèmes informatiques ont considérablement évolué, depuis les machines d'origine. On peut le mesurer à l'aune des puissances de calcul vertigineuses offertes par les ordinateurs modernes, qui s'expriment en teraflops (un teraflop représente un millier de milliards d'opérations arithmétiques par seconde). Mais il ne s'agit là que d'un aspect somme toute mineur de cette évolution. D'une part, avec les progrès en miniaturisation, des programmes ont été introduits dans de nombreux objets de la vie quotidienne, à vocation aussi bien ludique qu'utilitaire : transports, électroménager, cartes de paiement, appareils médicaux... D'autre part, ces systèmes programmés ne sont généralement pas isolés, mais fonctionnent en réseau : nous avons donc affaire à des programmes qui communiquent entre eux, voire se déplacent ou sont modifiés en cours d'exécution. Qu'y a-t-il de commun entre de tels programmes et ceux que l'on mettait au point sur les machines d'après guerre ? Beaucoup de choses en réalité. Nous allons donc commencer par passer en revue les aspects conceptuels, fondamentaux, qui caractérisent toute activité de programmation, avant d'aborder des aspects plus spécifiques des problématiques posées par les gros logiciels. La seconde partie de cet article est consacrée à l'utilisation de formalismes logiques pour concevoir des programmes sûrs et vérifier qu'ils se comportent conformément aux attentes exprimées.
1. Programmes informatiques
• Programme, interpréteur et compilateur
Un programme est tout d'abord un texte, c'est-à-dire une séquence de symboles. Pour prendre son sens en tant que programme, ce texte doit être mis en présence d'un mécanisme capable de le décoder et de produire un certain nombre de transformations. Ce mécanisme est appelé un interpréteur et l'ensemble des symboles utilisés est appelé le vocabulaire. Toutes les séquences de symboles ne forment pas des programmes : elles doivent respecter des règles de syntaxe, et celles-ci définissent le langage de programmat […]
… pour nos abonnés, l'article se prolonge sur 11 pages…



