La présentation est en train de télécharger. S'il vous plaît, attendez

La présentation est en train de télécharger. S'il vous plaît, attendez

1 CSI3525: Concepts des Languages de Programmation Notes # 1: Preliminaires, Motivation et Historique.

Présentations similaires


Présentation au sujet: "1 CSI3525: Concepts des Languages de Programmation Notes # 1: Preliminaires, Motivation et Historique."— Transcription de la présentation:

1 1 CSI3525: Concepts des Languages de Programmation Notes # 1: Preliminaires, Motivation et Historique

2 2 Preliminaires I: Cours et Laboratoires n Cours: – Lundi, 14h30-15h50, Colonel By Hall, B202 – Jeudi, 16h00-17h20, Colonel By Hall, B202 n Groupes de Discussion: – Lundi, 16h00-18h00, Vanier Hall, 469 (ou Cube 103 lorsquannonce) n Prealables: – CSI 2514 – Deux Laboratoires de Language de programmation choisis parmi CSI 2565 et (CSI 2571 ou CSI 2572 ou CSI 2573) et CSI 2574 – Ne peut etre combine avec CSI 2515 pour l obtention de credits.

3 3 Preliminaires II: Professeur n Professeur: – Nathalie Japkowicz, n Office: MCD 325-C n Phone: ext n – Heures de Consultation: Lundi 13h15-14h15 et 16h15-17h15 n Assistant pour ce cours: Lois Rigouste

4 4 Preliminaires III: Evaluation I n Projets ………………………………. 35% – 2 devoir ecrit – 3 devoirs de programmation (+ de lecrit, peut-etre) – Retard ==> -.5% par jour ouvrable -.25% par jour de fin de semaine. ou jour ferie(ces points sont retires directement de la note finale) n Examen Intra-Session ……………… 20% n Examen Final ……………………….. 45% n l EITI exige une note d un minimum de 50% aux examens.

5 5 Preliminaires IV: Evaluation II n Calcul de la Note Finale Numerique: – Si (Intra-Session + Final) < 32.5 – Alors Note_Numerique = (Intra-Session + Final) *1.5 – Sinon Note_Numerique = Intra-Session + Final + Projets n Calcul de la Note Finale Alphabetique: – En fonction de l echelle en vigueur a l Universite – NN 90 ==> A+ – NN Echec n Calcul des notes dExamens: – Facteur de correction des devinettes chanceuses

6 6 Objectif du Cours n Letude de concepts de base communs a tous les languages de programation: – Criteres d evaluation de ces languages. – Methodes d implementation. – Methodes de description syntaxique et semantique. n Letude des differents paradigmes: – Programmation Imperative – Programmation Orientee Objets – Programmation Logique – Programmation Fonctionelle n Letude de languages examplifiant ces paradigmes.

