Free Java implementationsFree Java implementations are software projects that implement Oracle's Java technologies and are distributed under free software licences, making them free software. Sun released most of its Java source code as free software in May 2007, so it can now almost be considered a free Java implementation. Java implementations include compilers, runtimes, class libraries, etc. Advocates of free and open source software refer to free or open source Java virtual machine software as free runtimes or free Java runtimes.
Traductionvignette|La Pierre de Rosette, qui a permis le déchiffrement des hiéroglyphes au . La traduction (dans son acception principale de traduction interlinguale) est le fait de faire passer un texte rédigé dans une langue (« langue source », ou « langue de départ ») dans une autre langue (« langue cible », ou « langue d'arrivée »). Elle met en relation au moins deux langues et deux cultures, et parfois deux époques.
Java (langage)Java est un langage de programmation de haut niveau orienté objet créé par James Gosling et Patrick Naughton, employés de Sun Microsystems, avec le soutien de Bill Joy (cofondateur de Sun Microsystems en 1982), présenté officiellement le au SunWorld. La société Sun est rachetée en 2009 par la société Oracle qui détient et maintient désormais Java. Un logiciel écrit en language Java a pour particularité d'être compilé vers un code intermédiaire formé de bytecodes qui peut être exécutée dans une machine virtuelle Java (JVM) en faisant abstraction du système d'exploitation.
Machine virtuelle Javavignette|Machine virtuelle Java - Spécification Java 7 La machine virtuelle Java (en anglais Java virtual machine, abr. JVM) est un appareil informatique fictif qui exécute des programmes compilés sous forme de bytecode Java. L'appareil est simulé par un logiciel spécifique à chaque plateforme ou couple (machine/système d’exploitation) et permet aux applications Java compilées en bytecode de produire les mêmes résultats quelle que soit la plate-forme, tant que celle-ci est pourvue de la machine virtuelle Java adéquate.
Java (technique)Java est une technique informatique développée initialement par Sun Microsystems puis acquise par Oracle à la suite du rachat de l'entreprise. Défini à l'origine comme un langage de programmation, Java a évolué pour devenir un ensemble cohérent d'éléments techniques et non techniques.
Java version historyThe Java language has undergone several changes since JDK 1.0 as well as numerous additions of classes and packages to the standard library. Since J2SE 1.4, the evolution of the Java language has been governed by the Java Community Process (JCP), which uses Java Specification Requests (JSRs) to propose and specify additions and changes to the Java platform. The language is specified by the Java Language Specification (JLS); changes to the JLS are managed under JSR 901.
Java MEJava Platform, Micro Edition, ou Java ME (anciennement Java 2 Platform, Micro Edition, ou J2ME), est une spécification de la plate-forme Java d'Oracle, destinée typiquement aux applications pour systèmes embarqués et mobiles (microcontrôleur, capteur, passerelle, smartphone, assistant personnel numérique, décodeur TV, imprimante). Java ME est né en 1999, de la volonté de Sun de structurer ses différentes plateformes, et notamment Java Card, PersonnalJava et EmbeddedJava.
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.
Java syntaxThe syntax of Java is the set of rules defining how a Java program is written and interpreted. The syntax is mostly derived from C and C++. Unlike in C++, in Java there are no global functions or variables, but there are data members which are also regarded as global variables. All code belongs to classes and all values are objects. The only exception is the primitive types, which are not represented by a class instance for performance reasons (though can be automatically converted to objects and vice versa via autoboxing).
Abstraction (informatique)En informatique, le concept d'abstraction identifie et regroupe des caractéristiques et traitements communs applicables à des entités ou concepts variés ; une représentation abstraite commune de tels objets permet d'en simplifier et d'en unifier la manipulation. thumb|upright=1.4|Différentes couches de logiciel, partant d'en bas, le matériel est programmé en langage binaire, via un firmware, qui permet une abstraction pour le noyau, puis lui même pour le système d'exploitation, qui a son tour permet une abstraction pour les applications.
TraductologieLa traductologie, en tant que science, étudie le processus cognitif et les processus linguistiques inhérents à toute reproduction (traduction) orale, écrite ou gestuelle, vers un langage, de l'expression d'une idée provenant d'un autre langage (signes vocaux (parole), graphiques (écriture) ou gestuels). Quand ce travail ne porte pas sur des textes, on parle aussi de « transposition intersémiotique » ou « transmutation » (Jakobson).
GCJGCJ (GNU Compiler for Java) était le compilateur Java du projet GNU, sous licence libre. Il a été un des composants de GCC de la version 3 jusqu'à la version 6, avant d'en être retiré à partir de la version 7. Contrairement au compilateur du SDK Java de Sun Microsystems produisant exclusivement du bytecode Java, gcj opte pour une approche traditionnelle en produisant du code natif pour l'architecture matérielle. De plus GCJ est également capable de fonctionner comme un compilateur Java classique en produisant du bytecode, et permet également de transformer du bytecode vers du code natif.
Traduction littéraleLa traduction littérale, la traduction directe ou la traduction mot à mot est la traduction d'un texte d'une langue à une autre, un mot à la fois . Dans le cas des textes sacrés, il y a eu des tentatives de traductions littérales par souci d'authenticité et de fidélité aux textes originaux. C'est par exemple le cas de la traduction littérale de la Bible vers l'anglais à partir des textes originaux hébreux et grecs publiée en 1862 par le bibliste autodidacte écossais (1822–1888).
Interactions homme-machinethumb|Personne plongée dans la réalité virtuelle grâce à un visiocasque et un gant électronique. thumb|L'interface homme-machine d'un des ordinateurs de bord des missions Apollo. L'interaction Homme-machine (ou interaction humain-machine), appelée IHM, s’intéresse à la conception et au développement de systèmes interactifs en prenant en compte ses impacts sociétaux et éthiques. Les humains interagissent avec les ordinateurs qui les entourent et cette interaction nécessite des interfaces qui facilitent la communication entre l'humain et la machine.
Traduction automatiqueLa traduction automatique désigne la traduction brute d'un texte entièrement réalisée par un ou plusieurs programmes informatiques. Dans le cas de la traduction d'une conversation audio, en direct ou en différé, on parle de transcription automatique. Un traducteur humain n’intervient pas pour corriger les erreurs du texte durant la traduction, mais seulement avant et/ou après. On la distingue de la traduction assistée par ordinateur où la traduction est en partie manuelle, éventuellement de façon interactive avec la machine.
Langage de programmation de haut niveauEn programmation informatique, un langage de programmation à haut niveau d'abstraction généralement appelé langage de haut niveau est un langage de programmation orienté autour du problème à résoudre, qui permet d'écrire des programmes en utilisant des mots usuels des langues naturelles (très souvent de l'anglais) et des symboles mathématiques familiers. Un langage de haut niveau fait abstraction des caractéristiques techniques du matériel utilisé pour exécuter le programme, tels que les registres et les drapeaux du processeur.
Programmation orientée composantthumb|Représentation graphique de composants informatiques. La programmation orientée composant (POC) consiste à utiliser une approche modulaire de l'architecture d'un projet informatique, ce qui permet d'assurer au logiciel une meilleure lisibilité et une meilleure maintenance. Les développeurs, au lieu de créer un exécutable monolithique, se servent de briques réutilisables. La POC n'est pas sans similitudes avec la POO, puisqu'elle revient à utiliser une approche objet, non pas au sein du code, mais au niveau de l'architecture générale du logiciel.
Traduction assistée par ordinateurLa traduction assistée par ordinateur ou TAO (en anglais, computer-aided translation ou CAT) est un domaine qui est à cheval entre la traduction et l’informatique. Elle est un sous-domaine de la traductique, qui regroupe l'ensemble des outils informatiques utilisées par un traducteur (traitement de textes, outils terminologiques, traduction automatique...). Elle ne doit pas être confondue avec la traduction automatique par ordinateur : dans la traduction assistée par ordinateur, c’est bien un humain qui traduit, mais avec un soutien informatique pour lui faciliter la tâche.
Mémoire de traductionUne mémoire de traduction est une base de données contenant des segments de texte ainsi que l'équivalent de ces segments dans une autre langue. Elle permet de stocker des segments de phrase et de les réutiliser. On parle dans ce cas de traduction assistée par ordinateur (ou TAO) plutôt que de traduction automatique, expression généralement utilisée pour définir les logiciels qui ne nécessitent pas l'intervention de traducteurs pour traduire le texte, mais qui sont toutefois beaucoup plus approximatifs.
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).