Paradigmes des Langages de Programmation

Slides:



Advertisements
Présentations similaires
Un environnement de développement éducatif
Advertisements

Cours n° 1 Introduction à la programmation
GEF 243B Programmation informatique appliquée Listes chaînées I – Tableaux de structures §15.1 – 15.2.
Chap. 4 Recherche en Table
Introduction à l’Algorithmique
GEF 243B Programmation informatique appliquée
Cours MIAGE M1 « Urbanisation des Systèmes dInformation » Henry Boccon-Gibod Urbanisation des Systèmes dInformation L'informatisation des métiers.
Joscelin OUDRY IR2000 année
Cours n°2M2. IST-IE (S. Sidhom) UE 303 Promo. M2 IST-IE 2005/06 Conception dun système d'information multimédia Architecture trois-tiers : PHP/MySQL &
1 Les technologies XML Cours 1 : Les Web Services et Architectures Orientées Services Fé vrier Version 1.0 -
la programmation en langage C
C.
TD 1 IJA Introduction Objet, méthode, attribut Classe, instance
TP 3-4 BD21.
INTRODUCTION.
ESIEE Paris © Denis BUREAU I N Initiation à la programmation avec le langage Java.
Cours Visual Basic pour Application
CSI3525: Concepts des Langages de Programmation Notes # 11: Sous-Programmes ( Lire Chapitre 8 )
Récursivité.
Démarche de résolution de problèmes
Paradigmes de Programmation
Expressions et assignations
Algorithmes Branch & Bound
Initiation à la conception de systèmes d'information
CSI3525: Concepts des Langages de Programmation Notes # 12: Implementation des Sous-Programmes ( Lire Chapitre 9 )
Évaluation et implémentation des langages
Introduction à la programmation (Java)
Programmation concurrente
Gestion de Fichiers Tri Interne Efficace et Tri Externe.
CSI3525: Concepts des Languages de Programmation
1 CSI3525: Concepts des Languages de Programmation Notes # 3: Description Syntaxique des Languages.
CSI3525: Concepts des Languages de Programmation
LIFI-Java 2004 Séance du Jeudi 9 sept. Cours 1. La notion de langage Décrire une tâche à effectuer –programme Écrire à un haut niveau –facile pour lutilisateur.
Chapitre 9 Les sous-programmes.
Chapitre 3 Syntaxe et sémantique.
Chapitre 1 Préliminaires.
1-1 Chapitre 5: Les variables Introduction Les noms Les variables Les attributions (bindings) Portée et durée de vie L'environnement de référence Les noms.
COURS DE PROGRAMMATION ORIENTEE OBJET :
CSI 3525, Évaluation et Implémentation, page 1 Évaluation et implémentation des langages Les langages de programmation et le processus de programmation.
Programmation non procédurale Le projet ECOLE 2000
Christine Bonnet SOURCES : « Samples » dOracle, « Oracle 8 » R. Chapuis PRO*C – C ++
PHP 2° PARTIE : FONCTIONS ET FORMULAIRE
NORMALISATION DES LANGAGES DE PROGRAMMATION des Automates Programmables Industriels CEI
Les différents langages de programmation
Logique programmée & Microprocesseurs
Paradigmes des Langages de Programmation
Paradigmes des Langages de Programmation
1 Architecture orientée service SOA Architecture orientée service SOA (Service Oriented Architecture)
Outil de gestion des cartes grises
Gérer la sécurité des mots de passe et les ressources
EXIGE Un avenir dans le web....
Paradigmes des Langages de Programmation
INTRODUCTION.
Conception Objet A. LOTFI.
JavaScript.
Approches Formelles en Systèmes d'information
Algorithmique et programmation (1)‏
Programmation en C++ Autres langages
Créer des packages.
CSI3525: Concepts des Langages de Programmation Notes # 13: Introduction au SmallTalk.
CSI 3525, Histoire, page 1 Aperçu historique Voir le chapitre 2 du livre pour plus de détails.
Le langage Racket (Lisp)
Histoire de la programmation
1 École des Mines de Saint-Etienne. 158, cours Fauriel Saint-Etienne Cedex 2. Tél Fax Jean-Jacques Girardot
ISBN Chapitre 10 L'implémentation des sous- programmes.
Introduction et Généralités sur l’Algorithmique
1 Le système GNAT / Ada95 La perspective du projet depuis New York University Edmond Schonberg New York University et Ada Core Technologies Mars 2003.
Initiation au JavaScript
Chapitre 4 La représentation des nombres.
Raison d'être de la structure de fichiers : Les premiers travaux : Début des années 1960 : En 1963 : Près de 10 ans plus tard... (à peu près 1973) : Durant.
Transcription de la présentation:

