Article de reference

Langage de programmation système

Le langage de programmation système (SPL) , parfois appelé SPL/3000 , était un langage de programmation procédural développé par Hewlett-Packard pour la gamme de mini-ordinateur...

langage de programmation procédural développé par Hewlett-Packard pour la gamme de mini-ordinateurs HP 3000 et lancé en 1972. SPL servait à écrire le système d'exploitation principal du HP 3000 , le Multi-Programming Executive (MPE). Les langages similaires sur d'autres plateformes étaient désignés de manière générique comme langages de programmation système , ce qui prêtait à confusion.

Initialement connu sous le nom d' Alpha Systems Programming Language , du nom du projet de développement ayant donné naissance à la série 3000, SPL a été conçu pour tirer parti de l' architecture à pile du processeur Alpha . Il s'inspire d' ESPOL , un langage similaire dérivé d' ALGOL , utilisé par les systèmes centraux Burroughs B5000 , et qui a également influencé plusieurs langages des années 1960 tels que PL360 et JOVIAL .

Au milieu des années 1970, le succès des systèmes HP a engendré plusieurs dérivés de SPL. On peut citer ZSPL pour le processeur Zilog Z80 et Micro-SPL pour le Xerox Alto . Ce dernier a inspiré Action! pour les ordinateurs Atari 8 bits , qui a connu un succès honorable. Action! adoptait une syntaxe plus proche de celle de Pascal , abandonnant certaines particularités de SPL.

Le langage SPL était largement utilisé durant la durée de vie de la version 16 bits originale de la plateforme HP 3000. Dans les années 1980, les systèmes HP 3000 et MPE ont été réimplémentés dans un émulateur fonctionnant sur les plateformes HP 9000 basées sur l' architecture PA-RISC . HP promouvait Pascal comme langage système privilégié sur PA-RISC et ne fournissait pas de compilateur SPL. Cette absence a engendré des problèmes de maintenance du code , et des compilateurs SPL tiers ont été introduits pour pallier ce besoin.

Hewlett-Packard a lancé ses premiers mini-ordinateurs , la série HP 2100 , en 1967. Ces machines avaient été initialement conçues par une équipe externe travaillant pour Union Carbide et étaient principalement destinées aux applications de contrôle embarqué industriel, et non au marché plus large du traitement de données. HP y voyait un complément naturel à son activité existante dans le domaine de l'instrumentation et les a d'abord proposées à ces utilisateurs. Malgré cela, HP a constaté que le rapport prix/performances de la machine lui assurait un succès croissant sur le marché professionnel.

Durant cette période, le concept de temps partagé gagnait en popularité, notamment grâce à la baisse du coût de la mémoire à tores et à l'augmentation de la capacité de mémoire embarquée. En 1968, HP lança un système intégré composé de deux machines de la série 2100 exécutant HP Time-Shared BASIC , offrant un système d'exploitation complet ainsi que le langage de programmation BASIC . Ces systèmes à deux machines, connus sous le nom de HP 2000, rencontrèrent un succès immédiat. HP BASIC exerça une influence considérable pendant de nombreuses années, et sa syntaxe se retrouve dans plusieurs langages BASIC pour micro-ordinateurs , tels que Palo Alto TinyBASIC , Integer BASIC , North Star BASIC , Atari BASIC , et d'autres.

Les concepteurs de HP commencèrent à se demander : « Si nous pouvons produire un système à temps partagé aussi performant avec un ordinateur peu puissant comme le 2116, imaginez ce que nous pourrions accomplir en concevant notre propre ordinateur. » C’est dans cette optique qu’en 1968, l’entreprise commença à constituer une équipe plus importante pour concevoir une nouvelle architecture de taille moyenne. Parmi les nouveaux membres de l’équipe figuraient des personnes ayant travaillé sur les systèmes mainframe Burroughs et IBM , et les concepts qui en résultèrent présentaient une forte ressemblance avec le système Burroughs B5000 , qui avait connu un grand succès . Le B5000 utilisait un processeur à pile qui simplifiait la mise en œuvre du multiprogrammage , et HP choisit cette même architecture pour son nouveau concept.

Deux implémentations furent envisagées : une machine 32 bits de type mainframe appelée Omega, et une architecture 16 bits appelée Alpha. Presque tous les efforts furent concentrés sur Omega, mais en juin 1970, son développement fut annulé. Cela entraîna une refonte complète d’Alpha afin de la différencier des systèmes de la série 2100, et elle finit par adopter une conception de système d’exploitation encore plus ambitieuse. Omega était conçue pour fonctionner en mode batch et utiliser un ordinateur plus petit, le « front-end », pour gérer les interactions avec l’utilisateur. Ce concept de fonctionnement était identique à celui de la série 2000. Cependant, un nouveau système d’exploitation de la série 2000 ne suffisait pas pour Alpha, et il fut décidé de développer un système unique pour le traitement par batch, les interactions et même le fonctionnement en temps réel .

