- PL1
-
PL/I
Le PL/I ou PL/1 (Programming Language number 1) est un langage de programmation développé par IBM dans les années 1960. Son objectif était d'être universel et de pouvoir remplacer indifféremment les langages à destination scientifique, tels que FORTRAN et ALGOL, et le langage COBOL, plus adapté aux problèmes de comptabilité et de gestion. Il permettait même l'accès à des fonctions autrefois réservées à la programmation système, comme la gestion de zones dynamiques de mémoire allouées à la demande (et non simplement à l'entrée dans un bloc) et de pointeurs.
Son objectif était de devenir le langage privilégié de programmation des ordinateurs universels IBM 360 et 370.
Sa syntaxe reprenait des idées de COBOL (structures, calcul en mode décimal), et d'ALGOL (structure de blocs imbriqués). Toutefois, les programmeurs de ces deux langages ne communiquaient guère entre eux à l'époque, et chacun jugeait inutile et encombrant ce qui avait été inclus pour l'autre - et vice versa. Son compilateur nécessitait également des machines importantes, et ne comportait au départ ni optimiseur, ni compilateur incrémental (le PL/I Optimizing compiler et le PL/I Checkout compiler ne viendront que plus tard).
Ce langage avait beaucoup des caractéristiques de ce qui sera plus tard le C, et même déjà certaines du C++. Malheureusement, IBM déposa les noms PL/1 à PL/100 pour éviter de perdre le contrôle des spécifications du langage. Un effet non prévu de cette décision fut de dissuader la concurrence de nommer « PL/I » ses propres implémentations, qui prirent des noms voisins : « SL/1 », « CPL/1 », « PL/M », « PL/C »... Devant la multitude de ces appellations, la crainte d'une balkanisation du langage (et des frais de migration associés en cas de changement de constructeur) dissuada les équipes informatiques d'y migrer. Le lancement du langage, malgré ses qualités (gestion simple du multitasking, récursivité, structures de blocs, facilités de debugging et de profilage, allocation dynamique dans des pools de mémoire eux-mêmes dynamiques (AREA), procédures génériques analogues aux templates de C++) ne rencontra donc pas le vif succès attendu.
Sommaire
Caractéristiques
- Un objectif du langage était que chacun puisse l'utiliser sans avoir à en connaître la totalité. Il n'y a en conséquence pas de mots réservés dans PL/I.
- Un programmeur devait pouvoir utiliser un nom défini de façon externe - par exemple TIME - sans avoir à se demander si c'était une variable ou une fonction sans argument.
- Les instructions d’entrée sortie font partie du langage et ne sont pas des fonctions de bibliothèques externes.
Défauts
Donc des qualités, mais aussi des défauts qui expliquent la quasi-disparition de ce langage de nos jours. Son principal défaut était d’avoir voulu être un couteau suisse à 24 lames. Le langage aurait beaucoup gagné à ne pas être cette fusion intégrale du Fortran et du Cobol. Les bizarreries du Fortran avec ses instructions FORMAT et ses GOTO calculés combinées aux curiosités du Cobol avec ses PICTURE et son tri de fichier intégré ont fait du PL/I un langage certes complet mais un peu lourd.
Héritier
Il existe un héritier du PL/I, tout du moins un héritier de la syntaxe claire du PL/I, c’est le langage procédural REXX.
Conclusion
PL/I permettait de produire du code bien plus robuste que celui du langage C, ceci dû principalement à la faible nécessité de gérer des pointeurs ou des adresses, ce qui est une source importante de bugs de programmation.
Références
- Gérard Verroust Histoire de l'informatique (Cours Université Paris 8, 1994-1997)
- PL/I
- XPL un langage dérivé de PL/I
- Manuel de PL/M un langage de programmation système dérivé de PL/I via XPL
Liens externes
- PL/1 for GCC (Un projet visant à ajouter un frontal pour PL/1 au compilateur GCC du projet GNU)
- M. Mazaud Un traducteur de PL/1 vers C (INRIA Rocquencourt, Rapport technique n° 65, février 1986)
- Compilateurs PL/I IBM
- Portail de la programmation informatique
Catégories : Langage de programmation | Norme ISO | Grand Système IBM
Wikimedia Foundation. 2010.