Fiche technique | |
---|---|
Type de produit : | Langage de programmation |
Auteur : | UCSD |
Date de publication : | 1977 à 1984 |
Introduction
Le langage de programmation UCSD Pascal est considéré comme une des références les plus importantes en terme de langage de programmation Pascal. Il a été développé de 1977 à 1984 par l'université de Californie à San Diego d'où il tire son nom de l'abréviation de l'anglicisme UCSD (University of California, San Diego). Il peut fonctionner sous les plateformes Apple II, DEC PDP-11, Zilog Z80, MOS 6502, Motorola MC68000 et les 80x86. Il utilise un pseudo-code appelé «UCSD p-System», lequel est similaire au p-code, ceci le rendant indépendant de la machine et du système d'exploitation.
Une histoire miniature de Pascal
Ce que l'on appelle aujourd'hui la «programmation structurée» est une philosophie de travail assez vague, ou un ensemble de principes, concernant l'art d'écrire des programmes informatiques, en particulier des programmes informatiques volumineux. Elle est née de discussions universitaires ayant eu lieu pour la plupart en Europe à la fin des années 1960, et est devenue de plus en plus populaire au fil des ans, d'abord dans les universités, puis maintenant dans le monde des affaires également.
L'un des fruits tangibles de ce débat est le livre Structured Programming de Ole-Johan Dahl, Edsger W. Dijkstra et C.A.R. Hoare. Il s'agit de l'énoncé original de cette philosophie. Un autre résultat tangible est le langage de programmation Pascal.
Pascal a été conçu par le professeur Niklaus Wirth à la fin des années soixante, finalement mis en oeuvre en 1970 et décrit pour la première fois dans sa monographie, Le langage de programmation PASCAL, parue en 1971.
La programmation structurée repose sur deux principes majeurs. Le premier est qu'un programme informatique est conceptualisé comme un ensemble d'actions sur un ensemble de données; la structure des données détermine la structure du programme. Le deuxième est que le programmeur ne doit utiliser que des constructions algorithmiques faciles à comprendre et à analyser.
Un autre principe a été introduit par Wirth dans son article de 1971, «Program Development by Stepwise Refinement». Le raffinement par étapes est un schéma permettant d'écrire un algorithme en esquissant largement ses grandes lignes, puis en complétant les niveaux de détails successifs par étapes indépendantes. Dans le jargon informatique actuel, le raffinement par étapes est une approche descendante.
Du point de vue de la programmation structurée, plus le programme est volumineux, plus il est important de suivre ces principes.
Le langage Pascal était destiné à incarner ces principes. Un programmeur Pascal peut écrire du code structuré facilement : bien plus facilement qu'en utilisant les autres langages étant en vigueur lorsque Pascal a été introduit pour la première fois.
La partie algorithmique de Pascal est essentiellement un dialecte propre d'ALGOL 60. La partie description des données du langage est particulièrement riche et met en oeuvre les idées sur la structuration des données exposées par C.A.R. Hoare.
Le Pascal était également destiné à être un outil pédagogique. Dans sa clarté, il était destiné à faciliter la vie des enseignants et des étudiants. Il était également destiné à cultiver les habitudes de programmation structurée chez les programmeurs débutants.
Enfin, le Pascal était destiné à être implémenté le plus tôt possible, sur autant de microprocesseurs différents que possible. C'est l'une des raisons pour lesquelles il suit le modèle d'ALGOL.
Avec une perspective de dix ans, il est évident que Pascal est devenu populaire et continue de gagner en popularité jusqu'aux années 1990, car il a réussi à combiner tous ses objectifs, le Pascal a contribué à diffuser la programmation structurée, et vice versa.
L'importance de Pascal pour l'avenir est essentiellement son importance dans le passé : une alternative aux langages de programmation peu pratiques et non systématiques.
Pascal à l'UCSD
En 1973 et 1974, à l'Université de Californie à San Diego (UCSD), un intérêt croissant pour Pascal a donné lieu à des travaux préliminaires d'implémentation. Pascal est apparu comme une étape très naturelle, puisque la programmation structurée était déjà un concept populaire sur le campus (où ALGOL de Burroughs était le langage prédominant pour le travail sur les systèmes), et puisqu'une révision du programme d'informatique était prévue.
En particulier, le cours d'introduction à la programmation devait être modifié. Ce cours était le seul cours d'initiation à la programmation, quelles que soient les intentions à long terme des étudiants. Les étudiants étaient donc un assemblage (par ordre de quantité à peu près décroissant) de divers étudiants en ingénierie, en psychologie, en informatique, en sciences physiques, biologiques et sociales.
Comme enseigné avant l'année scolaire 1975-1976, ce cours suivait le format magistral traditionnel. La programmation structurée était abordée, mais les programmes que les étudiants devaient apprendre et écrire étaient relativement courts et simples. Beaucoup étaient numériques, et beaucoup d'autres étaient relativement courts et simples. Beaucoup n'étaient pas liés à des problèmes importants. En bref, le cours préparait les étudiants à écrire des programmes d'application assez courts pour des problèmes qu'ils connaissaient ou sur lesquels on leur avait spécifiquement enseigné.
Cette approche était jugée indésirable pour deux raisons principales. Les problèmes numériques constituaient un obstacle supplémentaire (et non pertinent) pour les étudiants insuffisamment préparés en mathématiques. Le manque de préparation à la construction de programmes plus importants et plus complexes était une perte pour tous les étudiants, et particulièrement injuste pour les étudiants en informatique.
En raison de ces considérations, le cours a été modifié. Le format magistral a été abandonné au profit d'un format d'auto-apprentissage ("plan Keller") pour s'adapter au nombre croissant d'étudiants. Les exemples et les devoirs d'introduction évitaient complètement les problèmes numériques. Le cours mettait l'accent sur la structure du programme, la hiérarchie du raffinement par étapes et l'approche par blocs de construction pour la construction de grands programmes. Enfin, le langage utilisé était Pascal.
À l'UCSD, Pascal a d'abord été implémenté sur l'ordinateur Burroughs B6700 de l'école. L'environnement de traitement par lots de cette machine était loin d'être idéal, en particulier pour les étudiants n'ayant jamais été exposés auparavant aux ordinateurs, et Pascal a donc été implémenté à nouveau, cette fois sur un PDP-11. Après un trimestre utilisant le Burroughs, le cours d'introduction a commencé à utiliser les PDP-11/10. Ce fut le début d'une succession d'implémentations sur des ordinateurs dédiés, la plupart d'entre eux étant de petits systèmes à microprocesseur.
Le passage à des petits systèmes indépendants a entraîné le développement du «UCSD Pascal System», avec son système d'exploitation, son éditeur d'écran, son gestionnaire de fichiers et d'autres programmes de support.
Le bref historique motive de nombreux aspects du Pascal UCSD différant de la définition originale de Niklaus Wirth. Le type STRING et ses routines intrinsèques associées ont été introduits afin d'éviter d'utiliser des exemples numériques. Certaines des variantes dans la gestion des entrées/sorties ont été introduites pour mieux s'adapter à l'environnement interactif mono-utilisateur. Plus tard, des segments ont été introduits pour s'adapter aux contraintes de mémoire des mini-ordinateurs et des micro-ordinateurs, les unités fournissant un moyen de regrouper le code de manière modulaire, de sorte que des bibliothèques d'applications puissent être construites. Enfin, et peut-être le plus important, l'implémentation de Pascal et de son système était orientée vers la portabilité, de sorte que le même logiciel pouvait fonctionner sur des machines avec des microprocesseurs et des périphériques différents.
Le premier compilateur de l'UCSD a été modelé d'après le compilateur d'Urs Ammann de l'Eidgenossische Technische Hochshule de Zurich. Ce compilateur génère du code pour une machine abstraite. Cette machine peut être soit construite physiquement, soit (plus fréquemment) émulée par un interpréteur exécuté sur un autre microprocesseur hôte. Cette stratégie, couplée à une entrée/sortie standardisée dans le système Pascal, est ce qui a rendu le système si facilement transportable (la portabilité du p-System est décrite dans l'article de Mark Overgaard, "UCSD Pascal: A Portable Software Environment for Small Computers"). Le p-code généré par les compilateurs UCSD était sensiblement différent de l'implémentation originale de Zurich.
Le professeur Kenneth Bowies a parrainé le développement de Pascal à l'UCSD, conçu et enseigné le cours d'introduction à l'informatique et dirigé le projet Pascal pendant toute la durée de son existence à l'université.
Le Pascal de l'UCSD a été longtemps populaire en tant qu'outil pédagogique. Il a été utilisé dans le monde entier, dans diverses versions, et il a été adopté pour de nombreuses applications n'étant même pas envisagées lorsque Pascal a été écrit pour la première fois.