Présentation

Article

1 - CONTEXTE

2 - ARCHITECTURE DE LA MACHINE

3 - CLASSES JAVA

  • 3.1 - Format du fichier compilé
  • 3.2 - Compatibilité binaire
  • 3.3 - Décompilateur
  • 3.4 - Chargement et édition des liens
  • 3.5 - Vérification du fichier compilé

4 - JEU D’INSTRUCTIONS/ SOURCE JAVA

5 - CONCLUSION ET PERSPECTIVES

| Réf : H1588 v1

Contexte
Machine virtuelle Java

Auteur(s) : Jean-Michel DOUIN

Date de publication : 10 août 2000

Pour explorer cet article
Télécharger l'extrait gratuit

Vous êtes déjà abonné ?Connectez-vous !

Sommaire

Présentation

Auteur(s)

  • Jean-Michel DOUIN : Docteur en informatique - Maître de conférences au Conservatoire national des arts et métiers (CNAM)

Lire cet article issu d'une ressource documentaire complète, actualisée et validée par des comités scientifiques.

Lire l’article

INTRODUCTION

La popularité du web a promu Java comme langage de programmation sur Internet. Ce succès vient principalement de l’intégration d’une machine virtuelle Java au sein de tout navigateur. Le code intermédiaire engendré par la compilation d’un code source Java est chargé et exécuté par la machine dans une fenêtre du navigateur. L’exécution du même code intermédiaire quelle que soit la plate-forme offre aux développeurs en Java une large diffusion de leurs programmes. La machine virtuelle et les librairies associées garantissent une exécution du code Java indépendante du système d’exploitation et d’une architecture matérielle. Les composantes de la machine virtuelle Java et le format du code intermédiaire permettent l’accès aux objets distants et la migration de codes à travers le réseau. Ces caractéristiques sont essentielles dans un environnement distribué et contribuent au succès actuel du langage et de la machine virtuelle. La machine est également intégrée au sein de systèmes embarqués, comme une plate-forme équipée d’un microcontrôleur avec peu de mémoire centrale.

La machine Java est un programme interprétant les instructions transmises par le réseau ou les instructions extraites d’un fichier local. Les avantages de cette solution éprouvée sont connus et multiples :

  • le code est portable quelle que soit la plate-forme, car il suffit que chaque plate-forme possède un interpréteur de ce code et les librairies d’accès aux ressources de la machine hôte ;

  • le code chargé peut être vérifié au chargement. La vérification du code est facilitée et primordiale dans un environnement ouvert comme Internet ;

  • le code est en général plus compact. L’architecture de la machine Java est de type machine à pile, les opérandes des instructions devenues implicites engendrent une taille de code moins importante qu’une machine traditionnelle à registres.

L’inconvénient majeur réside dans le surcoût en temps d’exécution dû à cette couche logicielle supplémentaire.

L’architecture de la machine est liée aux concepts de la programmation en langage orienté objet, mais la machine reste indépendante du langage de programmation. Le seul type en entrée admis par la machine est le type du fichier compilé. Le format de ce fichier a permis des extensions conséquentes du langage Java sans aucune modification de la machine.

Cet article présente une architecture synthétique de la machine, le format du fichier compilé et le jeu d’instructions. Le format du fichier compilé est détaillé et accompagné d’un exemple concret de code source Java. Les instructions de la machine sont regroupées par famille, leur description est associée aux codes sources Java les ayant engendrées, et les opérations sur la machine virtuelle sont également proposées.

Cet article est réservé aux abonnés.
Il vous reste 93% à découvrir.

Pour explorer cet article
Téléchargez l'extrait gratuit

Vous êtes déjà abonné ?Connectez-vous !


L'expertise technique et scientifique de référence

La plus importante ressource documentaire technique et scientifique en langue française, avec + de 1 200 auteurs et 100 conseillers scientifiques.
+ de 10 000 articles et 1 000 fiches pratiques opérationnelles, + de 800 articles nouveaux ou mis à jours chaque année.
De la conception au prototypage, jusqu'à l'industrialisation, la référence pour sécuriser le développement de vos projets industriels.

VERSIONS

Il existe d'autres versions de cet article :

DOI (Digital Object Identifier)

https://doi.org/10.51257/a-v1-h1588


Cet article fait partie de l’offre

Technologies logicielles Architectures des systèmes

(240 articles en ce moment)

Cette offre vous donne accès à :

Une base complète d’articles