Paradigmes des Langages de Programmation Dr Allaoua Chaoui Master 2 Acad: Paradigmes des langages de programmation

Master 2 Acad: Paradigmes des langages de programmation Objectifs du Cours L’étude des concepts de base communs à tous les langages de programmation: Critères d ’évaluation de ces langages. Méthodes d ’implémentation. Méthodes de description syntaxique et sémantique. L’étude des différents paradigmes: Programmation Impérative Programmation Orientée Objets Programmation Logique Programmation Fonctionnelle L’étude des paradigmes à travers des exemples Master 2 Acad: Paradigmes des langages de programmation

Master 2 Acad: Paradigmes des langages de programmation Bibliographie Robert Sebesta, Concepts of programming languages. David A. Watt, Elis Horrowitz, Fundamentals of Programming Languages Master 2 Acad: Paradigmes des langages de programmation

Pourquoi l’Étude des paradigmes des Langages de Programmation ? La capacité d’exprimer des idées d’informatiques complexes est liée a une bonne connaissance des caractéristiques linguistiques de programmation. Différentes tâches informatiques demandent des caractéristiques linguistiques de programmation différentes. La connaissance des paradigmes de langages de programmation permet une acquisition plus aisée de nouveaux langages. Master 2 Acad: Paradigmes des langages de programmation

Master 2 Acad: Paradigmes des langages de programmation Pourquoi l’Étude des paradigmes des Langages de Programmation ? (suite) Une compréhension de la façon dont les langages sont implémentes permet un meilleur usage de ces langages. La connaissance de différents paradigmes de langages de programmation permet une création plus aisée de nouveaux langages. Avec une meilleure connaissance des langages de programmation, de meilleurs choix peuvent être fait, ce qui peut éventuellement bénéficier l ’ensemble du champ d’informatique. Master 2 Acad: Paradigmes des langages de programmation

Master 2 Acad: Paradigmes des langages de programmation Exemples de Différents Domaines de Programmation et de leurs Langages Associés Applications Scientifiques --> Pas besoin de structures des données ni d ’opérations compliquées mais besoin de grande Efficacité --> FORTRAN, ALGOL60. Applications pour Affaires --> Besoin de produire des rapport élaborés et de traiter les nombres décimaux et les caractères --> COBOL. Intelligence Artificielle --> Besoin de manipuler les données symboliques plutôt que numériques et besoin d ’opérations logiques --> LISP, PROLOG Master 2 Acad: Paradigmes des langages de programmation

Master 2 Acad: Paradigmes des langages de programmation Exemples de Différents Domaines de Programmation et de leurs Langages Associés (suite) Programmation des Systèmes --> Besoin d ’une exécution rapide et de facilités de bas niveau pour pouvoir programmer les engins externes --> PL/1, Extended ALGOL, C. Langages pour Scriptes --> Besoin de mettre des commandes dans un fichier pour exécution --> ksh, awk, tcl, Perl. Langages Spéciaux --> Langages pour besoins particuliers --> RPG, APT, GPSS. Master 2 Acad: Paradigmes des langages de programmation

Classification des Langages de Programmation Master 2 Acad: Paradigmes des langages de programmation

