CSI 3525, Histoire, page 1 Aperçu historique Voir le chapitre 2 du livre pour plus de détails.
CSI 3525, Histoire, page 2 Les pionniers de la programmation Charles Babbage ( ): Invente la « machine analytique ». Sa compagne, Ada Augusta Lovelace, est considérée comme la première programmeur. Konrad Zuse (1942): Développe Plankalkül. Cette notation (jamais implémenté) fut un précurseur des langages de programmation.
CSI 3525, Histoire, page 3 Langages de très bas niveau Ces langages machine et assembleurs sont dépendant du hardware. Initialement binaires, puis éventuellement symboliques. Il y a un unique langage machine, et habituellement un seul langage assembleur pour chaque type de processeurs. La compatibilité ascendante est souvent très difficile. Aller des 386 to 486, ou due 486 aux Pentium?
CSI 3525, Histoire, page 4 Fortran Le premier langage de haut niveau a avoir été implémenté. Introduit les variables, tel que nous les connaissons, les boucles, procédures, étiquettes… Développé pour le calcul scientifique. La première version avait plusieurs caractéristiques unique, souvent disgracieuse, mais conserver pour maintenir une compatibilité descendante. Encore beaucoup utilise pour des applications d’ingénierie nécessitent beaucoup de manipulations de tableaux. La dernière version, Fortran 90, converge vers les autre langages de programmation.
CSI 3525, Histoire, page 5 Algol 60 Le premier langage a introduire les blocs et la récursivité, et à être défini formellement. N’est plus utilisé mais est un ancêtre de plusieurs langages contemporains. Peut-être le langage le plus innovateur de l’histoire des langages de programmation.
CSI 3525, Histoire, page 6 Cobol Oriente vers le traitement de données (Business applications) –Organisation très stricte –Structures de contrôle faibles –Structures de données élaborées, les enregistrements (records) sont introduit. Populaire dans le monde des affaires et du gouvernement, moins dans les universités. A vécu un regain d’intérêt lors de la « crise » de bug de l’an 2000.
CSI 3525, Histoire, page 7 PL/I Une combinaison des meilleurs éléments (tel qu’on pensait à l’époque) de Fortran, Algol 60 et Cobol. –Conçu pour être complètement général, pour être utilise pour toute application de l’époque. –Encouragé par IBM –Peu utilisé aujourd’hui. Introduit la manipulation d’ événements (event handling).
CSI 3525, Histoire, page 8 Basic Le premier langage utilisé en informatique personnelle (personal computing). Le premier langage appris par plusieurs programmeurs: Conçu pour être facile a apprendre. Très simple, puissance limitée, mais peut être utilise dans plusieurs domaines d’application Les versions de Basic utilisées aujourd’hui sont plus complexes.
CSI 3525, Histoire, page 9 Simula 67 Une extension d’Algol 60 conçu pour la simulation de processus concurrents. Introduit les concepts de programmation orientée objet: classes et encapsulation. Prédécesseur de Smalltalk et C++. N’est plus utilisé.
CSI 3525, Histoire, page 10 Algol 68 Sa conception est d’une élégance toujours inégalée. Complètement orthogonal. Très difficile a implémenter. Une description formelle habile, mais difficile à comprendre. Jamais vraiment utilisé.
CSI 3525, Histoire, page 11 Pascal Une version simplifié d’Algol 60. Populaire pour l’enseignement de la programmation structurée. Un bon « premier langage » à apprendre, favorise de bonnes habitudes de programmation. Ces extensions (comme Delphi) sont des systèmes de programmation complets, aussi puissant que des environnements Java, par exemple.
CSI 3525, Histoire, page 12 Modula-2 Un successeur de Pascal, plus conceptuellement uniforme. Mécanismes de programmation concurrente (plusieurs processus en parallèle). Peux utilisé, biens que ce soit un bon langage. Ces successeurs, Modula-3 et Oberon,sont encore plus attrayants, pratiques — et peu utilisés. (supplantés par C++.)
CSI 3525, Histoire, page 13 Ada Le résultat d’un processus de conception très élaboré, à plusieurs étapes, et un tentative plus réussie que PL/I d’obtenir un langage générale. Complètement standardisé: ne possède aucun dialectes (Java aussi, quoi que Microsoft est triché). 2 standards: Ada 83 (original), et Ada 95. Permet la concurrence de façon élégante et systématique.
CSI 3525, Histoire, page 14 C Utilisé pour implémenter Unix. Utile pour la programmation système et le développement pour les ordinateurs personnels. Populaire dans le passé, toujours utilisé, mais supplanté par C++. Peu de mécanismes de protection. De bas niveau.
CSI 3525, Histoire, page 15 Lisp Un des premiers langages de programmation. Basé sur l’évaluation de fonctions. Utile pour le calcul symbolique. Initialement l’unique langage de l’intelligence artificielle (Prolog est plus jeune de 12 ans). Plusieurs dialectes, (Scheme, Common Lisp). Des successeurs très élégants (Miranda, ML, Haskell) mais peu utilisés.
CSI 3525, Histoire, page 16 Prolog Un langage de très haut niveau. Déclaratif, basé sur un sous-ensemble de la logique, les preuves sont interprétés comme les calculs. puissant: –Non-déterministique (backtracking intégré). –Appariement flexible et élaboré. –Mémoire Associative. –Invocation de procédures orientes vers les patrons. Un outil puissant, entre des mains habiles.
CSI 3525, Histoire, page 17 Smalltalk Programmation orienté objet très pure (plus que Java, beaucoup plus que C++). Intègré a un environnement de programmation et un interface usagé. Un outil puissant, entre des mains habiles.
CSI 3525, Histoire, page 18 C++ L’extension orienté objet du langage impératif C. De conception hybride, avec les concepts orienté objet ajouté a un langage qui n’ était pas conçu pour cela. Syntaxe compliqué, sémantique difficile. Très en vogue et en demande. –Java ne l’a pas encore supplanté.
CSI 3525, Histoire, page 19 Java Une version modifié de C++ beaucoup plus élégante. Pleinement orienté objet (Quoi que pas aussi consistant que Smalltalk) Conçu pour la programmation pour Internet, mais d’utilisation générale. On dit qu’il est lent (pas nécessairement vrai). En vogue.
CSI 3525, Histoire, page 20 Langages Script Traitement de Text –Perl –Python Programmation du Web –JavaScript –PHP
CSI 3525, Histoire, page 21 Langages unifiant les différents paradigmes de programmation. Extensions orienté objet: non seulement C++, mais les dialectes of Lisp (CLOS) et Prolog (XPCE/Prolog, Prolog++). Programmation logique combinée à la programmation fonctionnelle (encore expérimental). Langages concurrents (comme Ada): au lieux d’avoir un processus sur un processeur, permet plusieurs processus en parallèle.