En construction de compilateur, la signature (aussi appelée décoration de nom) est une technique utilisée pour résoudre divers problèmes de résolution de noms uniques des entités informatiques avec plusieurs langages de programmation modernes.
Cette technique fournit un moyen d'encoder des informations supplémentaires dans le nom d'une structure, d'une classe ou d'un autre type de donnée afin que les compilateurs puissent communiquer davantage d'informations sémantiques aux lieurs.
Cette technique est utile lorsque le langage de programmation permet à différentes entités d'utiliser le même identifiant tant qu'ils occupent différents espaces de noms (un espace de noms est typiquement défini par un module, une classe ou une instruction explicite de déclaration d'espace de noms) ou qu'ils ont des signatures différentes (par exemple. avec la surcharge de fonction). Cette utilisation est nécessaire parce que chaque signature peut exiger une convention d'appel spécialisée dans le code machine.
Tout code objet produit par un compilateur est lié avec d'autres codes objets (produits par le même compilateur ou par un autre) par un programme appelé lieur (ou éditeur de liens) qui a besoin de nombreuses informations concernant chaque entité. Par exemple, pour lier correctement une routine, il faut son identifiant (nom) le nombre d'arguments, leurs types, etc.
Les langages de programmation simples des années 1970 (par exemple, le langage C) distinguent seulement les bouts de code par leur identifiant, ignorant les autres informations tels que les types des paramètres et le type de la valeur retournée. Les langage de programmation plus récents (par exemple, le langage C++) définissent des exigences plus strictes pour les bouts de code afin de les considérer équivalents, tels que les types des paramètres, le type de la valeur retournée et la convention d'appel de la routine. Ces exigences permettent la surcharge de routine aussi bien que la détection de divers bogue (tel l'utilisation de différentes définitions de routine pour compiler différents fichiers sources).
Cette page est générée automatiquement et peut contenir des informations qui ne sont pas correctes, complètes, à jour ou pertinentes par rapport à votre recherche. Il en va de même pour toutes les autres pages de ce site. Veillez à vérifier les informations auprès des sources officielles de l'EPFL.
Un binding (qui est un terme anglais désignant l'action de lier des éléments entre eux) ou liaison peut avoir plusieurs significations en informatique : binding de langage, qui permet l'utilisation d'une bibliothèque logicielle dans un autre langage de programmation que celui avec lequel elle a été écrite. On parle alors de binding de langage ; XML data binding, qui permet la lecture d'un document XML en générant un objet représentant ces données ; Data binding, qui permet de lier des objets entre eux pour les faire communiquer.
A foreign function interface (FFI) is a mechanism by which a program written in one programming language can call routines or make use of services written or compiled in another one. An FFI is often used in contexts where calls are made into binary dynamic-link library. The term comes from the specification for Common Lisp, which explicitly refers to the programming language feature enabling for inter-language calls as such; the term is also often used officially by the Haskell, Rust, Python, and LuaJIT (Lua) interpreter and compiler documentations.
In computer science, a calling convention is an implementation-level (low-level) scheme for how subroutines or functions receive parameters from their caller and how they return a result. When some code calls a function, design choices have been taken for where and how parameters are passed to that function, and where and how results are returned from that function, with these transfers typically done via certain registers or within a stack frame on the call stack.
Analyzing the security of closed source binaries is currently impractical for end-users, or even developers who rely on third-party libraries. Such analysis relies on automatic vulnerability discovery techniques, most notably fuzzing with sanitizers enable ...
IEEE COMPUTER SOC2020
, ,
We propose a novel and general framework to learn compact but highly discriminative floating-point and binary local feature descriptors. By leveraging the boosting-trick we first show how to efficiently train a compact floating-point descriptor that is ver ...
Institute of Electrical and Electronics Engineers2015