Meta-circular evaluatorIn computing, a meta-circular evaluator (MCE) or meta-circular interpreter (MCI) is an interpreter which defines each feature of the interpreted language using a similar facility of the interpreter's host language. For example, interpreting a lambda application may be implemented using function application. Meta-circular evaluation is most prominent in the context of Lisp. A self-interpreter is a meta-circular interpreter where the interpreted language is nearly identical to the host language; the two terms are often used synonymously.
CompilateurEn informatique, un compilateur est un programme qui transforme un code source en un code objet. Généralement, le code source est écrit dans un langage de programmation (le langage source), il est de haut niveau d'abstraction, et facilement compréhensible par l'humain. Le code objet est généralement écrit en langage de plus bas niveau (appelé langage cible), par exemple un langage d'assemblage ou langage machine, afin de créer un programme exécutable par une machine.
République du TexasLa république du Texas est le nom que porta l'État américain du Texas qui fit sécession du Mexique, de 1836 à 1845 durant la révolution texane, avant son annexion par les États-Unis. À l'automne 1835, le Texas mexicain fait partie du département de Coahuila y Texas de la république du Mexique (ce n'est plus un État dans le sens de la Constitution de 1824 mais un département, le Mexique étant devenu « centraliste » et non « fédéraliste »).
Partial evaluationIn computing, partial evaluation is a technique for several different types of program optimization by specialization. The most straightforward application is to produce new programs that run faster than the originals while being guaranteed to behave in the same way. A computer program prog is seen as a mapping of input data into output data: where , the static data, is the part of the input data known at compile time. The partial evaluator transforms into by precomputing all static input at compile time.
Optimizing compilerIn computing, an optimizing compiler is a compiler that tries to minimize or maximize some attributes of an executable computer program. Common requirements are to minimize a program's execution time, memory footprint, storage size, and power consumption (the last three being popular for portable computers). Compiler optimization is generally implemented using a sequence of optimizing transformations, algorithms which take a program and transform it to produce a semantically equivalent output program that uses fewer resources or executes faster.
Interprète (informatique)En informatique, un interprète, ou interpréteur , est un outil dont la tâche est d'analyser, de traduire et d'exécuter les programmes écrits dans un langage informatique. On qualifie parfois, , les langages dont les programmes sont généralement exécutés par un interprète de langages interprétés. Un interprète se distingue d’un compilateur par le fait qu’il effectue l’analyse et la traduction nécessaires à l'exécution d’un programme donné non pas une fois pour toutes, mais à chaque exécution de ce programme.
Stratégie d'évaluation (informatique)Un langage de programmation utilise une stratégie d'évaluation pour déterminer « quand » évaluer les arguments à l'appel d'une fonction (ou encore, opération, méthode) et « comment » passer les arguments à la fonction. Par exemple, dans l'appel par valeur, les arguments doivent être évalués avant d'être passés à la fonction. La stratégie d'évaluation d'un langage de programmation est spécifiée par la définition du langage même. En pratique, la plupart des langages de programmation (Java, C...
Compilateur de compilateurEn informatique, un compilateur de compilateur est un programme capable de produire la totalité ou certaines parties du code source d'un compilateur (partie analyse lexicale, partie analyse syntaxique, partie analyse sémantique, partie synthèse, partie de gestion des erreurs, etc.) pour former en un tout cohérent, le code source du compilateur souhaité. Comme un compilateur classique, il accepte un langage source, par exemple une grammaire couplée à un ensemble d'actions.
École de Copenhague (physique)vignette|Interprétation de Copenhague dans l'expérience de pensée du chat de Schrödinger : lors d'une désintégration radioactive, il se produit une ramification de l'état. Cependant, selon un principe aléatoire, l'une des deux branches s'effondre immédiatement après que la cohérence entre les états ait suffisamment diminué, par exemple à la suite d'une mesure. L’école de Copenhague ou interprétation de Copenhague est un courant de pensée qui donne une interprétation cohérente de la mécanique quantique.
Langage de modélisationUn langage de modélisation est un langage artificiel qui peut être utilisé pour exprimer de l'information ou de la connaissance ou des systèmes dans une structure qui est définie par un ensemble cohérent de règles. Les règles sont utilisées pour l'interprétation de la signification des composants dans la structure. Un langage de modélisation peut être graphique ou textuel.
Sous-programmeEn informatique, un sous-programme est un sous-ensemble du programme dans sa hiérarchie fonctionnelle. Un sous-programme doit pouvoir mémoriser l'adresse du code appelant pour permettre, à l'aide d'une instruction spécifique, de charger le pointeur de programme avec cette adresse de retour. Cela correspond bien souvent à une routine. Cependant, la notion de sous-programme est un peu plus générale, car il ne possède pas nécessairement son propre espace de noms. C'est le cas par exemple des sous-programmes appelés par l'instruction en BASIC.
Théorie d'Everettvignette|redresse=1.3|Le paradoxe du chat de Schrödinger dans l’interprétation d’Everett des mondes multiples (many worlds). Ici, chaque évènement est une bifurcation. Le chat est à la fois mort et vivant, avant même l'ouverture de la boite, mais le chat mort et le chat vivant existent dans des bifurcations différentes de l'univers, qui sont tout aussi réelles l'une que l'autre.
UML (informatique)Le Langage de Modélisation Unifié, de l'anglais Unified Modeling Language (UML), est un langage de modélisation graphique à base de pictogrammes conçu comme une méthode normalisée de visualisation dans les domaines du développement logiciel et en conception orientée objet. L'UML est une synthèse de langages de modélisation objet antérieurs : Booch, OMT, OOSE. Principalement issu des travaux de Grady Booch, James Rumbaugh et Ivar Jacobson, UML est à présent un standard adopté par l'Object Management Group (OMG).
Dead-code eliminationIn compiler theory, dead-code elimination (DCE, dead-code removal, dead-code stripping, or dead-code strip) is a compiler optimization to remove dead code (code that does not affect the program results). Removing such code has several benefits: it shrinks program size, an important consideration in some contexts, and it allows the running program to avoid executing irrelevant operations, which reduces its running time. It can also enable further optimizations by simplifying program structure.
Python (langage)Python (prononcé ) est un langage de programmation interprété, multiparadigme et multiplateformes. Il favorise la programmation impérative structurée, fonctionnelle et orientée objet. Il est doté d'un typage dynamique fort, d'une gestion automatique de la mémoire par ramasse-miettes et d'un système de gestion d'exceptions ; il est ainsi similaire à Perl, Ruby, Scheme, Smalltalk et Tcl.
Compile timeIn computer science, compile time (or compile-time) describes the time window during which a language's statements are converted into 0s and 1s for the computer to understand. The term is used as an adjective to describe concepts related to the context of program compilation, as opposed to concepts related to the context of program execution (runtime). For example, compile-time requirements are programming language requirements that must be met by source code before compilation and compile-time properties are properties of the program that can be reasoned about during compilation.
Génération de code natifLa génération de code natif est l'étape du processus de compilation transformant l'arbre syntaxique abstrait enrichi d'informations sémantiques en code machine ou en bytecode spécialisé pour la plateforme cible. C'est l'avant-dernière étape du processus de compilation qui se situe avant l'édition des liens. La phase de génération de code natif inclut généralement : Le choix des instructions à émettre ; L'ordonnancement des instructions : dans quel ordre émettre les instructions.
Many-minds interpretationThe many-minds interpretation of quantum mechanics extends the many-worlds interpretation by proposing that the distinction between worlds should be made at the level of the mind of an individual observer. The concept was first introduced in 1970 by H. Dieter Zeh as a variant of the Hugh Everett interpretation in connection with quantum decoherence, and later (in 1981) explicitly called a many or multi-consciousness interpretation. The name many-minds interpretation was first used by David Albert and Barry Loewer in 1988.
Object-modeling languageAn object-modeling language is a standardized set of symbols used to model a software system using an object-oriented framework. The symbols can be either informal or formal ranging from predefined graphical templates to formal object models defined by grammars and specifications. A modeling language is usually associated with a methodology for object-oriented development. The modeling language defines the elements of the model. E.g., that a model has classes, methods, object properties, etc.
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.