7 7 Pourquoi lEtude des Languages de Programmation I? n La capacite dexprimer des idees dinformatiques complexes est liee a une bonne connaissance des caracteristiques linguistiques de programmation. n Differentes taches informatiques demandent des caracteristiques linguistiques de programmation differentes (voir diapos # 9 & 10). n La connaissance des paradigmes de languages de programmation permet une acquisition plus aisee de nouveaux languages.

8 8 Pourquoi lEtude des Languages de Programmation II? n Une comprehension de la facon dont les languages sont implementes permet un meilleur usage de ces languages. n La connaissance de differents paradigmes de languages de programmation permet une creation plus aisee de nouveaux languages. n Avec une meilleure connaissance des languages de programmations, de meilleurs choix peuvent etre fait, ce qui peut eventuellement beneficier l ensemble du champ dinformatique.

9 9 Examples de Different Domaines de Programmation et de leurs Languages Associes I n Applications Scientifiques --> Pas besoin de structures des donnees ni d operations compliquees mais besoin de grande Efficacite --> FORTRAN, ALGOL60. n Applications pour Affaires --> Besoin de produire des rapport elabores et de traiter les nombres decimaux et les caracteres --> COBOL. n Intelligence Artificielle --> Besoin de manipuler les donnees symboliques plutot que numeriques et besoin d operations logiques --> LISP, PROLOG

10 10 Examples de Different Domaines de Programmation et de leurs Languages Associes II n Programmation des Systemes --> Besoin d une execution rapide et de facilites de bas niveau pour pouvoir programmer les engins externes --> PL/1, Extended ALGOL, C. n Languages pour Scriptes --> Besoin de mettres des commandes dans un fichier pour execution --> ksh, awk, tcl, Perl. n Languages Speciaux --> Languages pour besoins particuliers --> RPG, APT, GPSS.

11 11 Classification des Languages de Programmation I Languages Imperatifs: Languages incluant des moyens pour le programmeur d attribuer des valeurs a des locations en memoire. Languages Declaratifs: Languages pour lesquels le programmeur reflechit en terme de valeurs des fonctions et de relations entre entites diverses. Il n y a pas d attribution de valeurs aux variables.

12 12 Classification des Languages de Programmation II n Programmation Procedurale: Le programme est divises en blocs qui peuvent contenir leurs propres variables ainsi que d autres blocs. n Programmation Orientee Objet: Programmation qui supporte l interaction d objets. Un objet contient des donnees ainsi que des fonctions qui peuvent s appliquer a ces donnees. n Programmation Concurrente: Languages de programmation qui s appliquent a plusieurs CPU s qui operent en parallele. Les donnees peuvent etre partagees ou non.

13 13 Classification des Languages de Programmation III n Programmation Fonctionnelle: Un programme est un appel de fonction avec un certain nombre de parametres, qui eux-meme peuvent etre des appels d autres fonctions. Le programme renvoie donc un seul resultat, qui peut-etre assez complexe (example: une nouvelle fonction). n Programmation Logique: Un programme consiste en une serie d axiomes, de regles de deduction et en un theoreme a prouver. Le programme renvoie la valeur « vrai » si les axiomes supporte le theoreme. Il renvoie la valeur « fause » autrement.

14 14 Plan du Cours I n Prealables: Connaissance du Prolog, du Pascal.. ou C et du Java ou C++ n Semaine 1: Preliminaires, Motivation et. Historique. n Semaine 2: Criteres d Evaluation des Langage,. Conception et Evaluation des. Langages. n Semaine 3: Methodes de description syntaxique n Semaine 4: Methodes de description. semantique. n Semaine 5/7: Langages Fonctionnels (Scheme,. ML, SmallTalk); Revisions

15 15 Plan du Cours II n Semaine 8: Examen Intra-Session n Semaine 9: Introduction to Perl n Semaine 10: Introduction to XML n Semaine 11/13: Considerations Generales et.. Languages Imperatifs: - Variables, Attachement. Verification du Type et Etendue - Types de Donnees - Expressions, Allocation - Structures de Controle - Sous-Programme - Implementation des Sous-. Programmes - Types Abstraits de Donnees

16 16 Historique I: Un Premier Language: Plankalkül n Developpe en 1945 par Konrad Zuse en Allemagne mais jamais implemente. Description publiee en n Language assez complet avec des structures de donnees bien avancees contenant des tableaux et des articles (records). Les articles peuvent utiliser la recursivite pour inclure d autres articles. n Il n y a pas de specification « Goto », mais il y a une specification iterative telle que la boucle « For » en Pascal. n Il y a des expressions mathematiques qui indiquent ce qui est vrai aux endroits ou elles apparaissent.

17 17 Historique II: Pseudo Codes n Vers la fin des annees 1940 et le debut des annees 1950, il n y avait pas de languages de programmation de haut niveau ni meme de code assembleur. Des languages de haut niveau ont donc ete inventes pour rendre le code plus lisible. n Short Code et Speedcoding, par example, etaient des languages interpretes et bien qu ils facilitaient le processus de programmation, ils etaient beaucoup plus lent que le code machine. n Les compilateur pour UNIVAC, A-0, A-1 et A-2 sont les premiers compilateurs qui etendaient le pseudo-code en code machine de la meme facon que des macros sont etendus en code assembleur.

18 18 Historique III: FORTRAN n FORTRAN 0 a ete cree en 1954 par l equipe de John Backus a IBM. n Il a ete suivi par FORTRAN I en 1956, FORTRAN II en 1958, FORTRAN IV entre 1960 et 1962, FORTRAN 77 en 1978 et FORTRANT 90 en n Au tout debut, FORTRAN a ete concu comme un prelude necessaire a la conception and traducteur pour l IBM 704. Neanmoins il a connu un grand succes. n L efficacite du FORTRAN est du au fait que les types et la location de chaque variable en memoire est fixee avant l execution. n FORTRAN a change a jamais la facon dont les ordinateurs sont utilises.

19 19 Historique IV: LISP n Vers le milieu des annees 1950, il y a eu beaucoup d interet pour la discipline nouvelle d Intelligence Artificielle (IA). n Avec cet interet, s est developpee l idee que certaines methodes devaient etre inventes afin de permettre aux ordinateurs de traiter les donnees symboliques dans des liste chainees. Jusque la, l usage des ordinateurs etait reserve aux calculs sur donnees numeriques dans des tableaux. n LISP, developpe par l equipe de Jphm McCarthy et Marvin Minsky a MIT a partir de 1958, a domine l IA pendant longtemps mais est assez inefficace. De nos jours des versions de LISP sont compilees, ce qui permet une plus grande efficacite.

20 20 Historique V: ALGOL 60 n LALGOL 60 a ete cree vers la fin des annees 1950 dans un effort pour creer un language universel et machine-independent. n L ALGOL 60 inclut un certain nombre de nouvelles caracteristiques importantes: – Le concept de structures en bloc, – La possibilite de passer les parametres a un sous- programme par valeur ou par nom, – La possibilite pour les sous-programmes d etre recursifs, – La possibilite de declarer les limites d un tableau pendant l execution. n Bien que l ALGOL 60 n ait pas realise le succes espere, il est le pere de tous langages imperatifs.

21 21 Historique VI: COBOL n Bien que le COBOL ait ete utilise plus que tous les autres languages, il a eu peu d effet sur la plupart de ces languages. n L idee du COBOL etait de creer un langage commun pour les applications d affaires. n Ces caracteristiques sont l usage d autant d anglais que possible et l aise d usage meme au depend de son effectivite et puissance. n COBOL est puissant au niveau des donnees, mais ses procedures sont assez faibles. En particulier, COBOL ne permet pas les fonctions. Par contre il a ete le premier langage a inclure les structures de donnees hierarchiques et de permettre les noms de variables assez long pour etre significatif.

22 22 Historique VII: BASIC n BASIC a aussi connu un tres grand usage mais n a pas connu beaucoup de respect de la part de la communaute informatique. n Il a ete cree au debut des annees 1970 pour etudiants dans les arts liberaux. n C est le premier language qui a utilise l acces d un terminal a distance plutot que des cartes perforees. n Au depart, le BASIC etait tres proche du FORTRAN, avec quelque influence mineure de l ALGOL 60. Plus tard, il a evolue dans des directions diverses avec peu de standardization. n La plus grande critique du BASIC est que ses programmes sont ecrit avec peu de structure interne et sont donc difficile a lire et modifier.

23 23 Historique VIII: PL/1 n Le PL/1 represente le premier essai a creer un langage qui pourrait etre utilise dans un grand nombre de domaines. Neanmoins, la plupart des langages qui ont suivi se sont concentres sur un domaine particulier. n Le PL/1 a inclut ce qui etait considere comme les meilleures caracteristiques de l ALGOL 60 (recursivite et structure en bloc), du FORTRAN IV (compilation separee avec communication a travers des donnees globales) du COBOL 60 (structure des donnees, input/output, et possibilite de generation de rapports) ainsi que d autres caracteristiques nouvelles (e.g., les pointeurs). n Neanmoins, le langage est trop complexe et ses nouvelles caracteristiques, mal concues.

24 24 Historique IX: Autres langages n APL et SNOBOL: Langages Dynamiques n SIMULA 67: l Abstraction des Donnees n ALGOL 68: La Conception Orthogonale n Pascal, C: les Descendants des ALGOLs n Prolog: Programmation Basee sur la Logique n Ada: Langage du Departement de la defence. n Smalltalk: Programmation Orientee Objet n C++: Combinaison de Langage Imperatif et Langage Oriente Objet n Java: Simplification du C++ et Programmation du World-Wide Web


Télécharger ppt "1 CSI3525: Concepts des Languages de Programmation Notes # 1: Preliminaires, Motivation et Historique."

Présentations similaires


Annonces Google