Pour ce faire, il fallait une architecture de bus informatique avancée avec un accès direct à la mémoire (DMA) étendu et un système d'exploitation (OS) performant pour garantir une réactivité optimale aux actions de l'utilisateur. Le B5000 était également unique pour son époque, car son système d'exploitation et ses utilitaires principaux étaient entièrement programmés dans un langage de haut niveau : ESPOL . ESPOL était un dérivé du langage ALGOL, adapté aux B5000, un concept très influent dans les années 1960 et qui a donné naissance à de nouveaux langages comme JOVIAL , PL/360 et BCPL . L'équipe HP a décidé d'utiliser également un langage dérivé d'ALGOL pour le développement de son système d'exploitation. Ce langage similaire, développé par HP, était initialement connu sous le nom d'Alpha Systems Programming Language.

Le développement d'Alpha a duré plusieurs années avant sa commercialisation en 1972 sous le nom de HP 3000. La machine n'est restée sur le marché que quelques mois avant qu'il ne soit évident qu'elle ne fonctionnait pas correctement, et HP a été contraint de rappeler tous les exemplaires 3000 déjà vendus. Elle a été relancée fin 1973, la plupart de ses problèmes ayant été résolus. Une importante mise à niveau de l'ensemble du système, la machine CX et le logiciel MPE-C compatible ont redoré son image, et la 3000 a connu un nouveau succès majeur durant la seconde moitié des années 1970.

Ce succès a rendu le SPL presque aussi répandu que le BASIC de la série 2000, et comme ce langage, le SPL a donné lieu à plusieurs versions pour d'autres plateformes. Parmi elles, on peut citer Micro-SPL, une version écrite pour la station de travail Xerox Alto . Cette machine utilisait initialement le BCPL comme langage principal, mais l'insatisfaction quant à ses performances a conduit Henry Baker à concevoir un langage non récursif qu'il a implémenté avec Clinton Parker en 1979. Clinton a ensuite modifié Micro-SPL pour créer Action! pour les ordinateurs Atari 8 bits en 1983.

HP a réimplémenté le système HP 3000 sur le chipset PA-RISC, exécutant une nouvelle version du système d'exploitation appelée MPE/iX. MPE/iX possédait deux modes : le « mode natif », qui exécutait les applications recompilées pour le PA-RISC à l'aide de compilateurs Pascal plus récents, et le « mode compatible », qui permettait d'exécuter tous les logiciels existants par émulation. HP ne fournissant pas de compilateur pour le mode natif de MPE/iX, la migration des logiciels existants vers la nouvelle plateforme s'avérait complexe. Pour pallier ce manque, Allegro Consultants a développé un langage compatible SPL, nommé « SPLash! », capable de compiler en code HP 3000 d'origine pour une exécution dans l'émulateur, ou en mode natif. Ceci offrait une solution de portage pour les logiciels SPL existants.

Langue

Syntaxe de base

SPL suit généralement les conventions syntaxiques d'ALGOL 60 et sera familier à toute personne ayant une expérience d'ALGOL ou de ses dérivés, comme Pascal et Modula-2 . À l'instar de ces langages, les instructions de programme peuvent s'étendre sur plusieurs lignes et se terminer par un point-virgule. Les commentaires sont indiqués par le directive du compilateur placée en en-tête du fichier.

Le langage offrait un proche du C,big-endian 16 bits des années 3000.

Le bit de poids faible comme signe. faiblement typées , les emplacements mémoire et le stockage des variables sont des concepts imbriqués, et l'on peut accéder directement aux valeurs par leur emplacement. Par exemple, le code suivant :

ENTIERS A,B,C LOGIQUE D=A+2

Elle définit trois variables entières de 16 bits, A, B et C, puis un booléen, également de 16 bits. Le symbole `+2` boîte noire , mais elle présente plusieurs applications importantes en programmation système, où des emplacements mémoire spécifiques stockent des valeurs provenant du matériel sous-jacent. Elle permet notamment de définir une variable pointant vers le début d'une table de valeurs, puis de déclarer d'autres variables pointant vers des valeurs individuelles au sein de cette table. Si l'emplacement dans la table change, seule une valeur doit être modifiée, l'adresse initiale, et toutes les variables individuelles suivront automatiquement, avec leurs décalages relatifs respectifs.

Les pointeurs étaient déclarés en ajoutant le pointeur non initialisé , directive du compilateur définissant le segment dans lequel le code suivant devait être placé. La valeur par défaut était `<segment>` la manipulation des bits . Tout bit, ou chaîne de bits, d'un mot était accessible via la

Plus d articles de Worldlex Wiki

Revenez a l index pour explorer davantage de pages sur l histoire, la science, la culture, la geographie et la societe en francais.

Explorer l index