1 CSI3525: Concepts des Languages de Programmation Notes # 2: Criteres d Evaluation des Languages.

Slides:



Advertisements
Présentations similaires
Chapitre annexe. Récursivité
Advertisements

Processus d'expression du besoin
Portée des variables VBA & Excel
Module Systèmes dexploitation Chapitre 6 Communication Interprocessus Partie III École Normale Supérieure Tétouan Département Informatique
GEF 243B Programmation informatique appliquée
GEF 435 Principes des systèmes dexploitation Communication Interprocessus (CIP) III (Tanenbaum 2.3)
Performances 1 Évolution : Performance. Performances 2 Évolution : Mémoire.
Autorisations Utilisation eCATT
INTRODUCTION.
Introduction : Compilation et Traduction
ESIEE Paris © Denis BUREAU I N Initiation à la programmation avec le langage Java.
8. Les tableaux P. Costamagna – ISEN N1.
Les sous-programmes Chapitre n° 5: Objectifs : Activité:
CSI3525: Concepts des Langages de Programmation Notes # 11: Sous-Programmes ( Lire Chapitre 8 )
Les requêtes La Requête est une méthode pour afficher les enregistrements qui répondent à des conditions spécifiques. La requête est donc un filtre.
Alain Villemeur Sector
Chapitre III Héritage (début)
Sous-programmes Concepts généraux Passage de paramètres Fonctions
Aide-mémoire – FORMULAIRE Web DA/DT
Récursivité.
Principes de la technologie orientée objets
Démarche de résolution de problèmes
Algorithmique et Programmation
Les éléments de base de l’algorithmique
Algorithmique et Programmation
1 CLUB DES UTILISATEURS SAS DE QUÉBEC COMMENT TRANSFORMER UN PROGRAMME SAS EN TÂCHE PLANIFIÉE SOUS WINDOWS Présentation de Jacques Pagé STRiCT Technologies.
Programmation multimédia 3
F Copyright © Oracle Corporation, Tous droits réservés. Créer des programmes avec Procedure Builder.
IGL301 - Spécification et vérification des exgiences 1 Chapitre 1 Introduction (ref : Bray chapitre 1)
GPA435, GPA – ÉTS, T. Wong Génie de la production automatisée GPA435 Système dexploitation et programmation de système Chapitre 6 Partie II 2014.
Gestion de Fichiers Tri Interne Efficace et Tri Externe.
CSI3525: Concepts des Langages de Programmation
CSI3525: Concepts des Langages de Programmation Notes # 7: Noms, Liaisons, Verification de Type et Portee ( Lire Chapitre 4 )
1 CSI3525: Concepts des Languages de Programmation Notes # 4: Description Semantique des Languages.
1 CSI3525: Concepts des Languages de Programmation Notes # 3: Description Syntaxique des Languages.
CSI3525: Concepts des Languages de Programmation
IFT 6800 Atelier en Technologies d’information
Ift 2251 Introduction au Génie Logiciel
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.
Expressions et affectations
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.
Partie II Sémantique.
Les assertions en Java.
Gestion de Fichiers GF-3: Structures d’Enregistrements, Acces Sequentiel et Direct, Manipulation de classes en C++ (Base sur des segments des Chapitres.
Paradigmes des Langages de Programmation
Paradigmes des Langages de Programmation
Paradigmes des Langages de Programmation
La Boucle Repeat Cours LCS N°1 Présenté par Mr: LALLALI.
O-notation 1. Introduction 2. O-notation 3. Opérations 3.1 Somme 3.2 Produit 4. Règles générales 5. Exemple 6.Analyse des algorithmes récursifs 6.1 Dilatation.
GESTION ET TRAITEMENT DES ERREURS
Algorithmique et programmation (1)‏
Créer des packages.
CSI3525: Concepts des Langages de Programmation Notes # 13: Introduction au SmallTalk.
Master 1 SIGLIS Java Lecteur Stéphane Tallard Les erreurs communes en Java.
PROCEDURE TYPE PROCEDURE TYPE DE
 Syntaxe du langage PHP
5ième Classe (Mercredi, 19 octobre) Prog CSI2572.
Initiation à la conception des systèmes d'informations
Introduction et Généralités sur l’Algorithmique
Cours 4 (14 octobre) Héritage. Chapitre III Héritage.
1. Spoon Christophe Delagarde, septembre 1998 I.U.T., Université de la Méditerrainée 2.
CSI3525: Concepts des Langages de Programmation Notes # 10: Controle ( Lire Chapitre 7 )
Pour les boucles FOR on a fait intervenir la boucles TANT QUE équivalentes dont on connaît calculer le temps d’exécution. Toutes le procédures de comptage.
Philippe Gandy - 8 septembre 2015 Basé sur les notes de cours de Daniel Morin et Roch Leclerc.
ISO 9001:2000 Interprétation Article 7 Réalisation du produit
Philippe Gandy – 10 novembre 2015 Basé sur les notes de cours de Daniel Morin et Roch Leclerc.
L ES INSTRUCTIONS DE L ECTURE, E CRITURE ET A FFECTATION Réalisé par : OUZEGGANE Redouane Département de Technologie Faculté de Technologie – Université.
Transcription de la présentation:

1 CSI3525: Concepts des Languages de Programmation Notes # 2: Criteres d Evaluation des Languages

2 Besoin d Evaluation n Etant donnee la proliferation de language de programmation, il est important d evaluer ces languages afin de pouvoir les choisir de maniere appropriee et de les ameliorer. n Trois criteres d evaluation sont generallement acceptes: la lisibilite, la facilite d ecriture, et la fiabilite. n La lisibilite correspond a la facilite avec laquelle un programme peut-etre lu et compris. n La facilite d ecriture correspond a la facilite avec laquelle un language peut etre utilise pour creer un programme. n Un programme est sure s il peut etre execute sous toutes les conditions. n Un autre critere important est le cout de ce language.

3 Caracteristique de Languages qui Affectent les Criteres d Evaluation Characteristique Simplicite/Orthogonalite Structure de Controle Type et Structure des Donnees Conception Syntactique Soutien pour l Abstraction Expressivite Verification de Type Traitement d Exceptions Restriction d Alias Lisibilite Ecriture Fiabilite Criteres

4 Caracteristiques Affectant la Lisibilite: La Simplicite n La Simplicite: – S il y a beaucoup de composantes de bases, il est difficile de toutes les connaitre – S il existe plusieures facons d exprimer une commande, il est aussi difficile de toutes les connaitre. – Si les operateurs peuvent etre surcharges, cela constitue une autre source de difficulte pour la lecture. n Neanmoins, la simplicite ne doit pas etre pousse trop loin car, paradoxalement, elle cause la difficulte de lecture.

5 Caracteristiques Affectant la Lisibilite: L Orthogonalite n L orthogonalite dans un language de programmation signifie que toutes les combinaisons de primitives sont legales et significatives. n De plus, la signification d un element du language orthogonal est independente du contexte dans lequel il apparait. n S il y a peu d orthogonalite dans le language, il y aura beacoup d exceptions a ses regles, et cela causera beaucoup de difficultes pour la lecture et la comprehension du code.

6 Caracteristiques Affectant la Lisibilite: Instruction de Controle n Il est tres important, pour la lisibilite d une langue de programmation d avoir des structures de controle adequate. n Par example, l un des plus grand probleme du premier BASIC est que sa seule instruction de controle etait le « goto ». Cela creait des situations ou le lecteur etait renvoye a different points du programme et cassait son flot regulier. n Depuis la fin des annees 1960, la plupart des languages incluent des instructions de controle adequate et cette caracteristique est moins importante quant a la lisibilite.

7 Caracteristiques Affectant la Lisibilite: Types et Structures des Donnees n La presence de moyens appropries pour definir des types et structures de donnees dans un language peut beaucoup aider la lisibilite. n Par example, la presence du type « Booleen » peut clarifier certaines instructions. n De meme la possibilite de creer des enregistrements a type varie (« records ») peut clarifier des expressions qui seraient, sans leur presence, indiquees par plusieurs tableaux a indices communs.

8 Caracteristiques Affectant la Lisibilite: La Syntaxe n Voici plusieurs examples dans lesquelles les choix de syntaxe peuvent influencer la lisibilite: – La forme des identificateurs: des identificateurs trop court peuvent rendre la lecture difficile. – Les mots speciaux: Ces mots peuvent aider a la comprehension (par example « begin », « end », « end for », etc.). Neanmoins, si ces mots peuvent aussi etre utilises comme identificateurs, cela rend la lecture plus difficile. – Si chaque construction a la meme signification dans des contextes differents, la lecture sera plus aisee.

9 Caracteristiques Affectant la Facilite d Ecriture: Simplicite et Orthogonalite n Si un language contient un large nombre de constructions differentes, il est fort possible que certain programmeurs ne les connaissent pas toutes. Dans ce cas il se peut que ces programmeurs n utilisent pas les meilleures constructions presentes. n De meme, il se peut que le programmeur ne connaissent certaines constructions que superficiellement et les utilise de maniere erronee. n Neanmoins, trop d orthogonalite peut etre detrimentale car cela apporterait trop de liberte et les erreurs ne pourraient pas etre detectees par le compileur.

10 Caracteristiques Affectant la Facilite d Ecriture: Possibilites d Abstraction n L abstraction est la possibilite de definir des structures ou des operations compliquees tout en en cachant leurs details. n L abstraction est tres importante dans l ecriture d un programme car elle peut rendre l ecriture beaucoup plus aisee. Il y a deux types d abstraction: abstraction de processus et abstraction de donnees. n Quand un processus est abstrait dans un sous- programme il n est pas necessaire de repeter son code a chaque fois qu il est necessaire. Un simple appel de la procedure est suffisant. n Les donnees peuvent etre abstraites en C++ ou Java dans des objets a interface simple. Example: un arbre.

11 Caracteristiques Affectant la Facilite d Ecriture: L Expressivite n Un language est expressif s il a des moyens simples et commodes de specifier des calculs. n Example, en C, « count++ » est plus commode et plus simple que « count = count + 1 » n De meme, l inclusion de l instruction « for » en Pascal rend l ecriture plus simple que si la boucle « while » doit etre utilisee.

12 Caracteristiques Affectant la Fiabilite: Verification de Type n La verification de type signifie qu un language est capable de detecter les erreurs relative au types des donnees ou bien au moment de la compilation ou au moment de l execution. n Quand un language, comme le C, ne detecte pas ces erreurs, le programme peut-etre execute, mais les resultats ne sont pas significatifs. n Par example, l etendue des tableaux n est pas verifiee en C, et lorsque les indices depassent les limites, le programme ne s arrete pas bien que les valeurs attente n aient pas de sens.

13 Caracteristiques Affectant la Fiabilite: Prise en Charge des Exceptions n La possibilite pour un program d intercepter les erreurs faites pendant l execution, de les corriger, et de continuer l execution augmente de beaucoup la fiabilite du language de programmation.. n Ada, C++ et Java ont d extensive capabilites de prise en charge d exception, mais de tels capabilites sont inconnues d autres languages tels que le C ou le FORTRAN

14 Caracteristiques Affectant la Fiabilite: Presence d Alias n Le fait d avoir des alias signifie qu il y a plus d un moyen de faire reference a des cellules de memoire. n Il est couramment accepte que la permission d avoir des alias dans les lamguage de programmation est dangereux. n Neanmoins, beaucoup de language de programmation utilisent des alias, par example, pour surmonter leur faiblesse dans le domaine de l abstraction des donnees. D autres languages restrictent les alias afin de permettre une plus grande fiabilite.

15 Caracteristiques Affectant la Fiabilite:Lisibilite et Facilite d Ecriture n Lisibilite et facilite d ecriture influencent la fiabilite des languages de programmation. n En effet, si il n y a pas de moyen naturel d exprimer un algorithme, des moyens non- naturels seront utilises, et il y aura une plus grande chance que ces moyens soient incorrects. n Programmes qui sont difficile a lire sont aussi difficile a ecrire et donc a modifier ou maintenir. Les programmes qui resultent sont donc egalement moins fiable.

16 Le Cout d un language de programmation I n Ce cout est fonction de beaucoup des caracteristiques du language: – Si le language n est pas simple et orthogonal, il est plus cher de former des programmeurs et d ecrire des programme dans ce language. Neanmoins, un bon environement de programmation peut beaucoup aider a reduire ce cout. n Le cout de la compilation et de l execution de programmes sont aussi des facteurs. L Optimization peut neanmoins reduire le cout de l execution.

17 Le Cout d un language de programmation II n Un autre facteur est le cout de la mise en oeuvre du language. Si cette mise en oeuvre ou la machine sur laquelle le language peut etre execute est chere, il y a peu de chance que le language devienne populaire. n Un autre cout est le cout lie au manque de fiabilite. Si le programme echoue dans le cas d une usine nucleaire ou une machine a rayons X, les dommages seront tres grand et tres chers. n Enfin, le cout de maintenir le language (corrections, modifications et addition de nouvelles capabilites) est aussi un consideration tres importante.

18 Le Cout d un language de programmation III n Les trois plus grand contributeurs au cout d un language de programmation sont: – Le development de programmes – Leur maintenance – Leur fiabilite n Etant donne que ces contributeurs dependent de la lisibilite des programmes et la facilite de l ecriture, ces criteres sont, en consequence, les plus importants. n Nanmoins, il y a aussi d autres criteres tels que: – La portabilite – La generalite – La precision et la complitude de la description.