Comment Java est un langage indépendant de la plate-forme
Les programmes informatiques sont très étroitement liés à un matériel et à un système d'exploitation spécifiques. Par exemple, les applications Windows ne peuvent pas fonctionner sur le système d'exploitation Mac. Les applications Mac ne peuvent pas fonctionner sur le système d'exploitation Android, etc.
Certaines applications sont communes à tous les systèmes d'exploitation, comme MS Word, cela devrait-il donc être écrit séparément pour tous les systèmes d'exploitation ?
Pour faire face à cette diversité de plates-formes, ces applications doivent être écrites indépendamment pour toutes les plates-formes. Java permet d'écrire des applications indépendamment du matériel et des systèmes d'exploitation. Ainsi, on l'appelle un langage de programmation indépendant de la plate-forme.
La signification de plate-forme indépendante est que le code compilé Java (code d'octet) peut s'exécuter sur tous les systèmes d'exploitation.
Un programme est écrit dans un langage qui est un langage lisible par l'homme. Il peut contenir des mots, des phrases, etc. que la machine ne comprend pas. Pour que le code source soit compris par la machine, il doit être dans un langage compris par les machines, généralement un langage de niveau machine. Alors, voici le rôle d'un compilateur. Le compilateur convertit le langage de haut niveau (langage humain) dans un format compris par les machines. Par conséquent, un compilateur est un programme qui traduit le code source d'un autre programme d'un langage de programmation en code exécutable.
Ce code exécutable peut être une séquence d'instructions machine exécutable directement par le CPU, ou il peut s'agir d'une représentation intermédiaire interprétée par une machine virtuelle. Cette représentation intermédiaire en Java est laCode d'octet Java.
· Qu'est-ce qu'une plate-forme et qu'est-ce qu'un langage indépendant de la plate-forme ?
· Compilation d'un code
· Comment un programme s'exécute-t-il en JAVA ?
· JVM (Java Virtual Machine)
· Quel rôle la compilation et l'interprétation jouent-elles dans l'indépendance de la plate-forme ?
· Comment Java fournit-il l'indépendance de la plate-forme ?
· Pourquoi Java n'est-il pas complètement indépendant de la plate-forme ?
· Conclusion
Qu'est-ce qu'une plate-forme et qu'est-ce qu'un langage indépendant de la plate-forme ?
La plate-forme peut être définie comme une combinaison distincte de matériel, de système d'exploitation et de logiciel qui fournit un environnement pour exécuter des programmes .
L'indépendance de la plate-forme fait référence à l'indépendance du programme par rapport au système d'exploitation du système. Il adopte la méthodologie «Write Once Run Anywhere (WORA)».
Compiler un code
Chaque fois que nous écrivons du code, nous adhérons à la syntaxe d'un langage de programmation, qui est généralement lisible. Quelques mots, noms de variables, phrases, noms de méthodes, etc. sont inclus. Tous sont considérés comme de la littérature que les humains peuvent lire et comprendre.
En conséquence, un ordinateur exécute un compilateur pour transformer le code source en code lisible par machine, également appelé langage au niveau machine. Le compilateur crée le code au niveau de la machine dans un certain format afin que le processeur puisse facilement le comprendre et l'exécuter sans erreur.
À moins que les deux ordinateurs ne fonctionnent sur le même système d'exploitation, nous ne pouvons pas exécuter de code qui a été développé sur une machine sur une autre lorsqu'un langage au niveau de la machine diffère selon chaque système d'exploitation. De nombreux développeurs et programmeurs pensent que c'est inacceptable. Cependant, Java simplifie les choses et inclut un correctif pour cela.
Comment un programme s'exécute-t-il en JAVA ?
En Java, le compilateur convertit le programme en bytecode, qui n'est pas du code exécutable. La JVM (Java Virtual Machine) exécute alors le bytecode lors de l'exécution. Le code source Java est compilé en bytecode lorsque nous utilisons le compilateur javac .
Le bytecode résultant n'est pas exécutable par la machine et n'importe quelle autre plate-forme ou système d'exploitation peut l'exécuter. mais il nécessite un interpréteur pour fonctionner sur un ordinateur. Lorsque nous exécutons son programme ou son fichier, nous obtenons un fichier .class , qui est un fichier non exécutable. La JVM sert d'interpréteur et, par conséquent, elle exécute le Bytecode. JVM est sans aucun doute indépendant de la plate-forme. Semblable à la façon dont cela varie en fonction de l'environnement. Par exemple, MAC et Linux ont une JVM différente de Windows. Il prend en charge la portabilité comme l'une de ses principales caractéristiques puisque le bytecode portable de son code le rend indépendant de la plate-forme.
Le bytecode est enregistré sur le disque avec l'extension de fichier .class . Lorsque le programme doit être exécuté, le bytecode est converti à l'aide du compilateur juste-à-temps ( JIT ). Le résultat est un code machine qui est ensuite introduit dans la mémoire et exécuté.
Le code Java doit être compilé deux fois pour être exécuté :
- Les programmes Java doivent être compilés en bytecode.
- Lorsque le bytecode est exécuté, il doit être converti en code machine.
Le compilateur crée un fichier OS-dependent.exe lorsque C ou C++ est utilisé (ces langages ne sont pas indépendants de la plate-forme). Ce fichier.exe ne s'exécutera pas lorsque nous essaierons de l'exécuter sur un système d'exploitation différent car il dépend de ce système d'exploitation et n'est pas compatible avec lui.
JVM (machine virtuelle Java)
La JVM, un composant du compilateur Java, transforme les fichiers .java en fichiers .class. La fonction clé dans le code source est appelée JVM lorsque nous compilons Java Code.
JVM (Java Virtual Machine) agit comme un moteur d'exécution pour exécuter des applications Java. La JVM est celle qui appelle en fait la méthode principale présente dans un code java. JVM fait partie de JRE (Java Runtime Environment).
Les applications Java sont appelées WORA (Write Once Run Anywhere). Cela signifie qu'un programmeur peut développer du code Java sur un système et peut s'attendre à ce qu'il s'exécute sur n'importe quel autre système compatible Java sans aucun ajustement. Tout cela est possible grâce à JVM.
Lorsque nous compilons un fichier .java , les fichiers .class (contient du code octet) avec les mêmes noms de classe présents dans le fichier .java sont générés par le compilateur Java. Ce fichier .class passe par différentes étapes lorsque nous l'exécutons. Ces étapes décrivent ensemble l'ensemble de la JVM.
En Java, le point principal ici est que la JVM dépend du système d'exploitation - donc si vous utilisez Mac OS X, vous aurez une JVM différente de celle si vous utilisez Windows ou un autre système d'exploitation. Ce fait peut être vérifié en essayant de télécharger la JVM pour votre machine particulière - en essayant de la télécharger, vous recevrez une liste de JVM correspondant à différents systèmes d'exploitation, et vous choisirez évidemment la JVM ciblée pour le système d'exploitation qui tu cours. Nous pouvons donc conclure que JVM dépend de la plate-forme et c'est la raison pour laquelle Java est capable de devenir "Platform Independent".
Les points importants:
- Dans le cas de Java, c'est la magie du Bytecode qui le rend indépendant de la plate-forme .
- Cela s'ajoute à une caractéristique importante du langage JAVA appelée portabilité . Chaque système possède sa propre JVM qui s'installe automatiquement lorsque le logiciel jdk est installé. Pour chaque système d'exploitation, une JVM distincte est disponible, capable de lire le fichier .class ou le code d'octet.
- Un point important à noter est que si JAVA est un langage indépendant de la plate-forme, la JVM dépend de la plate-forme. Différentes JVM sont conçues pour différents systèmes d'exploitation et le code d'octet peut s'exécuter sur différents systèmes d'exploitation.
Pour atteindre l'indépendance de la plate-forme, il combine à la fois la compilation et l'interprétation. Lorsqu'un programme est compilé en Java, il est transformé en bytecode, souvent appelé fichier .class, plutôt qu'en code machine. Maintenant, ce bytecode est quelque chose qui le distingue du code machine avec ses fonctionnalités puisqu'il peut être déplacé vers/portable vers une autre plate-forme, mais Java ne le peut pas. Ce bytecode peut être exécuté sur une machine virtuelle Java.
Comment Java fournit l'indépendance de la plate-forme ?
Dans la plupart des langages de programmation, un compilateur (ou interpréteur) génère du code qui peut s'exécuter sur une machine cible spécifique . Par exemple, si vous compilez un programme C++ sur une machine Windows, le fichier exécutable peut être copié sur n'importe quelle autre machine mais il ne fonctionnera que sur d'autres machines Windows mais jamais sur une autre machine (par exemple, un Mac ou une machine Linux). Une plate-forme est déterminée par la machine cible (avec son système d'exploitation). Pour les langages antérieurs, les concepteurs de langages devaient créer une version spécialisée du compilateur (ou de l'interpréteur) pour chaque plate-forme. Si vous écriviez un programme que vous vouliez rendre disponible sur plusieurs plates-formes, vous, en tant que programmeur, auriez à faire un peu de travail supplémentaire. Vous devrez créer plusieurs versions de votre code source pour chaque plate-forme.
Java a réussi à éliminer le problème de plate-forme pour les programmeurs de haut niveau (comme vous) car il a réorganisé la séquence compile-link-execute à un niveau sous-jacent du compilateur. Les détails sont compliqués mais, essentiellement, les concepteurs du langage Java ont isolé les problèmes de programmation qui dépendent de la plate-forme et ont développé des moyens de bas niveau pour faire référence de manière abstraite à ces problèmes. Par conséquent, le compilateur Java ne crée pas de fichier objet, mais à la place, il crée un fichier de bytecode qui est, essentiellement, un fichier objet pour une machine virtuelle . En fait, le compilateur Java est souvent appelé le compilateur JVM (pour Java Virtual Machine).
Par conséquent, vous pouvez écrire un programme Java (sur n'importe quelle plate-forme) et utiliser le compilateur JVM (appelé javac) pour générer un fichier bytecode (les fichiers bytecode utilisent l'extension .class). Ce fichier bytecode peut être utilisé sur n'importe quelle plate-forme (qui a installé Java). Cependant, le bytecode n'est pas un fichier exécutable. Pour exécuter un fichier de bytecode, vous devez en fait invoquer un interpréteur Java (appelé java). Chaque plate-forme possède son propre interpréteur Java qui résoudra automatiquement les problèmes spécifiques à la plate-forme qui ne peuvent plus être différés. Lorsque des opérations spécifiques à la plate-forme sont requises par le bytecode, l'interpréteur Java se lie au code approprié spécifique à la plate-forme.
Comme pour les langages interprétés, il est possible d'accélérer l'exécution des programmes Java en compilant le bytecode dans un exécutable ; l'inconvénient est que ces exécutables ne fonctionneront que sur la plate-forme sur laquelle ils ont été créés.
Pourquoi Java n'est-il pas complètement indépendant de la plate-forme ?
Il est clair que Java ne peut pas s'exécuter sur une plate-forme qui n'a pas de JVM. Ainsi, au sens le plus littéral du terme, Java n'est pas indépendant de la plate-forme. Mais en même temps, votre définition de l'indépendance de la plate-forme n'est pas utile. Aucun langage possible ne pourrait jamais être vraiment indépendant de la plate-forme, car certains aspects de la plate-forme devraient être capables d'analyser le langage. Et compte tenu de toutes les plates-formes possibles, certaines ne seront pas nécessairement en mesure de l'analyser.
Ainsi, étant donné que de très nombreuses plates-formes exécutent une JVM et que le code Java peut être exécuté sur n'importe quelle JVM ayant la même signification, Java dépend de la plate-forme.
Conclusion
Java est l'un des langages de programmation les plus connus et les plus utilisés. C'est un langage de programmation indépendant de la plate-forme . Java ne nécessite pas la réécriture de l'intégralité du code pour toutes les différentes plates-formes. Il prend en charge l'indépendance de la plate-forme à l'aide du bytecode Java et de la machine virtuelle Java . Le compilateur Java javac convertit le code du programme en code d'octet. Ce code d'octet est indépendant de la plate-forme et peut s'exécuter sur n'importe quel système d'exploitation JVM. JVM interprète le code d'octet en code machine et le programme est exécuté.
Merci d'avoir lu. Bon apprentissage
Soutenez notre publication en la suivant
Comment concilier un emploi à temps plein et des études à temps partiel ? Lancement de votre propre place de marché NFT avec des solutions de plate-forme NFT en marque blanche Java Facultatif et l'un ou l'autre : gestion des valeurs nulles et représentation de deux valeurs possibles Comment tirer le meilleur parti de votre vie : un guide personnel Callable vs Runnable vs Future in Java Spring 3.0 and its Features Most Question d'entrevue basée sur le flux Java8 fréquemment posée - Partie finale Top 8 des lois de «Les 48 lois du pouvoir» de Robert Greene: Romarin - Comment le planter et quels avantages il a![Qu'est-ce qu'une liste liée, de toute façon? [Partie 1]](https://post.nghiatu.com/assets/images/m/max/724/1*Xokk6XOjWyIGCBujkJsCzQ.jpeg)



































