| Fiche technique | |
|---|---|
| Type de produit : | Langage de programmation |
| Auteur : | IBM |
| Licence : | Propriétaire |
| Date de publication : | 1964 |
Introduction
Le langage de programmation PL/I, également orthographié PL/1 (Programming Language One), est un langage de programmation généraliste conçu par IBM au début des années 1960 afin de répondre à un objectif particulièrement ambitieux : réunir dans un seul langage les possibilités offertes jusque-là par plusieurs langages spécialisés comme FORTRAN pour le calcul scientifique, COBOL pour les applications commerciales et ALGOL pour la programmation structurée. Grâce à cette approche, PL/I est rapidement devenu l'un des langages les plus complets de son époque et fut largement utilisé sur les ordinateurs centraux IBM.
Le langage est destiné à résoudre une très grande variété de problèmes informatiques. Il est utilisé aussi bien dans les applications commerciales, scientifiques (notamment en mathématiques, physique, chimie et statistiques), que dans les domaines de l'ingénierie (génie civil, électrique, mécanique, aéronautique ou spatial), de la médecine, de la finance, des télécommunications et de la recherche universitaire. Cette polyvalence constitue l'une des principales caractéristiques de PL/I et explique pourquoi IBM souhaitait en faire un langage universel pouvant être utilisé dans pratiquement tous les secteurs de l'informatique.
PL/I peut servir à développer des applications de gestion commerciale, des systèmes de comptabilité, des logiciels bancaires, des méthodes numériques, des traitements scientifiques, des applications de simulation, des traitements de texte, des compilateurs, des systèmes de gestion de fichiers, des listes de traitements par lots ainsi que des programmes destinés à la programmation système en temps réel. Le langage prend également en charge les interruptions, la gestion avancée des exceptions, le multitâche, les pointeurs, les structures de données complexes, les chaînes de caractères de longueur variable et de nombreuses fonctionnalités particulièrement innovantes pour les années 1960.
L'une des grandes forces de PL/I réside dans sa richesse syntaxique. Le langage introduit très tôt des concepts aujourd'hui considérés comme courants, tels que les procédures récursives, les structures de données imbriquées, la gestion des exceptions avec la directive ON, les allocations dynamiques de mémoire, les pointeurs, les tableaux multidimensionnels, les types de données décimaux fixes et flottants ainsi qu'un puissant système d'entrées-sorties. Cette richesse permet aux développeurs d'écrire aussi bien des applications scientifiques que des logiciels de gestion ou des composants du système d'exploitation, sans devoir changer de langage.
Depuis sa création, PL/I a continuellement évolué grâce aux différents compilateurs développés par IBM. Les premières versions étaient principalement destinées aux ordinateurs IBM System/360, avant d'être adaptées aux environnements DOS/360, OS/360, MVS, VM, AIX puis z/OS. Les compilateurs modernes Enterprise PL/I continuent d'être activement développés et ajoutent régulièrement de nouvelles optimisations, une meilleure prise en charge des processeurs IBM Z, de nouveaux outils de débogage ainsi qu'une meilleure interopérabilité avec les langages C, C++, Java, XML et JSON.
Le tableau suivant présente les principales étapes de l'évolution du langage PL/I, depuis son projet initial jusqu'aux versions les plus récentes des compilateurs IBM destinés aux ordinateurs centraux modernes :
| Version | Année | Commentaires |
|---|---|---|
| NPL (New Programming Language) | 1963 | Nom initial du projet de développement du langage. Il est renommé PL/I avant sa commercialisation afin d'éviter un conflit avec le National Physical Laboratory (NPL) du Royaume-Uni. |
| PL/I | 1964 | Présentation officielle du langage par IBM pour les ordinateurs IBM System/360. Il est conçu pour réunir les domaines scientifique, commercial et de programmation système dans un seul langage. |
| Optimizing Compiler | 1966 | Premier compilateur optimisant complet destiné à OS/360. Il produit un code beaucoup plus performant que les compilateurs de développement initiaux. |
| PL/I F | 1966 | Compilateur complet (« F Compiler ») pour OS/360. Il devient rapidement la version de référence utilisée sur les System/360. |
| PL/I D | 1966 | Version simplifiée destinée aux systèmes DOS/360 de petite capacité mémoire. Elle implémente un sous-ensemble du langage afin de fonctionner sur des configurations limitées. |
| Checkout Compiler | 1968 | Compilateur de mise au point permettant une meilleure détection des erreurs durant le développement des programmes. |
| ANSI X3.53-1976 | 1976 | Première normalisation officielle du langage PL/I par l'ANSI, assurant une meilleure portabilité des programmes entre différents compilateurs. |
| IBM VS PL/I | 1978 | Nouvelle génération de compilateurs optimisés pour les systèmes OS/VS1, OS/VS2 et MVS, avec de meilleures performances et un meilleur support de la mémoire virtuelle. |
| PL/I for AIX | 1988 | IBM adapte PL/I aux stations de travail RS/6000 exécutant AIX, permettant le développement d'applications UNIX en PL/I. |
| VisualAge PL/I | 1995 | Environnement de développement moderne pour OS/2 et Windows intégrant le compilateur PL/I dans la gamme IBM VisualAge. |
| Enterprise PL/I V3 | 2001 | Nouvelle génération de compilateurs pour z/OS apportant de nombreuses optimisations, le support des architectures IBM Z modernes et une meilleure compatibilité avec les applications existantes. |
| Enterprise PL/I V4 | 2010 | Amélioration importante des performances, du débogage, de l'optimisation et de l'interopérabilité avec les applications C et C++. |
| Enterprise PL/I V5.1 | 2016 | Ajout de nombreuses fonctionnalités modernes, amélioration des performances et meilleure prise en charge des architectures IBM z récentes. |
| Enterprise PL/I V5.2 | 2017 | Support des processeurs IBM z14, nouvelles optimisations du compilateur et début du modèle de livraison continue («Continuous Delivery»). |
| Enterprise PL/I V5.3 | 2019 | Modernisation du compilateur avec de nouvelles optimisations, amélioration des performances CPU et prise en charge de nouvelles fonctionnalités du langage. |
| Enterprise PL/I V6.1 | 2022 | Optimisations pour IBM z16, amélioration de l'interopérabilité 31/64 bits, support étendu de JSON, XML et Java. |
| Enterprise PL/I V6.2 | 2025 | Version actuelle majeure, optimisée pour les processeurs IBM z17, avec de nouvelles optimisations du compilateur, une meilleure intégration avec les technologies modernes et des améliorations de performance. |
Code source
Voici des exemples de code source d'utilitaires pour manipuler le PL/1 :
| Lien | Langage de programmation | Description | Projet | Syntaxe |
|---|---|---|---|---|
| PLI86.PAS | Free Pascal, Turbo Pascal | Cette commande permet de lancer le compilateur PL/I pour l'assembleur du microprocesseur 8086 ou 8088. | DEV-COOLS | PLI86 |