CSI3525: Concepts des Languages de Programmation

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

description

CSI3525: Concepts des Languages de Programmation. Notes # 2: Criteres d ’Evaluation des Languages. Besoin d ’Evaluation. - PowerPoint PPT Presentation

Transcript of CSI3525: Concepts des Languages de Programmation

Page 1: CSI3525:                                   Concepts des Languages de Programmation

1

CSI3525: Concepts des Languages de

Programmation

Notes # 2:

Criteres d ’Evaluation des Languages

Page 2: CSI3525:                                   Concepts des Languages de Programmation

2

Besoin d ’Evaluation 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.

Trois criteres d ’evaluation sont generallement acceptes: la lisibilite, la facilite d ’ecriture, et la fiabilite.

La lisibilite correspond a la facilite avec laquelle un programme peut-etre lu et compris.

La facilite d ’ecriture correspond a la facilite avec laquelle un language peut etre utilise pour creer un programme.

Un programme est sure s ’il peut etre execute sous toutes les conditions.

Un autre critere important est le cout de ce language.

Page 3: CSI3525:                                   Concepts des Languages de Programmation

3

Caracteristique de Languages qui Affectent les Criteres d ’Evaluation

Characteristique

Simplicite/OrthogonaliteStructure de ControleType et Structure des DonneesConception SyntactiqueSoutien pour l ’AbstractionExpressiviteVerification de TypeTraitement d ’ExceptionsRestriction d ’Alias

Lisibilite Ecriture Fiabilite

Criteres

• • •• • •• • •• • • • •• •• ••

Page 4: CSI3525:                                   Concepts des Languages de Programmation

4

Caracteristiques Affectant la Lisibilite: La Simplicite 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.

Neanmoins, la simplicite ne doit pas etre pousse trop loin car, paradoxalement, elle cause la difficulte de lecture.

Page 5: CSI3525:                                   Concepts des Languages de Programmation

5

Caracteristiques Affectant la Lisibilite: L ’Orthogonalite L ’orthogonalite dans un language de

programmation signifie que toutes les combinaisons de primitives sont legales et significatives.

De plus, la signification d ’un element du language orthogonal est independente du contexte dans lequel il apparait.

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.

Page 6: CSI3525:                                   Concepts des Languages de Programmation

6

Caracteristiques Affectant la Lisibilite: Instruction de Controle Il est tres important, pour la lisibilite d ’une langue de

programmation d ’avoir des structures de controle adequate.

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.

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.

Page 7: CSI3525:                                   Concepts des Languages de Programmation

7

Caracteristiques Affectant la Lisibilite: Types et Structures des Donnees

La presence de moyens appropries pour definir des types et structures de donnees dans un language peut beaucoup aider la lisibilite.

Par example, la presence du type « Booleen » peut clarifier certaines instructions.

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.

Page 8: CSI3525:                                   Concepts des Languages de Programmation

8

Caracteristiques Affectant la Lisibilite: La Syntaxe

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.

Page 9: CSI3525:                                   Concepts des Languages de Programmation

9

Caracteristiques Affectant la Facilite d ’Ecriture: Simplicite et Orthogonalite

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.

De meme, il se peut que le programmeur ne connaissent certaines constructions que superficiellement et les utilise de maniere erronee.

Neanmoins, trop d ’orthogonalite peut etre detrimentale car cela apporterait trop de liberte et les erreurs ne pourraient pas etre detectees par le compileur.

Page 10: CSI3525:                                   Concepts des Languages de Programmation

10

Caracteristiques Affectant la Facilite d ’Ecriture: Possibilites d ’Abstraction

L ’abstraction est la possibilite de definir des structures ou des operations compliquees tout en en cachant leurs details.

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.

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.

Les donnees peuvent etre abstraites en C++ ou Java dans des objets a interface simple. Example: un arbre.

Page 11: CSI3525:                                   Concepts des Languages de Programmation

11

Caracteristiques Affectant la Facilite d ’Ecriture: L ’Expressivite

Un language est expressif s ’il a des moyens simples et commodes de specifier des calculs.

Example, en C, « count++ » est plus commode et plus simple que « count = count + 1 »

De meme, l ’inclusion de l ’instruction « for » en Pascal rend l ’ecriture plus simple que si la boucle « while » doit etre utilisee.

Page 12: CSI3525:                                   Concepts des Languages de Programmation

12

Caracteristiques Affectant la Fiabilite: Verification de Type 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.

Quand un language, comme le C, ne detecte pas ces erreurs, le programme peut-etre execute, mais les resultats ne sont pas significatifs.

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.

Page 13: CSI3525:                                   Concepts des Languages de Programmation

13

Caracteristiques Affectant la Fiabilite: Prise en Charge des Exceptions

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..

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

Page 14: CSI3525:                                   Concepts des Languages de Programmation

14

Caracteristiques Affectant la Fiabilite: Presence d ’Alias

Le fait d ’avoir des alias signifie qu ’il y a plus d ’un moyen de faire reference a des cellules de memoire.

Il est couramment accepte que la permission d ’avoir des alias dans les lamguage de programmation est dangereux.

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.

Page 15: CSI3525:                                   Concepts des Languages de Programmation

15

Caracteristiques Affectant la Fiabilite:Lisibilite et Facilite d ’Ecriture

Lisibilite et facilite d ’ecriture influencent la fiabilite des languages de programmation.

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.

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.

Page 16: CSI3525:                                   Concepts des Languages de Programmation

16

Le Cout d ’un language de programmation I 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.

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.

Page 17: CSI3525:                                   Concepts des Languages de Programmation

17

Le Cout d ’un language de programmation II 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.

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.

Enfin, le cout de maintenir le language (corrections, modifications et addition de nouvelles capabilites) est aussi un consideration tres importante.

Page 18: CSI3525:                                   Concepts des Languages de Programmation

18

Le Cout d ’un language de programmation III

Les trois plus grand contributeurs au cout d ’un language de programmation sont:– Le development de programmes– Leur maintenance– Leur fiabilite

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.

Nanmoins, il y a aussi d ’autres criteres tels que:– La portabilite– La generalite– La precision et la complitude de la description.