Réflexion (informatique)En programmation informatique, la réflexion est la capacité d'un programme à examiner, et éventuellement à modifier, ses propres structures internes de haut niveau lors de son exécution. On appelle réflexivité le fait pour un langage de programmation de permettre l'écriture de tels programmes. Un tel langage de programmation est dit réflexif. On distingue deux techniques utilisées par les systèmes réflexifs : l'introspection, qui est la capacité d'un programme à examiner son propre état ; l'intercession, qui est la capacité d'un programme à modifier son propre état d'exécution ou d'altérer sa propre interprétation ou signification.
Foncteur dérivéEn mathématiques, certains foncteurs peuvent être dérivés pour obtenir de nouveaux foncteurs liés de manière naturelle par des morphismes à ceux de départs. Cette notion abstraite permet d'unifier des constructions concrètes intervenant dans de nombreux domaines des mathématiques. Elle n'est pas liée à la notion de dérivation en analyse. La notion de foncteur dérivé est conçue pour donner un cadre général aux situations où une suite exacte courte donne naissance à une suite exacte longue.
Catégorie de foncteursUne catégorie de foncteurs ou catégorie des foncteurs entre deux catégories est une catégorie dont les objets sont les foncteurs entre ces catégories, et les morphismes sont les transformations naturelles entre ces foncteurs. Soient et des catégories. On définit la catégorie de foncteurs de dans , notée , ou parfois ou : Les objets de sont les foncteurs de dans ; Les morphismes sont les transformations naturelles. Il existe, pour tout objet F, un morphisme correspondant à l'identité incarné par le foncteur .
Peephole optimizationPeephole optimization is an optimization technique performed on a small set of compiler-generated instructions; the small set is known as the peephole or window. Peephole optimization involves changing the small set of instructions to an equivalent set that has better performance.
Cross compilerA cross compiler is a compiler capable of creating executable code for a platform other than the one on which the compiler is running. For example, a compiler that runs on a PC but generates code that runs on an Android smartphone is a cross compiler. A cross compiler is useful to compile code for multiple platforms from one development host. Direct compilation on the target platform might be infeasible, for example on embedded systems with limited computing resources. Cross compilers are distinct from source-to-source compilers.
Lambda liftingLambda lifting is a meta-process that restructures a computer program so that functions are defined independently of each other in a global scope. An individual "lift" transforms a local function into a global function. It is a two step process, consisting of; Eliminating free variables in the function by adding parameters. Moving functions from a restricted scope to broader or global scope. The term "lambda lifting" was first introduced by Thomas Johnsson around 1982 and was historically considered as a mechanism for implementing functional programming languages.
Optimisation convexevignette|320x320px|Optimisation convexe dans un espace en deux dimensions dans un espace contraint L'optimisation convexe est une sous-discipline de l'optimisation mathématique, dans laquelle le critère à minimiser est convexe et l'ensemble admissible est convexe. Ces problèmes sont plus simples à analyser et à résoudre que les problèmes d'optimisation non convexes, bien qu'ils puissent être NP-difficile (c'est le cas de l'optimisation copositive). La théorie permettant d'analyser ces problèmes ne requiert pas la différentiabilité des fonctions.
Lambda-calculLe lambda-calcul (ou λ-calcul) est un système formel inventé par Alonzo Church dans les années 1930, qui fonde les concepts de fonction et d'application. On y manipule des expressions appelées λ-expressions, où la lettre grecque λ est utilisée pour lier une variable. Par exemple, si M est une λ-expression, λx.M est aussi une λ-expression et représente la fonction qui à x associe M. Le λ-calcul a été le premier formalisme pour définir et caractériser les fonctions récursives : il a donc une grande importance dans la théorie de la calculabilité, à l'égal des machines de Turing et du modèle de Herbrand-Gödel.
Programmation génétiqueLa programmation génétique est une méthode automatique inspirée par le mécanisme de la sélection naturelle tel qu'il a été établi par Charles Darwin pour expliquer l'adaptation plus ou moins optimale des organismes à leur milieu. Elle a pour but de trouver par approximations successives des programmes répondant au mieux à une tâche donnée. On nomme programmation génétique une technique permettant à un programme informatique d'apprendre, par un algorithme évolutionniste, à optimiser peu à peu une population d'autres programmes pour augmenter leur degré d'adaptation (fitness) à réaliser une tâche demandée par un utilisateur.
C++C++ est un langage de programmation compilé permettant la programmation sous de multiples paradigmes, dont la programmation procédurale, la programmation orientée objet et la programmation générique. Ses bonnes performances, et sa compatibilité avec le C en font un des langages de programmation les plus utilisés dans les applications où la performance est critique. Créé initialement par Bjarne Stroustrup dans les années 1980, le langage C++ est aujourd'hui normalisé par l'ISO.
Socket (processeur)Un socket (de l'anglais ; en français on trouve également les appellations support du processeur ou réceptacle de processeur) est un connecteur utilisé pour interfacer un processeur avec une carte mère. La plupart des sockets et des processeurs actuels sont construits autour de l’architecture Pin Grid Array (PGA), dans laquelle les broches en dessous du processeur sont insérées dans le socket, d’habitude avec la Zero Insertion Force (ZIF) pour faciliter l’installation.
Directive (programming)In computer programming, a directive or pragma (from "pragmatic") is a language construct that specifies how a compiler (or other translator) should process its input. Directives are not part of the grammar of a programming language, and may vary from compiler to compiler. They can be processed by a preprocessor to specify compiler behavior, or function as a form of in-band parameterization. In some cases directives specify global behavior, while in other cases they only affect a local section, such as a block of programming code.