- B (langage)
-
Le langage de programmation B recouvre deux concepts différents :
- le langage utilisé par la méthode formelle B,
- un langage depuis longtemps obsolète qui a représenté la transition entre BCPL et le langage C. C'est principalement l'œuvre de Ken Thompson et il apparut pour la première fois en 1969 environ.
Le langage originel
C'était en fait le BCPL privé de tout ce que Thompson pensait ne pas être essentiel, afin de pouvoir être utilisé sur de petits ordinateurs et avec quelques changements pour correspondre aux goûts de Thompson (principalement réduire le nombre de caractères dans un programme).
Comme le BCPL et le Forth, le B avait un seul type de donnée, le « mot » (word) d'ordinateur. La plupart des opérateurs (+, -, *, /) le considéraient comme un entier (integer) mais d'autres comme une adresse mémoire. Sur d'autres points, il pourrait se faire passer pour une ancienne version du C. Quelques bibliothèques de fonctions existaient, dont certaines ressemblaient vaguement aux fonctions d'entrée-sortie de la bibliothèque standard du C.
Les premières implémentations étaient pour les mini-ordinateurs de DEC, PDP-7 et PDP-11 et ont été développées en même temps que UNIX.
Le langage B a été implémenté sur les ordinateurs de la série Honeywell 6000 et leurs successeurs (mainframes) par une équipe de l'université de Waterloo, dans l'Ontario, au Canada, afin de pouvoir écrire pour le time-sharing de ces machines un succédané des commandes UNIX baptisé UW-Tools. Le compilateur B et les UW-Tools étaient distribués gratuitement en France par Bull, jusque vers l'année 2000.
D'après Ken Thompson, le B a été grandement influencé par BCPL, mais le nom B lui-même n'a rien à voir : c'était en fait une évolution d'un ancien langage, Bon, du nom de l'épouse de Ken Thompson, prénommée Bonnie.
Le langage de la méthode B
Article détaillé : Méthode B.La méthode B est une méthode formelle de développement logiciel qui permet de modéliser de façon abstraite dans le langage de B le comportement d'un programme, puis par raffinements successifs, d'aboutir à un modèle concret, sous-ensemble du langage transcodable en Ada ou en C.
Wikimedia Foundation. 2010.