|
||||||||
3 grands groupes de paradigme de langage de programmation : La très grande majorité des langages de programmation qui sont utilisés de nos jours (et qui peuvent avoir une bonne cinquantaine d'années d'existence, comme dans le cas de FORTRAN) se répartissent selon 3 types de programmations ([Infini]), véritables paradigmes à part entière : 1/ Programmation impérative : Basée sur l'effet de bord (plus connue sous le nom d'affectation, mais aussi décrit abondamment dans le mécanisme de binding). Le programme se déroule en écrasant les valeurs d'une zone mémoire par une nouvelle valeur. On y retrouve ([Boucher]) : 1957 : FORTRAN (FORmula TRANslator), populaire rapidement car plus facile que l'assembleur et presque aussi rapide ; 1960 : Algol 60 (ALGOrithmic Language), surtout utilisé pour exprimer des algorithmes pour publication, a donné lieu à la "famille ALGOL" ; 1970 : Pascal, sous-ensemble de Algol, très facile à compiler, Wirth cré ensuite Modula-2 et Oberon ; 1972 : B et C, assez bas niveau pour écrire un SE - Système d'Exploitation -, créés pour implémenter UNIX) ; 1983 : Ada, créé pour remplacer tous les langages utilisés par le DoD - Department of Defense US -, fusion de plusieurs langages. On y retrouve également tous les langages objets, comme le précise la réponse à la question suivante. 2/ Programmation fonctionnelle : Basée sur le lambda-calcul et le concept d'environnement, ensemble dynamique de paires [nom, valeur]. Une fois qu'une paire est ajoutée à l'environnement, elle ne doit plus (normalement) être modifiée. Pour changer la valeur associée à un nom, il suffit de rajouter une nouvelle paire. La paire la plus récemment définie prévaut sur les autres. Quand certaines parties de l'environnement sont devenues obsolètes, elles sont simplement supprimées de la mémoire. On y retrouve ([Boucher]) : 1959 : Lisp (LISt Processor), conçu pour le traitement de la mémoire, surtout utilisé en IA, premier langage avec fonctions récursives, gestion automatique de la mémoire, etc. ; 1975 : Scheme, variante épurée de Lisp, simple et rapide ; 1984 : Common Lisp, fusion de plusieurs Lisp, énorme ; 1974 : ML, syntaxe à la Algol, plus typage statique. 1990 : Haskell, fonctionnel "pur" 3/ Programmation logique : Basé les résultats mathématiques d'enchaînement de déductions logiques, ce paradigme est le moins utilisé et reste représenté essentiellement par le Prolog. 4 grands groupes de paradigme de programmation : L'approche basée sur des langages de programmation impératifs a donné lieu à trois approches de la programmation bien distinctes, basés sur le traitement, les données ou les 2 ([BSCpp]) : 1/ Programmation procédurale : Principe : choisissez les procédures dont vous avez besoin. utilisez les meilleurs algorithmes que vous pouvez trouver. L'accent est mis sur l'exécution, l'algorithme doit réaliser les calculs désirés au travers de la transformation d'une donnée initiale en une donnée finale, permettant l'achèvement du processus de calcul. Les langages supportent ce paradigme en permettant de donner des arguments aux fonction et d'avoir des valeurs de retour. On raisonne donc sur le processus de calcul dans sa totalité, et l'on défini une succession d'appel de procédures ou de fonctions. Les données passent au second plan. FORTRAN est le langage procédural original. Algol60, Algol68, Pascal et C ne sont que des inventions plus tardives dans la même lignée. 2/ Programmation modulaire : Principe : Choisissez le module dont vous avez besoin. Partitionnez le programme de telle façon que les données soient cachées dans les modules. Ce paradigme dit "d'encapsulation des données" reflète l'augmentation de la taille des programme qui a amené les informaticiens à mieux organiser ces données. Le langage C en particulier supporte la définition de tels modules. 3/ Programmation par abstraction de données : Principe : choisissez les types dont vous avez besoins ; donnez un ensemble complet d'opérations pour chaque type. Basé sur les types de données abstraits, cela permet de définir une sorte de boite noire qui n'interagit pas vraiment avec le reste du programme. S'il n'y pas besoin de plus d'un objet par type, la programmation par abstraction de données utilisant les modules suffit. Pour toute nouvelle utilisation, il faut modifier la définition du type... d'où : 4/ Programmation par objets : Principe : choisissez les classes dont vous avez besoins ; donnez un ensemble complet d'opérations pour chaque classe ; rendez les points communs explicites à l'aide du mécanisme d'héritage. Cette fois, on ne raisonne plus sur le processus de calcul, mais l'on définit plutôt les différentes entités (objets) et leurs mécanismes de communications qui les lient. [Rq : on peut citer également la programmation générique, qui donnera plus tard (2000) la programmation par aspect.] Éléments d'abstraction des paradigmes : Voici 2 des dimensions évoquées dans l'introduction de cette page : Si l'on considère les paradigmes de langages de programmation, on retrouve essentiellement une abstraction basée sur la donnée, du même type de celle décrite pour les types, afin de s'abstraire du langage machine et du langage assembleur. Différents mécanismes viennent compléter cette abstraction. Ainsi : - SIMULA possède une gestion automatique de la mémoire, nombre flottant à précision fixe. - Ada possède une gestion manuelle de la mémoire, nombre flottant à précision variable. Si l'on se réfère aux paradigmes de programmation, l'abstraction porte plus sur la phase d'analyse conceptuelle. ([LLO]) Les méthodes orientées traitement relèvent suivent d'une vision descendante de l'analyse : elles supposent que le niveau le plus général de l'application traité peut être décrit par un "programme" principal, qui est ensuite décomposé en sous-programmes indépendants, de complexité moindre, sans se soucier de leur implémentation. Les méthodes orientées données consistent d'abord à déterminer quelles sont les entités appartenant à l'univers à modéliser et quelles sont les opérations qui leurs sont applicables, sans se préoccuper de l'enchaînement de ces opérations. |
||||||||
Décollage ! | Présentation du site web "AILES" | Infos générales | articles "Informatique" |