Andro¨ıd
Cours 2 : The Java VM Specification
Damien MASSON
http://igm.univ-mlv.fr/~masson/Teaching/Android/
28 f´evrier 2011
2/27
Buts du cours et R´ef´erences
Ce cours pr´esente le fonctionnement d’une machine virtuelle Java
telle que d´ecrit par la sp´ecification Java. Le prochain cours
pr´esentera la machine virtuelle Dalvik choisie par Google pour sa
plateforme Andro¨ıd.
R´ef´erences :
La sp´ecification de la JVM Java
(http://java.sun.com/docs/books/jvms) ;
Les cours de Yann R´egis-Gianas
(http://www.pps.jussieu.fr/~yrg/index.php), dont
quelques transparents ont ici ´et´e honteusement plagi´es ;
Wikipedia et internet (exemple de ce qu’il ne faut pas mettre
dans un rapport) ;
Des livres (voir plus loin).
3/27
Qu’est-ce que Java ?
C’est un ensemble de sp´ecifications :
une pour le langage de programmation
http://java.sun.com/docs/books/jls/
une pour le bytecode et la machine virtuelle
http://java.sun.com/docs/books/jvms
d’autres pour plein de choses (ex. RTSJ pour le temps r´eel,
voir le site des JSR)
plus des API.
Ce n’est pas :
l’implantation de Sun/Oracle cad Hotspot (mais qui respecte
la sp´ecification)
Dalvik n’est donc pas une JVM Java, puisque ne respecte pas la
sp´ecification pour le bytecode et la JVM. Par contre elle interpr`ete
du bytecode (pas Java) qui peut ˆetre obtenu par compilation `a
partir d’un programme Java.
4/27
Qu’est-ce qu’une Machine Virtuelle ?
“programmer”, c’est r´esoudre un probl`eme par des calculs
il existe de nombreux mod`eles de calculs :
Digitals/Analogiques,
S´equentiels/Parall`eles,
Automatiques/Supervis´es,
Fonctionnels/Imp´eratifs/Logiques/Concurrent...
pour chaque mod`ele de calcul, il existe une machine abstraite
qui d´ecrit son environnement d’´evaluation
la plupart des machine abstraites n’ont pas de r´ealisation
physique (exception : la machine de Turing)
mais un programme peut ´emuler une machine abstraite : ce
programme est une machine virtuelle
5/27
Digressions sur les machines de Turing
Une machine de Turing est un mod`ele abstrait du fonctionnement
des appareils m´ecaniques de calcul (1936).
La mise en œuvre concr`ete d’une machine de Turing est r´ealis´ee
avec les ´el´ements suivants :
Une bande (infinie) de cases contenant des symboles.
Une tˆete de lecture en face d’une case
Un ´etat courant (p.ex. un num´ero d’´etat)
Un programme (fini), qui `a tout ´etat et symbole lu, associe un
nouvel ´etat,
un symbole `a ´ecrire, et un mouvement (G/D) de la tˆete de
lecture
1 / 30 100%
La catégorie de ce document est-elle correcte?
Merci pour votre participation!

Faire une suggestion

Avez-vous trouvé des erreurs dans linterface ou les textes ? Ou savez-vous comment améliorer linterface utilisateur de StudyLib ? Nhésitez pas à envoyer vos suggestions. Cest très important pour nous !