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

CSI2520, Hiver 2007 Paradigmes de Programmation Discussion.

Présentations similaires


Présentation au sujet: "CSI2520, Hiver 2007 Paradigmes de Programmation Discussion."— Transcription de la présentation:

1 CSI2520, Hiver 2007 Paradigmes de Programmation Discussion

2 CSI2520, Hiver 2007 Paradigmes Programmation impérative: le programme est constitué d' une séquence dénoncés à être exécutés séquentiellement Programmation logique: le programme décrit les propriétés de la solution recherchée et un mécanisme d'inférence propose des solutions répondant à ces critères. Programmation fonctionnelle: le programme est vu comme une transformation des données d' entrée afin d'obtenir la sortie désirée. Programmation orientée objet: le programme se décompose en un ensemble dobjets interagissant entre eux par léchange de messages. Programmation concurrente: le programme autorise la répartition des tâches à accomplir en un ensemble de plusieurs processus asynchrones pouvant être exécutés en parallèle.

3 CSI2520, Hiver 2007 Pourquoi étudier les langages de programmation? Faciliter l'expression des idées par l'emploi d'un langage de programmation expressif en regard de l'application visée. Donner les connaissances permettant à un programmeur de choisir un langage approprié. Comprendre comment un concept informatique peut être mis en application par la programmation. Utiliser de façon plus efficace un langage. Accroître l'efficacité du code résultant. Faciliter l'apprentissage de nouveaux langages. Comprendre la relation qui existe entre un algorithme et un langage. Donner un aperçu de létat de l'art en programmation. Etre en mesure de comparer les différents langages existants. Donner la possibilité de concevoir un nouveau langage.

4 CSI2520, Hiver 2007 Une opération peut être exprimée dans différents langages, puis exécutée sur la même machine. Différent langages permettent de résoudre différents problèmes de façon différente. Différence entre ces langages: –syntaxe (forme, apparence) –sémantique Différents langages

5 CSI2520, Hiver 2007 // Factoriel en Java public static double factorial(int n) { if (n < 0) return 0.0; double fact = 1.0; while(x > 1) { fact = fact * n; n = n - 1; } return fact; } // Factoriel en Prolog factorial(0,1). factorial(N,F) :- N>0, N1 is N-1, factorial(N1,F1), F is N * F1. Discussion de Paradigmes

6 CSI2520, Hiver 2007 Expressivité Expressivité des structures de contrôle et de données. –Quest-ce qui est plus facile à lire et maintenir: un long programme bâti à partir déléments simples? -ou- un programme bref bâti à partir déléments complexes? –Exemples dexpressivité: la récursivité, le retour arrière incorporé de Prolog, la recherche dans les langages de base de données. –Exemple de peu dexpressivité: instructions dassembleur. Critères dans lévaluation dun langage

7 CSI2520, Hiver 2007 Facilité de lecture La lisibilité dun langage est essentielle, en particulier, pour des fins dévolution, de maintenance, et de mise à jour des logiciels. Abstraction: permettre la généralité des programmes, labstraction procédurale, et labstraction des données. Absence dambiguïtés Absence dune surabondance de choix: Par exemple, certains langages permettent décrire les boucles de plusieurs façons différentes. Critères de choix dun langage

8 CSI2520, Hiver 2007 Facilité décriture Abstraction: comme pour la lecture Simplicité: –Pascal est simple –Prolog est conceptuellement simple, mais difficile en pratique. –C++ et Java? Modularité: aussi la présence doutils de modularisation et la capacité dêtre incorporé dans un environnement de programmation intégré. Critères de choix dun langage

9 CSI2520, Hiver 2007 Orthogonalité labsence de restrictions sur la façon de combiner les primitives du langage. (Il est plus facile de constater le manque dorthogonalité.) –Exemple: Un tableau peut-il contenir des éléments de nimporte quel type? –Il en résulte en une diminution du nombre de cas spéciaux. Critères de choix dun langage

