Google Native ClientGoogle Native Client ou NaCl (en allusion au chlorure de sodium) est un logiciel de sandbox qui permet l'exécution de code natif x86 dans un environnement confiné et contrôlé par un navigateur web. C'est un projet opensource qui donnera la possibilité aux développeurs web d'écrire du code (C ou C++) qui sera directement exécutable par le micro-processeur de la machine cliente lors du chargement du site dans un navigateur web.
Node.jsNode.js est une plateforme logicielle libre en JavaScript, orientée vers les applications réseau évènementielles hautement concurrentes qui doivent pouvoir monter en charge. Elle utilise la machine virtuelle V8, la bibliothèque libuv pour sa boucle d'évènements, et implémente sous licence MIT les spécifications CommonJS. Parmi les modules natifs de Node.js, on retrouve http qui permet le développement de serveur HTTP. Ce qui autorise, lors du déploiement de sites internet et d'applications web développés avec Node.
Asm.jsasm.js est un langage intermédiaire constituant un sous-ensemble du langage JavaScript. Il permet une amélioration importante des performances pour les applications web écrites en langage à typage statique avec gestion manuelle de la mémoire (comme le C) puis converti en JavaScript par un compilateur source à source. Asm.js ne vise à améliorer les performances que pour un tel code compilé depuis un autre langage, pas celles de code JavaScript écrit à la main.
Godot (moteur de jeu)Godot est un moteur de jeu multiplateforme, c'est-à-dire un logiciel permettant de créer des jeux vidéo qui est compatible avec différents systèmes d'exploitation. Il comporte entre autres un moteur 2D, un moteur 3D, un moteur physique, un gestionnaire d', et des langages de script pour programmer des comportements. Il est depuis ouvert au public et disponible sous licence MIT, ce qui fait de lui un logiciel libre. En plus des nombreux contributeurs bénévoles qui participent au projet, quelques développeurs rémunérés par don mensuel y travaillent à temps plein.
Zig (langage)Zig est un langage de programmation compilé impératif polyvalent, typé statiquement, conçu par Andrew Kelley. Le langage est conçu pour la «robustesse», l'«optimalité» et la «maintenabilité», prenant en charge les génériques et la réflexion au moment de la compilation, la compilation croisée et la gestion manuelle de la mémoire. Un objectif majeur du langage est de concurrencer (et d'améliorer) C, tout en s'inspirant également de Rust, entre autres.
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.
Dart (langage)Dart est un langage de programmation optimisé pour les applications sur plusieurs plateformes. Il est développé par Google et est utilisé pour créer des applications mobiles, de bureau, de serveur et web. Dart est un langage orienté objet à ramasse-miettes avec une syntaxe de type C++. Dart peut se compiler en code natif ou en JavaScript. Il prend en charge les interfaces, les mixins, les classes abstraites, les génériques réifiés et l'inférence de type. Dart a été dévoilé lors de la conférence GOTO à Aarhus, au Danemark, du 10 au 12 octobre 2011.
EmscriptenEmscripten est un compilateur source à source open source permettant de compiler du bitcode LLVM en asm.js, qui peut être exécuté par les navigateurs web. Le bytecode LLVM étant généré à partir de programmes écrits en langage C ou C++, par extension Emscripten permet donc de compiler un programme C ou C++ en JavaScript. Utilisé avec BinaryEn, il permet de produire du WebAssembly. Il est compatible avec quelques interfaces de programmation courantes comme la Standard Template Library, la Simple DirectMedia Layer et OpenGL.
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.
Processeur basé sur la pileCertains processeurs utilisent non pas des registres pour conserver les données, mais une ou plusieurs piles. Les instructions prennent alors pour opérandes les premiers éléments de la pile. Dans un tel processeur, les instructions (addition, multiplication, chargement d'une valeur en mémoire...) utilisent généralement les deux premiers éléments de la pile. On trouve aussi des instructions de manipulation de pile, par exemple permettant de supprimer un élément, ou d'inverser certains d'entre eux.
Bytecode JavaLe bytecode Java est un bytecode destiné à regrouper des instructions exécutables par une machine virtuelle Java. Par extension, il désigne un flux d'octets binaire au format d'une classe Java. Ce flux est habituellement le résultat de la compilation d'un code source, ce code source n'étant pas obligatoirement écrit en langage Java. Ce bytecode peut être exécuté sous de nombreux systèmes d'exploitation par une machine virtuelle Java.
Bytecodevignette|Code binaire en En informatique, le bytecode (terme anglais signifiant « code en bytes ») est un code intermédiaire entre les instructions machines et le code source, qui n'est pas directement exécutable. Le bytecode (également appelé code portable ou p-code) peut être créé à la volée et résider en mémoire (compilation à la volée, JIT en anglais) ou bien résider dans un fichier, généralement binaire qui représente le programme, tout comme un fichier de code objet produit par un compilateur.
Comparison of application virtualization softwareApplication virtualization software refers to both application virtual machines and software responsible for implementing them. Application virtual machines are typically used to allow application bytecode to run portably on many different computer architectures and operating systems. The application is usually run on the computer using an interpreter or just-in-time compilation (JIT). There are often several implementations of a given virtual machine, each covering a different set of functions.
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.
Rust (langage)Rust est un langage de programmation compilé multi-paradigme conçu et développé par Mozilla Research depuis 2010. Il a été conçu pour être « un langage fiable, concurrent, pratique », supportant les styles de programmation purement fonctionnel, modèle d'acteur, procédural, ainsi qu'orienté objet sous certains aspects. En 2020, ses domaines de prédilection sont la programmation système, les applications en ligne de commande, les applications Web via WebAssembly, les services réseaux et les systèmes embarqués.
Système hexadécimalLe système hexadécimal est un système de numération positionnel en base 16. Il utilise ainsi 16 symboles, en général les chiffres arabes pour les dix premiers chiffres et les lettres A à F pour les six suivants (en majuscule ou minuscule). Le système hexadécimal est utilisé notamment en électronique numérique et en informatique car il est particulièrement commode et permet un compromis entre le code binaire des machines et une base de numération pratique à utiliser pour les ingénieurs.
Kotlin (langage)Kotlin est un langage de programmation orienté objet et fonctionnel, avec un typage dynamique qui permet de compiler pour la machine virtuelle Java, JavaScript, et vers plusieurs plateformes en natif (grâce à LLVM). Son développement provient principalement d'une équipe de programmeurs chez JetBrains basée à Saint-Pétersbourg en Russie (son nom vient de l'île de Kotline, près de St. Pétersbourg). Google annonce pendant la conférence Google I/O 2017 que Kotlin devient le second langage de programmation officiellement pris en charge par Android après Java.