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.
Advanced Micro DevicesAdvanced Micro Devices (AMD) est un fabricant américain de semi-conducteurs, microprocesseurs, cartes graphiques basé à Santa Clara (Californie). La compagnie est fondée le par un groupe d'ingénieurs et de dirigeants de Fairchild Semiconductor. Les cofondateurs d'AMD sont Jerry Sanders, , John Carey, Sven Simonsen, Jack Gifford, Frank Botte, Jim Giles et Larry Stenger. La flèche du logotype de la compagnie dirigée vers la droite symbolise sa croissance dans le « droit chemin » (« the right way »).
Compilation à la voléeLa compilation à la volée (aussi connue sous les noms de traduction dynamique, compilation juste-à-temps ou compilation JAT ; en anglais, just-in-time compilation ou JIT compilation), en programmation informatique, est une technique visant à améliorer la performance de systèmes bytecode-compilés par la traduction de bytecode en code machine natif au moment de l'exécution. La compilation à la volée se fonde sur deux anciennes idées : la compilation de bytecode et la compilation dynamique.
LLVMLLVM (anciennement appelé Low Level Virtual Machine en français : « machine virtuelle de bas niveau ») est une infrastructure de compilateur conçue pour l'optimisation du code à la compilation, à l'édition de liens, voire à l'exécution ou durant les « temps morts » d'un programme, quel que soit le langage d'origine. LLVM permet de créer une machine virtuelle pour des langages similaires à Java et sa JVM, un générateur de code pour une architecture matérielle spécifique, et des optimiseurs de compilation indépendants de toute plate-forme et de tout langage.
Portabilité (informatique)La portabilité d'un programme informatique est sa capacité à pouvoir être adapté plus ou moins facilement en vue de fonctionner dans différents environnements d'exécution. Les différences peuvent porter sur l'environnement matériel (processeur) comme sur l'environnement logiciel (système d'exploitation). La différence d'environnement peut également porter sur une combinaison des deux éléments. C'est le cas par exemple dans les domaines de l'informatique embarquée, des super calculateurs et des machines virtuelles.
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.
Linux embarquéLinux embarqué (en anglais Embedded Linux) désigne un système d'exploitation dérivé de Linux et adapté à un système embarqué. Il existe de nombreuses versions de Linux embarqués adaptés à différents types de matériels (téléphones portables, set-top boxes, boîtiers Internet (ADSL, Fibre ...), dispositifs lecteurs multimédia sur TV, etc). Contrairement aux versions de Linux destinées aux ordinateurs personnels et aux serveurs, les différents systèmes Linux embarqués sont conçus pour des systèmes aux ressources limitées.
Field-programmable gate arrayA field-programmable gate array (FPGA) is an integrated circuit designed to be configured after manufacturing. The FPGA configuration is generally specified using a hardware description language (HDL), similar to that used for an application-specific integrated circuit (ASIC). Circuit diagrams were previously used to specify the configuration, but this is increasingly rare due to the advent of electronic design automation tools. FPGAs contain an array of programmable logic blocks, and a hierarchy of reconfigurable interconnects allowing blocks to be wired together.
Compilation anticipéevignette|exemple de compilation anticipé La compilation anticipée (ou compilation hors ligne, ou compilation AOT où AOT signifie ahead-of-time; en anglais, ahead-of-time compilation) est une compilation qui traduit un langage évolué en langage machine avant l'exécution d'un programme contrairement à une compilation à la volée (just-in-time compilation) qui se fait lors de l'exécution du programme. La compilation anticipée permet d'avoir une vue d'ensemble du code, ce qui n'est pas le cas d'une compilation à la volée qui ne peut faire que des optimisations locales.
CPythonCPython est l'implémentation de référence du langage Python et l'implémentation par défaut et la plus largement utilisée de ce langage. CPython peut être défini à la fois comme un interpréteur et un compilateur, car il compile le code Python en bytecode avant de l'interpréter. Il possède une interface avec plusieurs langages, dont le C, dans laquelle il est possible d'écrire explicitement des liaisons dans un autre langage que Python. Enfin, c'est un logiciel libre.
Système sur une pucethumb|Puce ARM Exynos sur le smartphone Nexus S de Samsung. Un système sur une puce, souvent désigné dans la littérature scientifique par le terme anglais (d'où son abréviation SoC), est un système complet embarqué sur un seul circuit intégré (« puce »), pouvant comprendre de la mémoire, un ou plusieurs microprocesseurs, des périphériques d'interface, ou tout autre composant nécessaire à la réalisation de la fonction attendue.
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.
HyperTransportL'HyperTransport (anciennement Lightning Data Transport ou LDT) est un bus local série/parallèle plus rapide que le bus PCI et qui utilise le même nombre de broches. HyperTransport est une technologie issue des laboratoires Digital. À la suite de la disparition de Digital, le développement fut repris par AMD, IBM et nVidia qui avaient acquis une licence. Le bus hypertransport a connu différentes évolutions offrant une bande passante théorique de : 1.x : : échanges jusqu'à .
RyzenRyzen désigne le nom d'une famille de microprocesseurs de la marque AMD, implémentant la microarchitecture Zen. Les premiers produits Ryzen ont été annoncés le , lors du sommet New Horizon. Ils fonctionnent sur les socket AM4 (sur cartes mères à chipsets B350/B450/B550 et X370/X470/X570), (pour les cartes mères à chipsets B650E/B650/X670) et TR4/sTRX4 (pour la gamme Threadripper sur cartes mères à chipsets X399). Certains utilisateurs ont relevé un bug du scheduler de Windows 10, qui amoindrissait les performances de Zen et devrait être corrigé en .
C--C-- est un langage intermédiaire, conçu pour être émis par un compilateur au lieu du langage C ou d'un langage assembleur. La syntaxe du langage emprunte beaucoup à C, d'où le nom qui suggère que c'est essentiellement un sous-ensemble de C, de la même manière que C++ est un surensemble du C. Le langage est conçu comme un langage intermédiaire entre des outils de compilation de haut niveau et des outils de bas niveau comme des optimiseurs.
HeureL’heure est une unité de mesure secondaire du temps. Le mot désigne aussi la grandeur elle-même, l’instant (l’« heure qu’il est », actuellement ), y compris en sciences (« heure solaire » employé pour temps solaire). Histoire de la mesure du temps Historiquement, l’heure a été définie par l’utilisation des cadrans solaires qui marquaient par l'ombre projetée d'un style la position du Soleil dans le ciel ; il s'agissait de l'heure solaire.
Xilinxthumb|FPGA Xilinx Spartan-3 (référence XC3S400) contenant portes logiques Xilinx (nom complet Xilinx, Inc.) est une entreprise américaine de semi-conducteurs. Inventeur du FPGA, Xilinx fait partie des plus grandes entreprises spécialisées dans le développement et la commercialisation de composants logiques programmables, et des services associés tels que les logiciels de CAO électroniques, blocs de propriété intellectuelle réutilisables et formation. Le , AMD annonce son intention de racheter Xilinx.
Raspberry PiLe Raspberry Pi est un nano-ordinateur monocarte à processeur ARM de la taille d'une carte de crédit conçu par des professeurs du département informatique de l'université de Cambridge dans le cadre de la fondation Raspberry Pi. Le Raspberry Pi fut créé afin de démocratiser l'accès aux ordinateurs et au digital making (terme anglophone désignant à la fois la capacité de résolution de problèmes et les compétences techniques et informatiques). Cette démocratisation est possible en raison du coût réduit du Raspberry Pi, mais aussi grâce aux logiciels libres.
Démarrage d'un ordinateurLe démarrage d'un ordinateur (en anglais, boot, initial program load ou IPL) est la procédure de démarrage d’un ordinateur et comporte notamment le chargement du programme initial (l’amorçage ou bootstrap en anglais). On distingue : le « démarrage à froid » (cold boot), obtenu en allumant la machine, ou en l’éteignant puis en la rallumant ; du « démarrage à chaud » (warm boot), « réamorçage » ou « redémarrage » (reboot), obtenu en rechargeant le programme initial ; il ne s’agit pas d’un redémarrage au sens strict (coupure puis remise de l’alimentation électrique) ; l’option est présente au niveau de certains systèmes d’exploitation, notamment Windows et macOS.
Julia (langage)Julia est un langage de programmation de haut niveau, performant et dynamique pour le calcul scientifique, avec une syntaxe familière aux utilisateurs d'autres environnements de développement similaires (Matlab, R, Scilab, Python, etc.). Il fournit un compilateur sophistiqué, un système de types dynamiques avec polymorphisme paramétré, une exécution parallèle distribuée, des appels directs de fonctions C, Fortran et Python.