Taha Zerrouki Taha.zerrouki@gmail · 1 Rappel sur les langages de programmation Taha Zerrouki...
Transcript of Taha Zerrouki Taha.zerrouki@gmail · 1 Rappel sur les langages de programmation Taha Zerrouki...
1
Rappel sur les langagesde programmation
Taha Zerrouki
Module: Méthodes et technologies de l’implémentation
GSI, M1 S1
Présentation du Module
● Méthodes et technologies de l’implémentation● Aspects avancés de la programmation
Plan
- Rappel : Evolution des techniques de Programmation (procédurale, modulaire, objet, composant)
- Introduction à XML
- Les patron de conception/réalisation
- Les API pour XML (DOM)
- La réflexivité
- La programmation orientée aspect
- Les Frameworks pour le développement web
Plan
- Rappel : Evolution des techniques de Programmation ● procédurale● modulaire● objet● composant
- Introduction à XML
- Les patron de conception/réalisation
Plan
- Les API pour XML (DOM)
- La réflexivité
- La programmation orientée aspect
- Les Frameworks pour le développement web
Langage bas niveau
● Un langage de programmation est dit de bas niveau lorsque le codage de celui-ci se rapproche du langage machine (dit « binaire »), et donc permet de programmer à un degré très avancé.
●
Langage de haut niveau
● est un langage de programmation orienté autour du problème à résoudre, qui permet d'écrire des programmes en utilisant des mots usuels des langues naturelles
Compilation/Interprétation
● L'implémentation (réalisation concrète) d'un langage de programmation peut être interprétée ou compilée.
● Un langage de programmation peut avoir une – implémentation compilée,
– et une autre interprétée.
Compilation/Interprétation
● L'implémentation (réalisation concrète) d'un langage de programmation peut être interprétée ou compilée.
● Un langage de programmation peut avoir une – implémentation compilée,
– et une autre interprétée.
Compilation/Interprétation
● Compilation :– la traduction est faite avant l'exécution.
– (le principe d'une boucle est alors traduit une fois)
–
Compilation/Interprétation
Interprétation :– la traduction est finie pas à pas, durant l'exécution
– (les éléments d'une boucle sont alors examinés à chaque usage).
Compilation/Interprétation
● L'interprétation est utile pour la mise au point ou si les moyens sont limités.
● La compilation est préférable en exploitation.
Compilation/Interprétation
● Interprété – Java, python, basic, php
– Shell
– Navigateur web
– XML
– Lisp, Scheme
– Postscript (langage pour les imprimantes et traçantes)
– Langages pour les robots
Méthodes
● Langages impérative– Langages procédurales
– Langages orientés objets
● Langages déclaratifs– Langages logiques
– Langages fonctionnels
– Langages descriptives
Méthodes
● Langages impérative– Langages procédurales
– Langages orientés objets
● Langages déclaratifs– Langages logiques
– Langages fonctionnels
– Langages descriptives
Méthodes
● Langages impérative– Langages procédurales
– Langages orientés objets
● Langages déclaratifs– Langages logiques
– Langages fonctionnels
– Langages descriptives
Programmation impérative
● est un paradigme de programmation● qui décrit les opérations en séquences
d'instructions exécutées par l'ordinateur pour modifier l'état du programme.
●
Programmation impérative
● Ce type de programmation est le plus répandu parmi l'ensemble des langages de programmation existants
Méthodes
● Langages impérative– Langages procédurales
– Langages orientés objets
● Langages déclaratifs– Langages logiques
– Langages fonctionnels
– Langages descriptives
29
La programmation procédurale
● est un paradigme qui se fonde sur le concept d'appel procédural.
● Une procédure, aussi appelée:– routine,
– Sous-routine
– Fonction
contient simplement une série d'étapes à réaliser.
30
La programmation procédurale
● est un paradigme qui se fonde sur le concept d'appel procédural.
● N'importe quelle procédure peut être appelée à n'importe quelle étape de l'exécution du programme,
● y compris à l'intérieur d'autres procédures, voire dans la procédure elle-même (récursivité).
31
La programmation procédurale
Avantages● La programmation procédurale est un meilleur choix
qu'une simple programmation séquentielle. Les avantages sont en effet les suivants :
● La possibilité de réutiliser le même code (factorisation), ● La réduction de la taille du code source et un gain en
localité des modifications, ● donc une amélioration de la maintenabilité
32
Langages procéduraux
● Ada● Algol● BASIC● C● COBOL
● Pascal
● Perl
● PHP (version 4 et inférieur)
● Fortran
Méthodes
● Langages impérative– Langages procédurales
– Langages orientés objets
● Langages déclaratifs– Langages logiques
– Langages fonctionnels
– Langages descriptives
Méthodes
● Langages impérative– Langages procédurales
– Langages orientés objets
● Langages déclaratifs– Langages logiques
– Langages fonctionnels
– Langages descriptives
35
La programmation déclarative
● consiste à créer des applications sur la base de composants logiciels indépendants du contexte
● et ne comportant aucun état interne.● Autrement dit, l'appel d'un de ces composants
avec les mêmes arguments produit exactement le même résultat, quel que soit le moment et le contexte de l'appel.
36
La programmation déclarative
● Il existe plusieurs formes de programmation déclarative :
● La programmation descriptive ● La programmation fonctionnelle (LISP, Caml,
Haskell, Oz),● La programmation logique,● La programmation par contraintes.
37
La programmation descriptive
● à l'expressivité réduite, qui permet de décrire des structures de données (par exemple, HTML, XML ou LaTeX)
38
La programmation fonctionnelle
● perçoit les applications comme un ensemble de fonctions mathématiques (LISP, Caml, Haskell, Oz),
39
La programmation logique,
● pour laquelle les composants d'une application sont des relations logiques (Prolog, Mercury).
40
Programmation fonctionnelle
● L'origine de la programmation fonctionnelle peut être trouvée dans le lambda-calcul.
● le langage fonctionnel le plus ancien est Lisp, créé en 1958 par McCarthy.
41
Langages fonctionnels
● Récemment, la programmation fonctionnelle a commencé à sortir du milieu académique.
● Erlang : développé par Ericsson pour des besoins de programmation concurrentielle,
● Common Lisp, et Scheme sont utilisés. ● F# développé par Microsoft Research et
disponible sous licence de logiciel libre en 2010
42
Langages fonctionnels
● Mais le développement des langages fonctionnels est limité par le déficit en outils et en bibliothèques de qualité commerciale, et surtout par le manque de programmeurs formés.
43
Langages fonctionnels
● Mais le développement des langages fonctionnels est limité par le déficit en outils et en bibliothèques de qualité commerciale, et surtout par le manque de programmeurs formés.
45
Exemple LISP
● (+ 2 2) ; ajoute 2 et 2, renvoie 4● (defvar e) ; définit la variable e● (setf e 2.7182817) ; assigne 2.7182817 à la
variable e● (setq e 2.7182817) ; assigne 2.7182817 à la
variable e● (setq e 'rouge) ; assigne le mot rouge à la
variable e●
46
Exemple LISP
● (if (< x y)● y ; résultat si la condition est vérifiée (ici, si x < y)● x) ; résultat par défaut● ● (defun carre (x) (* x x)) ; définit une fonction qui
met un nombre au carré● (carre 3) ; exécution de la fonction :
retourne 9●
●
48
La programmation orientée composant
● consiste à utiliser une approche modulaire de l'architecture d'un projet informatique.
● Les développeurs, au lieu de créer un exécutable monolithique, se servent de briques réutilisables.
49
La programmation orientée composant
● consiste à utiliser une approche modulaire de l'architecture d'un projet informatique.
● Les développeurs, au lieu de créer un exécutable monolithique, se servent de briques réutilisables.
● ce qui permet d'assurer au logiciel:– une meilleure lisibilité
– une meilleure maintenance.