Execution modelIn computing, a programming language consists of a syntax plus an execution model. The execution model specifies the behavior of elements of the language. By applying the execution model, one can derive the behavior of a program that was written in terms of that programming language. For example, when a programmer "reads" code, in their mind, they walk through what each line of code does. In effect they simulate the behavior inside their mind. What the programmer is doing is applying the execution model to the code, which results in the behavior of the code.
DoxygenDoxygen est un générateur de documentation sous licence libre capable de produire une documentation logicielle à partir du code source d'un programme. Pour cela, il tient compte de la syntaxe du langage dans lequel est écrit le code source, ainsi que des commentaires s'ils sont écrits dans un format particulier. Le code de Doxygen a été écrit en grande partie par Dimitri van Heesch. Doxygen est la contraction de « dox » (« docs », abréviation anglaise de « documents ») et de « gen » (« generator »), « générateur de documentation ».
Transformation de modèlesEn ingénierie dirigée par les modèles, une transformation de modèles est un programme qui permet de générer automatiquement et de modifier des modèles. Tout comme les métamodèles, les transformations de modèles sont un concept central de l'ingénierie dirigée par les modèles. Il existe plusieurs standards de transformations de modèles comme QVT ou MOFM2T ainsi que de nombreux langages de transformation de modèles comme ATL. Une transformation est la génération automatique d'un modèle cible à partir d'un modèle source.
Runtime libraryIn computer programming, a runtime library is a set of low-level routines used by a compiler to invoke some of the behaviors of a runtime environment, by inserting calls to the runtime library into compiled executable binary. The runtime environment implements the execution model, built-in functions, and other fundamental behaviors of a programming language. During execution (run time) of that computer program, execution of those calls to the runtime library cause communication between the executable binary and the runtime environment.
Table des symbolesUne table de symboles est une centralisation des informations rattachées aux identificateurs d'un programme informatique. C'est une fonction accélératrice de compilation, dont l'efficacité dépend de la conception. Dans une table des symboles, on retrouve des informations comme : le type, l'emplacement mémoire, la portée, la visibilité, etc. Généralement, la table est créée dynamiquement. Une première portion est créée au début de la compilation. Puis, de façon opportuniste, en fonction des besoins, elle est complétée.
Threaded codeIn computer science, threaded code is a programming technique where the code has a form that essentially consists entirely of calls to subroutines. It is often used in compilers, which may generate code in that form or be implemented in that form themselves. The code may be processed by an interpreter or it may simply be a sequence of machine code call instructions. Threaded code has better density than code generated by alternative generation techniques and by alternative calling conventions.
Chargeur (informatique)En informatique, le chargeur est un composant du système d'exploitation dont le rôle est de charger des programmes en mémoire, afin de créer un processus. Ses principales responsabilités sont la lecture et l'analyse du fichier exécutable, la création des ressources nécessaires à l'exécution de celui-ci, puis enfin le lancement effectif de son exécution. Le chargeur est généralement invoqué à l'aide d'un appel système ; cependant, dans des systèmes comme Linux, des fonctionnalités comme les bibliothèques dynamiques sont gérées elles-mêmes par un programme auquel le chargeur délègue une partie de son travail.
Allocation de registresDans un compilateur, l'allocation de registres est une étape importante de la génération de code. Elle vise à choisir judicieusement dans quel registre du processeur seront enregistrées les variables durant l'exécution du programme que l'on compile. Les registres sont des mémoires internes au processeur, généralement capables de contenir un mot machine. Les opérations sur des valeurs rangées dans des registres sont plus rapides que celles sur des valeurs en mémoire vive, quand ce ne sont pas les seules possibles.
Interprocedural optimizationInterprocedural optimization (IPO) is a collection of compiler techniques used in computer programming to improve performance in programs containing many frequently used functions of small or medium length. IPO differs from other compiler optimizations by analyzing the entire program as opposed to a single function or block of code. IPO seeks to reduce or eliminate duplicate calculations and inefficient use of memory and to simplify iterative sequences such as loops.
CMakeCMake est un système de construction logicielle multiplateforme. Il permet de vérifier les prérequis nécessaires à la construction, de déterminer les dépendances entre les différents composants d'un projet, afin de planifier une construction ordonnée et adaptée à la plateforme. La construction du projet est ensuite déléguée à un logiciel spécialisé dans l’ordonnancement de taches et spécifique à la plateforme, Make, Ninja ou Microsoft Visual Studio.