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.
Spectre (vulnérabilité)vignette|179x179px|Logo de la vulnérabilité : un fantôme avec une branche. Spectre est une vulnérabilité matérielle de certaines implémentations de la prédiction de branchement, qui affecte les microprocesseurs modernes dotés de l'exécution spéculative. Cette vulnérabilité permet de récupérer des informations potentiellement sensibles en forçant un programme à accéder à des zones arbitraires de l'espace mémoire qui lui est alloué. Deux identifiants de Common Vulnerabilities and Exposures (CVE) liés à Spectre, CVE-2017-5753 et CVE-2017-5715, ont été émis.
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.
Parent processIn computing, a parent process is a process that has created one or more child processes. In Unix-like operating systems, every process except process 0 (the swapper) is created when another process executes the fork() system call. The process that invoked fork is the parent process and the newly created process is the child process. Every process (except process 0) has one parent process, but can have many child processes. The operating system kernel identifies each process by its process identifier.
Multiplexagethumb|Principe du multiplexage Le multiplexage est une technique qui consiste à faire passer plusieurs informations à travers un seul support de transmission. Elle permet de partager une même ressource entre plusieurs utilisateurs. Il existe deux techniques principales de multiplexage : temporelle fréquentielle (ou, ce qui revient au même, en longueur d'onde). Le multiplexage est apparu et s'est développé avec la télégraphie.
Code division multiple accessCode division multiple access (CDMA) ou accès multiple par répartition en code (AMRC) est un système de codage des transmissions, utilisant la technique d'étalement de spectre. Il permet à plusieurs liaisons numériques d'utiliser simultanément la même fréquence porteuse. Le principe est l'utilisation simultanée de plusieurs codes. Ce système était utilisé dans certains réseaux de téléphonie mobile dans le segment d'accès radio, par plus de 275 opérateurs dans le monde surtout en Asie et en Amérique du Nord.
Channel access methodIn telecommunications and computer networks, a channel access method or multiple access method allows more than two terminals connected to the same transmission medium to transmit over it and to share its capacity. Examples of shared physical media are wireless networks, bus networks, ring networks and point-to-point links operating in half-duplex mode. A channel access method is based on multiplexing, that allows several data streams or signals to share the same communication channel or transmission medium.
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.
Processeur superscalaireUn processeur est dit superscalaire s'il est capable d'exécuter plusieurs instructions simultanément parmi une suite d'instructions. Pour cela, il comporte plusieurs unités de calcul, et est capable de détecter l'absence de dépendances entre instructions. Un processeur superscalaire cherche à exploiter le parallélisme entre instructions pour accélérer l'exécution des programmes. Cette approche évite de modifier les programmes pour exploiter le parallélisme : le processeur détecte lui-même les instructions pouvant être exécutées en parallèle, contrairement à d'autres approches, comme le VLIW.
Transactional memoryIn computer science and engineering, transactional memory attempts to simplify concurrent programming by allowing a group of load and store instructions to execute in an atomic way. It is a concurrency control mechanism analogous to database transactions for controlling access to shared memory in concurrent computing. Transactional memory systems provide high-level abstraction as an alternative to low-level thread synchronization. This abstraction allows for coordination between concurrent reads and writes of shared data in parallel systems.