Programmation orientée objet Un article de Wikipédia, l'encyclopédie libre. Il est possible de concevoir par objet une application informatique sans pour autant utiliser des outils dédiés. Il n'en demeure pas moins que ces derniers facilitent de beaucoup la conception, la maintenance, et la productivité. Origines[modifier | modifier le code] Depuis, la programmation par objet n'a cessé d'évoluer aussi bien dans son aspect théorique que pratique et différents métiers et discours mercatiques à son sujet ont vu le jour : l’analyse objet (AOO ou OOA en anglais) ;la conception objet (COO ou OOD en anglais) ;les bases de données objet (SGBDOO) ;les langages objets avec les langages à prototypes ;ou encore la méthodologie avec MDA (Model Driven Architecture). Aujourd’hui, la programmation par objet est vue davantage comme un paradigme, le paradigme objet, que comme une simple technique de programmation. Les principes[modifier | modifier le code] La programmation orientée objet a été introduite par Alan Kay avec Smalltalk.
Lisp Un article de Wikipédia, l'encyclopédie libre. Lisp est la plus ancienne famille de langages impératifs et fonctionnels. Développé initialement en tant que modèle pratique pour représenter des programmes (par contraste avec la notion théorique de Machine de Turing), il est devenu dans les années 1970 et 80 le langage de choix pour la recherche en intelligence artificielle. Les langages Lisp sont aujourd'hui utilisés dans de nombreux domaines, de la programmation Web à la finance [1], et dans certains cursus de formation en Informatique. Le terme Lisp a été forgé à partir de l'anglais « list processing » (« traitement de listes »). Les langages Lisp sont reconnaissables immédiatement à leur apparence. Si l'on excepte le langage machine et le langage d'assemblage (ou plus communément « assembleur »), Lisp est le deuxième langage le plus ancien (juste après Fortran) parmi les langages qui se sont largement diffusés. Histoire[modifier | modifier le code] Syntaxe[modifier | modifier le code] ni
Programmation fonctionnelle Un article de Wikipédia, l'encyclopédie libre. Machine à états et effets secondaires[modifier | modifier le code] Programmation impérative et effets de bord[modifier | modifier le code] La programmation impérative s'appuie sur le modèle des machines à états (cf. aussi machine de Turing et Architecture de von Neumann), avec une mémoire centrale et des instructions qui modifient son état grâce à des affectations successives. Programmation fonctionnelle[modifier | modifier le code] La programmation fonctionnelle s'affranchit de façon radicale des effets secondaires (ou effets de bord) en interdisant toute opération d'affectation. La mise en œuvre des langages fonctionnels fait un usage sophistiqué de la pile car, afin de s'affranchir de la nécessité de stocker des données temporaires dans des tableaux, ils font largement appel à la récursivité (fait d'inclure l'appel d'une fonction dans sa propre définition). Transparence référentielle[modifier | modifier le code]
Programmation impérative Un article de Wikipédia, l'encyclopédie libre. Ce type de programmation est le plus répandu parmi l'ensemble des langages de programmation existants, et se différencie de la programmation déclarative — ou logique —, et de la programmation fonctionnelle. Langages impératifs et processeurs[modifier | modifier le code] La quasi-totalité des processeurs qui équipent les ordinateurs est de nature impérative : ils sont faits pour exécuter du code écrit sous forme d'opcodes (pour operation codes), qui sont des instructions élémentaires exécutables par le processeur. Instructions impératives principales[modifier | modifier le code] La plupart des langages de haut niveau comporte quatre types d'instructions principales : l'assignation ;le branchement conditionnel ;le branchement sans condition ;le bouclage. Les instructions d'assignation, en général, effectuent une opération sur l'information en mémoire et y enregistrent le résultat pour un usage ultérieur. A-0[modifier | modifier le code]
Langage de programmation Un article de Wikipédia, l'encyclopédie libre. Les langages de programmation permettent de décrire d'une part les structures des données qui seront manipulées par l'appareil informatique, et d'autre part d'indiquer comment sont effectuées les manipulations, selon quels algorithmes. Ils servent de moyens de communication par lesquels le programmeur communique avec l'ordinateur, mais aussi avec d'autres programmeurs; les programmes étant d'ordinaire écrits, lus, compris et modifiés par une communauté[3]. Les premiers langages de programmation ont été créés dans les années 1950. De nombreux concepts de l'informatique ont été lancés par un langage, avant d'être améliorés et étendus dans les langages suivants. Définition[modifier | modifier le code] Éléments du langage de programmation[modifier | modifier le code] Un langage de programmation est construit à partir d'une grammaire formelle, qui inclut des symboles et des règles syntaxiques, auxquels on associe des règles sémantiques. L’alphabet
ML (langage) Un article de Wikipédia, l'encyclopédie libre. ML (contraction de Meta Language) est un langage de programmation généraliste fonctionnel. ML fut initialement développé par Robin Milner et d'autres personnes dans les années 1980 à l'Université d'Édimbourg, pour le système de preuves formelles LCF. R. Milner rencontrait des difficultés avec le système de typage de LISP qui permettait de « prouver » des assertions fausses. ML a été standardisé en 1983, puis révisé en 1997 ; le langage résultant s'appelle Standard ML (SML), et a été notamment implémenté dans Standard ML of New Jersey (SML/NJ). Le typage de ML a été étendu avec du polymorphisme de première classe présent dans le système F de Jean-Yves Girard grâce à la thèse de Didier Le Botlan et à Didier Rémy au début des années 2000[1]. Les fonctionnalités de ML incluent : D'autres avantages du ML sont : Les points forts de ML le rendent particulièrement apte à l'écriture de langages, de compilateurs et de systèmes de preuve formelle.
Caml Un article de Wikipédia, l'encyclopédie libre. Caml (prononcé camel, signifie Categorical Abstract Machine Language) est un langage de programmation généraliste conçu pour la sécurité et la fiabilité des programmes. Il se prête à des styles de programmation fonctionnelle, impérative et orientée objet. C'est de plus un langage fortement typé. Le style fonctionnel rapproche le langage Caml de l’écriture mathématique, notamment grâce à la récursivité et au filtrage par motif (pattern matching). Ce dernier, particularité de la famille ML, offre une syntaxe au cas par cas claire et lisible, et est aussi utilisé dans le rattrapage des exceptions, en particulier pour la gestion des erreurs. Consortium[modifier | modifier le code] La conception et le développement du langage Caml ainsi que son environnement sont fédérés par un consortium dirigé par l'INRIA. Les extensions Caml[modifier | modifier le code] (en) PolyAML : A Polymorphic Aspect-oriented Functional Programming Language. Haskell
OCaml Un article de Wikipédia, l'encyclopédie libre. OCaml est le successeur de Caml Light, auquel il a ajouté entre autres une couche de programmation objet. L'acronyme CAML provient de Categorical Abstract Machine Language, un modèle de machine abstraite qui n'est cependant plus utilisé dans les versions récentes de OCaml. Principes[modifier | modifier le code] Il intègre ces différents concepts dans un système de types hérité de ML, caractérisé par un typage statique, fort et inféré. Le système de types permet une manipulation aisée de structures de données complexes : on peut aisément représenter des types algébriques, c'est-à-dire des types hiérarchisés et potentiellement récursifs (listes, arbres…), et les manipuler aisément à l'aide du filtrage par motif. Histoire[modifier | modifier le code] En 1995, Xavier Leroy publie une version de Caml nommée Caml Special Light, qui introduit un compilateur de code natif, et un système de modules inspiré des modules de Standard ML.
Pi-calcul Un article de Wikipédia, l'encyclopédie libre. Le Pi-calcul (ou π-calcul) est un langage de programmation théorique inventé par Robin Milner. Ce langage occupe dans le domaine de l'informatique parallèle et distribuée un rôle similaire à celui du λ-calcul dans l'informatique classique. La problématique[modifier | modifier le code] En tant que langage de programmation théorique (ou langage formel), le π-calcul ne vise pas à permettre de construire des programmes exécutables. Afin de construire un programme exécutable, il est nécessaire de passer par un langage de programmation concret dérivé (ou inspiré) du π-calcul, tel que JoCaml, Acute ou Nomadic Pict. Définition informelle[modifier | modifier le code] Les entités du π-calcul[modifier | modifier le code] Plutôt que des données explicites, les programmes écrits en π-calcul manipulent des noms, notés typiquement a, b, c… x, y, z. Les constructions du π-calcul[modifier | modifier le code] Processus terminé[modifier | modifier le code] . . .