Notes de Cours 3: Histoire

publicité
Aperçu historique
• Voir le chapitre 2 du livre pour plus de détails.
CSI 3525, Histoire, page 1
Les pionniers de la programmation
• Charles Babbage (1791-1871):
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 2
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 3
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 4
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 5
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 6
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 7
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 8
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 9
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 10
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 11
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 12
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 13
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 14
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 15
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 16
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 17
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 18
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 19
Langages Script
• Traitement de Text
– Perl
– Python
• Programmation du Web
– JavaScript
– PHP
CSI 3525, Histoire, page 20
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.
CSI 3525, Histoire, page 21
Téléchargement