Grammaire d'unificationLes grammaires d'unification (ou grammaires de contraintes) sont des grammaires formelles apparues à partir des années 1980 pour analyser le langage naturel. Elles sont essentiellement caractérisées par le recours à des représentations syntaxiques sous forme de structures de traits. Ces structures de traits sont manipulées à l'aide de l'opération d'unification. Les grammaires d'unification sont facilement implémentables et donc bien adaptées au traitement automatique du langage naturel. Le terme est ambigu.
Higher-order programmingHigher-order programming is a style of computer programming that uses software components, like functions, modules or objects, as values. It is usually instantiated with, or borrowed from, models of computation such as lambda calculus which make heavy use of higher-order functions. A programming language can be considered higher-order if components, such as procedures or labels, can be used just like data. For example, these elements could be used in the same way as arguments or values.
Récursivité gaucheEn informatique, et notamment en théorie des langages formels, en compilation et analyse syntaxique descendante, la récursivité gauche est un concept de grammaires formelles qui décrit un certain type de réapparition d'une variable dans une dérivation lors d'un processus d'analyse syntaxique. Dans la terminologie des grammaires formelles et notamment des grammaires algébriques, une variable est récursive gauche s'il existe une règle de la grammaire dont le membre droit débute par cette variable (ce cas est dit récursivité directe) ou pour laquelle un mot dérivé débute par cette variable (cas de la récursivité indirecte).
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.
Hygienic macroIn computer science, hygienic macros are macros whose expansion is guaranteed not to cause the accidental capture of identifiers. They are a feature of programming languages such as Scheme, Dylan, Rust, Nim, and Julia. The general problem of accidental capture was well known in the Lisp community before the introduction of hygienic macros. Macro writers would use language features that would generate unique identifiers (e.g., gensym) or use obfuscated identifiers to avoid the problem.
NemerleNemerle is a general-purpose, high-level, statically typed programming language designed for platforms using the Common Language Infrastructure (.NET/Mono). It offers functional, object-oriented, aspect-oriented, reflective and imperative features. It has a simple C#-like syntax and a powerful metaprogramming system. In June 2012, the core developers of Nemerle were hired by the Czech software development company JetBrains. The team was focusing on developing Nitra, a framework to implement extant and new programming languages.
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.
Expression-oriented programming languageAn expression-oriented programming language is a programming language in which every (or nearly every) construction is an expression and thus yields a value. The typical exceptions are macro definitions, preprocessor commands, and declarations, which expression-oriented languages often treat as statements. Lisp and ALGOL 68 are expression-oriented languages. Pascal is not an expression-oriented language. All functional programming languages are expression-oriented.
Revue systématiquethumb|Ce diagramme illustre ce que font les auteurs d'une revue systématique. Une revue systématique est un travail de collecte, d'évaluation critique et de synthèse des connaissances existantes sur une question donnée. Cette question bien définie est issue de l'étude d'une problématique posée par un commanditaire, un gestionnaire, un praticien, un chercheur... Il s'agit, contrairement à une revue narrative et non systématique de la littérature, de minimiser les biais pouvant être inhérents soit à la matière première (données, connaissances) soit à la conduite de la revue elle-même, afin d'atteindre la plus grande objectivité possible.
Langage de scriptUn langage de script est un langage de programmation interprété qui permet de manipuler les fonctionnalités d'un système informatique configuré pour fournir à l'interpréteur de ce langage un environnement et une interface qui déterminent les possibilités de celui-ci. Le langage de script peut alors s'affranchir des contraintes des commandes de bas niveau — prises en charge par l'intermédiaire de l'interface — et bénéficier d'une syntaxe de haut niveau.