Langage intermédiaireEn informatique, un langage intermédiaire (parfois abrégé en IL, de l'anglais Intermediate Language) est le langage d'une machine abstraite conçu pour l'analyse d'un programme informatique. Le terme vient de son utilisation dans les compilateurs, où un compilateur transcrit d'abord le code source d'un programme en une forme plus adaptée pour les transformations d'amélioration de code, comme un état intermédiaire avant de générer du code objet ou du langage machine pour une machine cible, c’est-à-dire la machine sur laquelle sera exécutée le programme.
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.
CoffeeScriptCoffeeScript est un langage de programmation, qui se compile en JavaScript. Le langage ajoute du sucre syntaxique inspiré par Python, Ruby et Haskell afin d'améliorer la brièveté et la lisibilité du JavaScript, tout en ajoutant des fonctionnalités comme le filtrage par motif ou les listes en compréhension. Le résultat est compilé de façon prévisible en JavaScript, et les programmes peuvent être écrits avec moins de code (typiquement un tiers de lignes en moins) sans effet sur la vitesse d'exécution.
Objective-CObjective-C est un langage de programmation orienté objet réflexif. C'est une extension du C ANSI, comme le C++, mais qui se distingue de ce dernier par sa distribution dynamique des messages, son typage faible ou fort, son typage dynamique et son chargement dynamique. Contrairement au C++, il ne permet pas l'héritage multiple mais il existe toutefois des moyens de combiner les avantages de C++ et d'Objective-C.
Swift (langage d'Apple)Swift est un langage de programmation objet compilé, multi-paradigmes, qui se veut simple, performant et sûr. Il est développé en open source. Le projet de développement de Swift est géré par Apple, qui en est également le principal contributeur ; mais de nombreux membres de la communauté Swift, ainsi que d'autres acteurs, tels que Google et IBM, participent également à son développement. Swift est officiellement supporté sur les systèmes d'exploitation Ubuntu, iOS, macOS, watchOS et tvOS.
HaxeHaxe est le nom d'un langage de programmation, multi-paradigme, multiplate-forme, haut niveau et celui d'un compilateur utilisé pour produire des applications pour de nombreuses plates-formes différentes à partir d'un seul code source. C'est aussi le nom d'un logiciel gratuit et open source distribué sous la licence GPLv2. La bibliothèque standard est disponible sous la licence MIT. Haxe inclut un ensemble de fonctions communes qui sont supportées sur toutes les plates-formes, tels que les types de données numériques, textuelles, tabulaires et binaires ainsi que certains formats de fichier communs.
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.
Vala (langage)Vala est un langage de programmation compilé, dont l'objectif est de fournir les bénéfices des langages de programmation modernes (comme la POO) aux développeurs de la plateforme GNOME qui utilisent GLib et son système GObject. Sa syntaxe est basée sur celle de C# mais il ne nécessite pas d'environnement d'exécution. Vala est transformé en code C, lui-même compilé en code machine natif. Les avantages d'une telle chaîne de compilation sont de produire des logiciels qui requièrent moins de mémoire vive et qui s'exécutent plus rapidement.
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.
Nim (langage)Nim (anciennement nommé Nimrod) est un langage de programmation impératif, multi-paradigme et compilé imaginé et développé par Andreas Rumpf. Il est prévu pour être efficace, expressif et élégant. Il supporte la métaprogrammation, la programmation fonctionnelle, procédurale et orientée objet. Initialement, le compilateur Nim était écrit en Pascal. En 2008, une version du compilateur écrite en Nim a été réalisée. Le compilateur est open source et développé par un groupe de volontaires en plus d'Andreas Rumpf.
Go (langage)Go est un langage de programmation compilé et concurrent inspiré de C et Pascal. Il a été développé par Google à partir d’un concept initial de , Rob Pike et Ken Thompson. vignette|alt=Logo de Google Go|droite|Mascotte de Google Go Go veut faciliter et accélérer la programmation à grande échelle : en raison de sa simplicité, il est donc concevable de l’utiliser aussi bien pour écrire des applications, des scripts ou de grands systèmes. Cette simplicité est nécessaire aussi pour assurer la maintenance et l’évolution des programmes sur plusieurs générations de développeurs.
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.
Cross compilerA cross compiler is a compiler capable of creating executable code for a platform other than the one on which the compiler is running. For example, a compiler that runs on a PC but generates code that runs on an Android smartphone is a cross compiler. A cross compiler is useful to compile code for multiple platforms from one development host. Direct compilation on the target platform might be infeasible, for example on embedded systems with limited computing resources. Cross compilers are distinct from source-to-source compilers.
Code impénétrableLe code impénétrable d'un programme informatique est un code dont la compréhension est très difficile pour un humain tout en restant parfaitement compilable par un ordinateur. Le procédé par lequel du code est rendu impénétrable est appelé brouillage, ou offuscation. Cette technique de programmation – qui va à l'encontre des usages habituels – a ses raisons. C'est tout d'abord un moyen de protéger les investissements de développement d'un logiciel par des techniques de génération de code objet rendant plus difficile la rétro-ingénierie.
Auto-hébergement (informatique)Le premier compilateur auto-hébergé (si l'on exclut les assembleurs) a été écrit pour le Lisp par Hart et Levin au Massachusetts Institute of Technology (MIT) en 1962. Puisque les interpréteurs Lisp, mais non les compilateurs, existaient auparavant, ils utilisaient une méthode originale pour compiler leur compilateur. Le compilateur, comme tout programme Lisp, pouvait être exécuté dans un interpréteur. Donc, il pouvait simplement exécuter le compilateur dans l'interpréteur lui donnant ensuite, son propre code source à compiler.
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.
ZilogZilog est une entreprise d’électronique fondée en Californie en 1974 par Federico Faggin qui a quitté Intel après avoir travaillé à la conception du 8080. À présent moins répandus que les Intel ou Motorola, les microprocesseurs Zilog étaient très populaires au début des années 1980. Le processeur le plus connu issu de Zilog est la famille du Z80. Ce microprocesseur était compatible avec l’Intel 8080, qui avait également été conçu par Federico Faggin.
Logiciel multiplateformeUn logiciel multiplateforme est un logiciel conçu pour fonctionner sur plusieurs plateformes informatiques. De nombreux langages de programmation sont considérés être multiplateformes . En effet, il suffit de développer un compilateur destiné à générer un code exécutable compréhensible par chacun des processeurs qu’on désire utiliser. On aurait donc : un seul langage de programmation et un compilateur par type de processeur (des processeurs seraient considérés de même type s'ils sont identiquement structurés).
ActionScriptActionScript est un langage de programmation utilisé au sein d'applications clientes (comme Adobe Flash et Adobe Flex) et serveur (Flash media server, JRun, Macromedia Generator), ou encore en tant que langage de script dans le moteur graphique Unity. ActionScript est un langage de script, orienté objet et prototype, fondé sur ECMAScript (conforme à 100 % avec la norme ECMA-262, révision 3, depuis ActionScript 3.0). ECMAScript étant une version standardisée de JavaScript, ActionScript et JavaScript partagent une syntaxe semblable.
MétaprogrammationLa métaprogrammation, , désigne l'écriture de programmes qui manipulent des données décrivant elles-mêmes des programmes. Dans le cas particulier où le programme manipule ses propres instructions pendant son exécution, on parle de programme auto-modifiant. Elle peut être employée pour générer du code interprété par un compilateur et donner un résultat constant, afin d'éviter un calcul manuel. Il permet également de réduire le temps d'exécution du programme si le résultat constant avait été classiquement calculé par le programme comme pour les résultats variables.