Actualisée et enrichie d’articles validés par nos comités scientifiques

Des services

Un ensemble d'outils exclusifs en complément des ressources

Un Parcours Pratique

Opérationnel et didactique, pour garantir l'acquisition des compétences transverses

Doc & Quiz

Des articles interactifs avec des quiz, pour une lecture constructive

ABONNEZ-VOUS

Lecture en cours
Présentation

1. Contexte

1.1 Langage Java

La machine Java est une machine langage : les choix d’architecture, le jeu d’instructions reflètent les concepts du langage Java. Certaines caractéristiques du langage doivent être rappelées afin de mieux appréhender la machine virtuelle.

Nota :

cette présentation simplifiée des concepts est extraite de [1] et Langage Java.

  • Java est un langage de programmation orienté objet. Cette technique de programmation oriente le développement d’une application par les types de données utilisés. Les noms des types sont en général extraits du contexte du projet. Une classification de ces types de données analogue à la langue naturelle par la relation est-un est effectuée. L’héritage en programmation orientée objet propose une implémentation de cette relation est-un. Un type de données peut hériter d’un autre type, il possède alors en son nom les attributs et les propriétés du type hérité. Si on appelle le type hérité super-type, alors un objet du type est-un un objet du super-type. Chaque type de données est regroupé au sein d’une structure syntaxique appelée classe. Chaque classe possède des attributs ou champs d’instance et des propriétés ou méthodes. Les classes appartiennent à un graphe d’héritage. Un objet est une instance d’une classe.

  • Java est simple. Un ramasse-miettes dispense le programmeur de la gestion de la mémoire. Sa syntaxe est basée sur les langages C et C++. L’absence de pointeurs améliore nettement la lisibilité des codes sources.

  • Java est fortement typé. Les changements de type explicites sont vérifiés à l’exécution. L’affectation entre instances doit être effectuée entre deux instances liées entre elles par la relation d’héritage. Une exception est levée dans le cas contraire.

  • Java supporte la programmation distribuée. L’accès aux objets distants ainsi que la migration...

Cet article est réservé aux abonnés.
Il vous reste 93% à découvrir.

Pour explorer cet article
Téléchargez l'extrait gratuit

Vous êtes déjà abonné ?Connectez-vous !


L'expertise technique et scientifique de référence

La plus importante ressource documentaire technique et scientifique en langue française, avec + de 1 200 auteurs et 100 conseillers scientifiques.
+ de 10 000 articles et 1 000 fiches pratiques opérationnelles, + de 800 articles nouveaux ou mis à jours chaque année.
De la conception au prototypage, jusqu'à l'industrialisation, la référence pour sécuriser le développement de vos projets industriels.

Cet article fait partie de l’offre

Technologies logicielles Architectures des systèmes

(240 articles en ce moment)

Cette offre vous donne accès à :

Une base complète d’articles

Actualisée et enrichie d’articles validés par nos comités scientifiques

Des services

Un ensemble d'outils exclusifs en complément des ressources

Un Parcours Pratique

Opérationnel et didactique, pour garantir l'acquisition des compétences transverses

Doc & Quiz

Des articles interactifs avec des quiz, pour une lecture constructive

ABONNEZ-VOUS

Lecture en cours
Contexte
Sommaire
Sommaire

Cet article est réservé aux abonnés.
Il vous reste 93% à découvrir.

Pour explorer cet article
Téléchargez l'extrait gratuit

Vous êtes déjà abonné ?Connectez-vous !


L'expertise technique et scientifique de référence

La plus importante ressource documentaire technique et scientifique en langue française, avec + de 1 200 auteurs et 100 conseillers scientifiques.
+ de 10 000 articles et 1 000 fiches pratiques opérationnelles, + de 800 articles nouveaux ou mis à jours chaque année.
De la conception au prototypage, jusqu'à l'industrialisation, la référence pour sécuriser le développement de vos projets industriels.

Cet article fait partie de l’offre

Technologies logicielles Architectures des systèmes

(240 articles en ce moment)

Cette offre vous donne accès à :

Une base complète d’articles

Actualisée et enrichie d’articles validés par nos comités scientifiques

Des services

Un ensemble d'outils exclusifs en complément des ressources

Un Parcours Pratique

Opérationnel et didactique, pour garantir l'acquisition des compétences transverses

Doc & Quiz

Des articles interactifs avec des quiz, pour une lecture constructive

ABONNEZ-VOUS