Classification des Langages de Programmation (suite) Langages Impératifs: Langages incluant des moyens pour le programmeur d ’attribuer des valeurs à des locations (Variables) en mémoire. Langages Déclaratifs: Langages pour lesquels le programmeur réfléchit en terme de valeurs des fonctions et de relations entre entités diverses. Il n ’y a pas d ’attribution de valeurs aux variables. Master 2 Acad: Paradigmes des langages de programmation

Classification des Langages de Programmation (suite) Programmation Procédurale: Le programme est divisé en blocs qui peuvent contenir leurs propres variables ainsi que d ’autres blocs. Programmation Orientée Objet: Programmation qui supporte l ’interaction d ’objets. Un objet contient des données ainsi que des fonctions qui peuvent s ’appliquer a ces données. Master 2 Acad: Paradigmes des langages de programmation

Classification des Langages de Programmation (suite) Programmation Concurrente: Langages de programmation qui s ’appliquent à plusieurs CPU ’s qui opèrent en parallèle. Les données peuvent être partagées ou non. Master 2 Acad: Paradigmes des langages de programmation

Classification des Langages de Programmation (suite) Programmation Fonctionnelle: Un programme est un appel de fonction avec un certain nombre de paramètres, qui eux-mêmes peuvent être des appels à d ’autres fonctions. Le programme renvoie donc un seul résultat, qui peut-être assez complexe (exemple: une nouvelle fonction). Master 2 Acad: Paradigmes des langages de programmation

Classification des Langages de Programmation (suite) Programmation Logique: Un programme consiste en une série d ’axiomes, de règles de déduction et en un théorème à prouver. Le programme renvoie la valeur « vrai » si les axiomes supportent le théorème. Il renvoie la valeur « fause » autrement. Master 2 Acad: Paradigmes des langages de programmation

Historique : Un Premier Language: Plankalkül Développé en 1945 par Konrad Zuse en Allemagne mais jamais implémenté. Description publiée en 1972. Langage assez complet avec des structures de données bien avancées contenant des tableaux et des articles (records). Les articles peuvent utiliser la récursivité pour inclure d ’autres articles. Il n ’y a pas de spécification « Goto », mais il y a une spécification itérative telle que la boucle « For » en Pascal. Master 2 Acad: Paradigmes des langages de programmation

Historique : Pseudo Codes (Suite) Vers la fin des années 1940 et le début des années 1950, il n ’y avait pas de langages de programmation de haut niveau ni même de code assembleur. Des langages de haut niveau ont donc été inventés pour rendre le code plus lisible. Short Code et Speedcoding, par exemple, étaient des langages interprétés et bien qu ’ils facilitaient le processus de programmation, ils étaient beaucoup plus lent que le code machine. Master 2 Acad: Paradigmes des langages de programmation

Historique : Pseudo Codes (Suite) Les compilateurs pour UNIVAC, A-0, A-1 et A-2 sont les premiers compilateurs qui étendaient le pseudo-code en code machine de la même façon que des macros sont étendus en code assembleur. Master 2 Acad: Paradigmes des langages de programmation

Historique : FORTRAN (Suite) FORTRAN 0 a été crée en 1954 par l ’équipe de John Backus à IBM. Il a été suivi par FORTRAN I en 1956, FORTRAN II en 1958, FORTRAN IV entre 1960 et 1962, FORTRAN 77 en 1978 et FORTRANT 90 en 1992. Au tout début, FORTRAN a été conçu comme un prélude nécessaire à la conception et traducteur pour l ’IBM 704. Néanmoins il a connu un grand succès. Master 2 Acad: Paradigmes des langages de programmation

Historique : FORTRAN (Suite) L ’efficacité du FORTRAN est dû au fait que les types et la location de chaque variable en mémoire est fixée avant l ’exécution. FORTRAN a changé à jamais la façon dont les ordinateurs sont utilisés. Master 2 Acad: Paradigmes des langages de programmation

