Programmation fonctionnelleLa programmation fonctionnelle est un paradigme de programmation de type déclaratif qui considère le calcul en tant qu'évaluation de fonctions mathématiques. Comme le changement d'état et la mutation des données ne peuvent pas être représentés par des évaluations de fonctions la programmation fonctionnelle ne les admet pas, au contraire elle met en avant l'application des fonctions, contrairement au modèle de programmation impérative qui met en avant les changements d'état.
Langage de programmationthumb|Fragment de code écrit dans le langage de programmation JavaScript. Un langage de programmation est un langage informatique destiné à formuler des algorithmes et produire des programmes informatiques qui les appliquent. D'une manière similaire à une langue naturelle, un langage de programmation est composé d'un alphabet, d'un vocabulaire, de règles de grammaire, de significations, mais aussi d'un environnement de traduction censé rendre sa syntaxe compréhensible par la machine.
Paradigme (programmation)vignette|Schéma simple à 3 blocs, avec des connexions étiquetées Le paradigme de programmation est la façon (parmi d'autres) d'approcher la programmation informatique et de formuler les solutions aux problèmes et leur formalisation dans un langage de programmation approprié. Ce n'est pas de la méthodologie contenant une méthode ; cette dernière organise le traitement des problèmes reconnus dans l'écosystème concerné pour aboutir à la solution conceptuelle et programme exécutable.
Langage de programmation à usage généralEn informatique, un langage de programmation à usage général () est un langage de programmation conçu pour être utilisé pour la conception de logiciels dans la plus grande variété de domaines d'application. Un langage de programmation peut être qualifié ainsi s'il n'inclut pas de constructions de langage conçues pour être utilisées dans un domaine d'application spécifique. Inversement, un langage dédié () est un langage conçu pour être utilisé dans un domaine d'application spécifique.
Sûreté du typageLa sûreté du typage est un principe permettant d'améliorer la qualité de la programmation. Dans les langages à typage statique, l'un des objectifs est d'intercepter les erreurs de type de données lors de la compilation. Un type peut être vu comme un ensemble de valeurs et un ensemble d'opérateurs. La programmation objet a introduit les notions d'objets, messages, classes, héritage. Il est tentant de faire coller les classes à des types.
System programming languageA system programming language is a programming language used for system programming; such languages are designed for writing system software, which usually requires different development approaches when compared with application software. Edsger Dijkstra refers to these languages as machine oriented high order languages, or mohol. General-purpose programming languages tend to focus on generic features to allow programs written in the language to use the same code on different platforms.
Type systemIn computer programming, a type system is a logical system comprising a set of rules that assigns a property called a type (for example, integer, floating point, string) to every "term" (a word, phrase, or other set of symbols). Usually the terms are various constructs of a computer program, such as variables, expressions, functions, or modules. A type system dictates the operations that can be performed on a term. For variables, the type system determines the allowed values of that term.
Programmation orientée objetLa programmation orientée objet (POO), ou programmation par objet, est un paradigme de programmation informatique. Elle consiste en la définition et l'interaction de briques logicielles appelées objets ; un objet représente un concept, une idée ou toute entité du monde physique, comme une voiture, une personne ou encore une page d'un livre. Il possède une structure interne et un comportement, et il sait interagir avec ses pairs.
RubyRuby est un langage de programmation libre. Il est interprété, orienté objet et multi-paradigme. Le langage a été standardisé au Japon en 2011 (JIS X 3017:2011), et en 2012 par l'Organisation internationale de normalisation (ISO 30170:2012). Yukihiro « Matz » Matsumoto est le créateur de Ruby. Frustré par son expérience en développement Smalltalk et Lisp, il commence la conception d'un nouveau langage en 1993 sous Emacs, puis publie une première version en 1995 sous licence libre. Il enchaîne depuis les nouvelles versions.
Nim (langage)Nim (anciennement nommé Nimrod) est un langage de programmation impératif, multi-paradigme et compilé imaginé et développé par Andreas Rumpf. Il est prévu pour être efficace, expressif et élégant. Il supporte la métaprogrammation, la programmation fonctionnelle, procédurale et orientée objet. Initialement, le compilateur Nim était écrit en Pascal. En 2008, une version du compilateur écrite en Nim a été réalisée. Le compilateur est open source et développé par un groupe de volontaires en plus d'Andreas Rumpf.
C (langage)C est un langage de programmation impératif, généraliste et de bas niveau. Inventé au début des années 1970 pour réécrire Unix, C est devenu un des langages les plus utilisés, encore de nos jours. De nombreux langages plus modernes comme C++, C#, Java et PHP ou JavaScript ont repris une syntaxe similaire au C et reprennent en partie sa logique. C offre au développeur une marge de contrôle importante sur la machine (notamment sur la gestion de la mémoire) et est de ce fait utilisé pour réaliser les « fondations » (compilateurs, interpréteurs.
Idiome de programmationEn programmation informatique, un idiome ou patron d'implémentation est un moyen standard d'exprimer une construction courante dans un ou plusieurs langages de programmation. Un idiome peut exprimer une tâche simple, un algorithme, ou une structure de données qui peuvent faire partie ou non des fonctionnalités intégrées au langage. Le patron d'implémentation propose une solution propre à un langage pour des détails d'implémentation tandis que le patron de conception propose une solution générale à un problème récurrent dans la conception de logiciels.
Filtrage par motifLe filtrage par motif est la vérification de la présence de constituants d'un motif par un programme informatique, ou parfois par un matériel spécialisé. Par contraste avec la reconnaissance de forme, les motifs sont complètement spécifiés. De tels motifs concernent conventionnellement des séquences ou des arbres. Par exemple "HDpdf" peut signifier : "Toute chaîne contenant HD et se terminant par pdf".
Programmation purement fonctionnelleEn informatique, la programmation purement fonctionnelle est un paradigme de programmation qui considère toutes les opérations comme l'évaluation de fonctions mathématiques. L'état et les objets immuables sont généralement modélisés à l'aide d'une logique temporelle, en tant que variables explicites représentant l'état du programme à chaque étape de son exécution : l'état d'une variable est transmis en tant que paramètre d'entrée d'une fonction de transformation d'état, qui renvoie l'état mis à jour en tant que partie de sa valeur de retour.
Programmation par copier-collerLa programmation par copier-coller est la production de code source par de nombreux copier-coller. Elle est un palliatif à des compétences insuffisantes en programmation informatique, mais peut être due à des limitations technologiques (par exemple, un environnement de développement peu expressif) là où des fonctions ou des bibliothèques logicielles seraient normalement utilisées. Elle est considérée comme acceptable voire nécessaire, par exemple avec le code redondant (boilerplate en anglais), le déroulage de boucle manuel (quand le compilateur ne sait pas le faire automatiquement), ou avec certains idiomes de programmation.
Langage graphiquevignette|Script du programme "Hello, world!" dans le langage de programmation graphique Scratch Un langage de programmation graphique ou visuel est un langage de programmation dans lequel les programmes sont écrits par assemblage d'éléments graphiques. Sa syntaxe concrète est composée de symboles graphiques et de textes, qui sont disposés spatialement pour former des programmes. De nombreux langages visuels se basent sur les notions « de boîtes et de flèches » : les boîtes (ou d'autres d'objets) sont traitées comme des entités, reliées par des flèches ou des lignes qui représentent des relations.
Langage dédiéUn langage dédié (en anglais, domain-specific language ou DSL) est un langage de programmation dont les spécifications sont conçues pour répondre aux contraintes d’un domaine d'application précis. Il s'oppose conceptuellement aux langages de programmation classiques (ou généralistes) comme Java ou C, qui tendent à traiter un ensemble de domaines. Néanmoins, aucun consensus ne définit précisément ce qu'est un langage dédié. Ce manque de définition précise sur la nature d'un langage dédié rend délicate la tâche d'établir un historique clair sur l'origine du concept.
Common LispCommon Lisp (en abrégé CL) est une spécification du langage Lisp standardisée par l'ANSI. Common Lisp est un dialecte de Lisp standardisé par l'ANSI X3.226-1994. Développé pour standardiser les variantes divergentes de Lisp qui l'ont précédé, ce n'est pas une implémentation mais une spécification à laquelle les implémentations Lisp essayent de se conformer. Il est fréquemment abrégé en CL. Common Lisp est un langage de programmation à usage général, a contrario de dialectes de Lisp comme Emacs Lisp et AutoLisp, qui sont des langages d'extension embarqués dans des produits particuliers.
Approches fonctionnelles de la grammaireLes approches fonctionnelles de grammaire sont les approches relatives à l’étude du langage qui estiment que les fonctions linguistiques et leurs éléments sont indispensables à la compréhension du processus et de la structure d’une langue. Les approches fonctionnelles linguistiques existent puisqu’une langue est fondamentalement un outil de communication. Il semble donc évident de déduire que ces différentes structures sont mieux étudiées et comprises selon les fonctions qu’elles exercent.
ML (langage)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 1970 à 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 est un langage fonctionnel impur : il est possible de programmer en impératif et, en conséquence, les fonctions peuvent être sujettes à des effets secondaires non désirés (dits « de bord »), contrairement à des langages purement fonctionnels comme Haskell.