Historique des langages de programmation Introduction • La communication entre l’homme et la machine deffectue ? l’aide de plusieurs moyens physiques externes. • Les ordres que l’on donne à l’ordinateur pour agir sont fondés sur la notion d’instruction. – Ces instructions constituent un langage de programmation. La clef de la compréhension de l’évolution et de la diversification ctL— actuelle et future des langage L’investissement inte nouveauté. 010/2011 ISETK 2 or28 p omine sur la • Certains langages ont été conçus pour: – Le calcul scientifique La gestion des entreprises La formalisation du raisonnement ou le calcul algébrique une finalité technique précise • Tout programme est écrit dans un langage qui pourra ensuite être exécuté automatiquement par Pordinateur. – L’ordinateur ne » comprenant » que le langage binaire, il lui faut (cinquième génération, pourrait être celle des langages Internet, donc fonctionnant sur toute machine et compilés en code intermédiaire (dit virtuel). Les langages « Markup » inspirés de XML sont la dernière tendance, ils intègrent le code et les données sous une forme extensible, et qu fonctionnent sur le web. 4 Catégories de langages de programmation Les langages procéduraux ou impératifs • Dans un langage procédural, l’affectation (transfert d’une valeur dans une mémoire) est la base des actions sur les données. Les langages fonctionnels • Les actions reposent sur des fonctions mathématiques ou non qui renvoient des résultats. ?? un langage fonctionnel est essentiellement composé d’un dictionnaire de fonctions prédéfinies et d’un mécanisme de construction de nouvelles PAGF OF procédurale. Le Groupe d’Intelligence Artificielle de Marseille-Luminy fournit des prologs micro-ordinateurs. 7 Les langages orientés objets (LO. O) • Fonder sur une seule catégorie d’éléments : » les objets » qui communiquent entre eux grâce à l’envoi de messages (grâce ? des opérateurs appelés méthodes). ?? Par rapport à un langage impératif typé, un objet est l’équivalent d’une variable (simple ou structurée) et la classe dont il est l’instance correspond au type de la variable. • Exemples: – SIMULA-67 (1967) est le premier langage objet. – SMALL TALK-80(1980) est un environnement de développement purement objet. Eiffel(1990) est un langage objet tourné vers le génie logiciel et réutilisabilité. 8 Les langages de spécifica OF objet, comme C++ qui est une extension orientée objet du langage C conçu à l’origine pour écrire le système d’exploitation Unix.
IO Les grandes dates • Années 50: Création des langages de haut niveau. • Années 60: Foisonnement de langages spécialisés. Forth. Simula l. Lisp, Cobol. • Années 70: Duel entre programmation structurée avec Pascal et l’efficacité du langage C (cela dure encore en 2000). Généralisation du Basic interprété sur les micro-ordinateurs apparus en 1977, jusqu’à la fin des années 80. • Années 80: Expérimentation d’autres voies et notamment des bjets. ML Smalltalk. • Années 90: Généralisation de la programmation objet grâce aux performances des micro-ordinateurs.
Java, Perl, Python s’ajoutent aux langages micros. • Années 2000: Programmation Internet. Boole publie un ouvrage dans lequel il démontre que tout processus logique peut être décomposé en une suite d’opérations logiques NON) appliquées sur deux états (ZERO-UN, OUI-NON, VRAI-FAIJK OUVERT-FERME). • Ce langage est constitué de nombres binaires qui représentent les adresses des mémoires et les codes des opérations. Mais ce langage est très pénible pour le programmeur. 13 Historique Assembleur • Après le langage binaire, c’est le second langage de bas niveau existant : conçu en 1950. ?? Permet de coder les opérations en utilisant des caractères alphabétiques et il traduit ces codes en langage machine. Exemples: ADD pour l’addition, SUB pour la soustraction etc… – Néanmoins il était nécessaire de définir des langages encore plus commodes pour le programmeur, des langages dits « de haut niveau 14 PAGF s OF de l’intelligence artificielle. • L’A-O et ses dérivés, notamment FLOW-MATIC, a inspiré le langage COBOL (Common Business Oriented Language, 1960), destlné ogiciels de gestion, encore très utilisé de nos jours, notamment au sein d’institutions financières. ?? Le Cobol emploie des mots et une syntaxe proches de l’anglais courant • Locomotive Software développa le BASIC intégré aux ordinateurs Amstrad cpc en 1983 et 1984 16 • Les annees 1970 ont marqués principalement l’apparition du: – Pascal en 1971, langage « structuré » conçu de façon à éviter les erreurs de programmation notamment en encourageant la modularité, sera largement utilisé par les pédagogues qui veulent donner aux étudiants une première formation à la programmation.
C de Dennis Ritchie en 1972, qui devint l’un des langages les utilisés, et constitua la base de très nombreux langages modernes. – Prolog, apparu en 1972, est encore un langage très utilisé en intelligence artificielle. • Les années suivantes et jusqu’en 1980, on retrouvera essentiellement des langages basés sur Pascal, n, Cobol, Lisp ou C. 18 • 1980 marque également l’apparition de Smalltalk. Bien que développé en 1972, ce n’est qu’à cette année que ce langage a été formalisé et qu’il a été largement adopté.
Il repose en partie sur Lisp et Simula, et, étant l’un des remiers langages objet, a été à l’origine de Objective C, Java et Ruby. Il a également été un précurseur au niveau de l’environnement de développement intégré graphique : ce fut là encore l’un des premiers à en proposer un. • L’Eiffel, de Bertrand Meyer, s’inspirant une fois encore de Simula, naquit en 1986. Son nom vient bien de Gustave Eiffel. Il introduit l’héritage de type et la programmation par contrat, qui lui est encore spécifique aujourd’hui. 9 • PostScript, mis au point PAGF 7 OF ra le jour en 1985. ce c’est-àdire lorsque Tim Berners Lee travailla sur le World Wide Web, le langage HTML destiné aux pages Web, a été conçu sur les bases du SGML Mais ce n’est qu’en 1993 que l’on commence à parler de HTML 1. 0. • Toujours en 1 993 apparaissent Ruby, s’inspirant de perl et Smalltalk, ua, basé sur le C++, et WLangage, utilisable uniquement avec les outils de développement de l’entreprise PC Soft qui l’édite. 1 • 1995 sera une – très – grande année : PHP (de Rasmus Lerdorf ci-contre), Delphi (de Borland), Java (de Sun), Limbo (de Rob Pike, aidé par Dennis Ritchie), HTML 2. 0, javascript. Les langages utilisés pour la gestion et l’interrogation des bases de données, eront encore plus proches du langage humain . Focus, SQL (« Structured Query Language et dBASE… 22 8 OF En 2004, Rodrigo de Oliveira développe Boo qui ajoute une syntaxe inspirée de Python à la compatibilité avec C#. ?? La première version de Mono, implémentation libre du Framework . Net de Microsoft, apparaîtra la même année, conçu par Miguel de Icaza, apportant par là même le C#, devant initialement être multiplateforme, au monde du libre, notamment Linux. 24 • Microsoft, décidément très productif, dévoilera en 2005. Lui aussl inspiré du C#, mais également de OCaml et Haskell, il ne sera ropose au grand public qu’avec la prochaine génération de l’environnement de développement Microsoft Visual Studio 2010. ?? En 2006, Microsoft – encore – dévoile Windows PowerShell, qui n’est pas qu’un Shell mais aussi un langage de script destiné ? l’administration de machines Windows. Les moins tolérants diront que c’est une pâle copie des Shell Linux, les autres V ve _ lution de la console DOS l’ordinateur quantique. 26 27 Le langage Orienté objet Mansouri Essia Historique de la POO • Les années 60 : le langage Simula-67, langage de simulation informatique Les premiers pas de la programmation orientée objet • Les annees 70 : SmallTalk , apparition des concepts de base – Objet, encapsulation, polymorphisme, héritage , etc. ?? Les années 80 : La Montée en puissance de l’orienté objet – Apparition de nouveaux langages : Objective C ,C++, Eiffel, Common Lisp ObjectSystem • Les années go : Pâge d’or de l’extension de la POO : – Standardisation de C++ – Apparition du langage de programmation Java • Evolution de l’orientée objet’ – Analyse par objet (AOO). La conception orientée objet COO – Les bases de données orientées objets (SGBDOO) 2010/201 1