Historique : LISP (Suite) Vers le milieu des années 1950, il y a eu beaucoup d ’intérêt pour la discipline nouvelle d ’Intelligence Artificielle (IA). Avec cet intérêt, s ’est développée l ’idée que certaines méthodes devaient être inventées afin de permettre aux ordinateurs de traiter les données symboliques dans des listes chaînées. Jusque là, l ’usage des ordinateurs était réservé aux calculs sur données numériques dans des tableaux. LISP, développé par l ’équipe de McCarthy et Minsky au MIT à partir de 1958, a dominé l ’IA pendant longtemps mais il est assez inefficace. De nos jours des versions de LISP sont compilées, ce qui permet une plus grande efficacité. Master 2 Acad: Paradigmes des langages de programmation

Historique : ALGOL 60 (Suite) L’ALGOL 60 a été créé vers la fin des années 1950 dans un but de créer un langage universel et indépendant de la machine. L ’ALGOL 60 inclut un certain nombre de nouvelles caractéristiques importantes: Le concept de structures en bloc, La possibilité de passer les paramètres à un sous-programme par valeur ou par nom, La possibilité pour les sous-programmes d ’être récursifs, La possibilité de déclarer les limites d ’un tableau pendant l ’exécution. Bien que l ’ALGOL 60 n ’ait pas réalisé le succès espéré, il est le père de tous les langages impératifs. Master 2 Acad: Paradigmes des langages de programmation

Historique : COBOL (Suite) Bien que le COBOL ait été utilisé plus que tous les autres langages, il a eu peu d ’effet sur la plupart de ces langages. L ’idée du COBOL était de créer un langage commun pour les applications d ’affaires. Ces caractéristiques sont l ’usage d ’autant d ’anglais que possible et l ’aise d ’usage même au dépend de son effectivité et puissance. COBOL est puissant au niveau des données, mais ses procédures sont assez faibles. En particulier, COBOL ne permet pas les fonctions. Par contre il a été le premier langage à inclure les structures de données hiérarchiques et de permettre les noms de variables assez long pour être significatif. Master 2 Acad: Paradigmes des langages de programmation

Historique : BASIC (Suite) BASIC a aussi connu un très grand usage mais n ’a pas connu beaucoup de respect de la part de la communauté informatique. Il a été créé au début des années 1970 pour étudiants. C ’est le premier langage qui a utilisé l ’accès d ’un terminal à distance plutôt que des cartes perforées. Au départ, le BASIC était très proche du FORTRAN, avec quelque influence mineure de l ’ALGOL 60. Plus tard, il a évolue dans des directions diverses avec peu de standardisation. La plus grande critique du BASIC est que ses programmes sont écrits avec peu de structure interne et sont donc difficile à lire et modifier. Master 2 Acad: Paradigmes des langages de programmation

Historique : PL/1 (Suite) Le PL/1 représente le premier essai à créer un langage qui pourrait être utilisé dans un grand nombre de domaines. Néanmoins, la plupart des langages qui ont suivi se sont concentrés sur un domaine particulier. Le PL/1 a inclut ce qui était considéré comme les meilleures caractéristiques de l ’ALGOL 60 (récursivité et structure en bloc), du FORTRAN IV (compilation séparée avec communication à travers des données globales) du COBOL 60 (structure des données, input/output, et possibilité de génération de rapports) ainsi que d ’autres caractéristiques nouvelles (e.g., les pointeurs). Néanmoins, le langage est trop complexe et ses nouvelles caractéristiques, mal conçues. Master 2 Acad: Paradigmes des langages de programmation

Historique IX: Autres langages APL et SNOBOL: Langages Dynamiques SIMULA 67: l ’Abstraction des Données ALGOL 68: La Conception Orthogonale Pascal, C: les Descendants des ALGOLs Prolog: Programmation Basée sur la Logique Ada: Langage du Département de la défense. Smalltalk: Programmation Orientée Objet C++: Combinaison de Langage Impératif et Langage Orienté Objet Java: Simplification du C++ et Programmation du World-Wide Web Master 2 Acad: Paradigmes des langages de programmation