10 CSI2520, Hiver 2007 Critères de choix dun langage Facilité dapprentissage –Petit langage avec peu de restrictions Scheme –Une (seule) façon simple de faire les choses –Peu de mots clés C –Facilité de détection des erreurs Java

11 CSI2520, Hiver 2007 Critères de choix dun langage Facilité dutilisation –Facile à lire, facile à écrire, facile à apprendre –Bons outils de développement, bonne documentation –Peu de code à écrire afin de solutionner un problème

12 CSI2520, Hiver 2007 Critères dans lévaluation dun langage Simplicité: le fait de n' inclure qu' un nombre limité de composantes dont l'usage est naturel et cohérent. Abstraction: le fait de pouvoir représenter une structure complexe tout en ignorant des détails jugés non essentiels. Portabilité: jusquà quel point ce langage a été standardisé, si plusieurs dialectes du langage coexistent. Modularité: de quelle facon le programme peut être subdivisé en unités cohérentes. Robustesse: détection précoce des erreurs, vérification des types. Uniformité: le langage devrait utiliser avec consistance les notations et conventions habituellement admises.

13 CSI2520, Hiver 2007 Critères dans lévaluation dun langage Traduisibilité: devrait permettre la traduction efficace du langage en code machine. Précision: le fait que le langage ait été clairement d´efini, que toute séquence donne des résultats prédictibles. Extensibilité: la structure devrait permettre d' y ajouter de nouveaux concepts, de nouvelles options, permettant ainsi au langage dévoluer harmonieusement Restricabilité: si il existe plusieurs facon d' utliser le langage, ou un sous-ensemble de celui-ci de facon a limiter la complexité de son usage au besoin. Support: l'existence d'outils de développement intégrés. Apparence: la facon dont se présente le code Élégance: la facon dont se présente les solutions

14 CSI2520, Hiver 2007 Tous les langages de programmation ont: variables, constantes, strucutres de données règles de portée types, expressions structures de contrôle (selection, iteration) récursivité (pour la plupart des langages) sous-programmes... En Prolog et en Scheme, données et programmes ont la même forme En Scheme, toutes les données ont les même privilèges (incluant les fonctions) Java offre une grande variété de données et structures Critères de choix dun langage

15 CSI2520, Hiver 2007 Fiabilité : Vérification des types, traitement des exceptions et erreurs, labsence dambiguïtés (et en général la lisibilité et laptitude à lécriture). Coût associé à lutilisation du langage. –Temps nécessaire au développement (facilité de programmation, disponibilité de code, de librairies et de documentation). –Facilité dimplémentation: (affecte la disponibilité et le coût des compilateurs). Limplémentation de Pascal, C, C++ et Java ont été de grands succès. –Temps nécessaire pour traduire, et lefficacité du code résultant. –Portabilité et standardisation. Critères de choix dun langage

16 CSI2520, Hiver 2007 Critères de choix dun langage Chaque langage vient avec son modèle dexécution –Compilé ou interprété? –Tourne-t-il sur une machine virtuelle? –Est-il concu pour être portable? efficace? expressif?

17 CSI2520, Hiver 2007 Données de sortieDonnées dentrée Programme résultant Programme abstrait (optimisé) Arbre syntaxique Table de symboles Programme source Optimisation du code Analyse sémantique Chargeur/Éditeur de liens (Loader/Linker) Génération du code Ordinateur Analyse lexicale (scanning) Analyse syntaxique (parsing) Séquence dunités lexicales Programme abstrait (code intermédiaire) Code exécutable (object code)

18 CSI2520, Hiver 2007 Globalement, chaque langage de programmation a des points forts, et des points faibles: Java Prolog Scheme Pascal C C++ Points forts et faibles dun langage

19 CSI2520, Hiver 2007 Choisir le meilleur langage par application Traitement du langage Retour-arrière (jeux) Simulations … par familiarisation pour travailler en équipe par gout Choix dun langage de programmation


Télécharger ppt "CSI2520, Hiver 2007 Paradigmes de Programmation Discussion."

Présentations similaires


Annonces Google