Machines virtuelles  - Cours de Compilation Avancée (MI190)
46 pages
Français

Machines virtuelles - Cours de Compilation Avancée (MI190)

Le téléchargement nécessite un accès à la bibliothèque YouScribe
Tout savoir sur nos offres
46 pages
Français
Le téléchargement nécessite un accès à la bibliothèque YouScribe
Tout savoir sur nos offres

Description

Machines virtuellesCours de Compilation A vancée (MI190)Benjamin CanouUniversité Pierre et Maire CurieAnnée 2010/2011 – Semaine 2. . . . . .Machines virtuelles. . . . . .= L = B1. Un compilateur L ! L :A BI Un p rogramme écrit en langage L ,BI transfo rmant mon p rogramme en un équivalent en L .B2. Une machine virtuelle A p our ma machine B :I Un p rogramme écrit en langage L ,BI capable d’exécuter les p rogrammes en langage L .APrincip e général. .Machine A Machine BI . ILangage comp ris : L Langage comp ris : LA BI IImplantation : I Implantation : IA BJ’ai dans ma p o che :I un p rogramme en langage L AI une machine de t yp e BQue faire ?. . . . . .Princip e général. .Machine A Machine BI . ILangage comp ris : L Langage comp ris : LA BI IImplantation : I = L Implantation : I = A B BJ’ai dans ma p o che :I un p rogramme en langage L AI une machine de t yp e BQue faire ?1. Un compilateur L ! L :A BI Un p rogramme écrit en langage L ,BI transfo rmant mon p rogramme en un équivalent en L .B2. Une machine virtuelle A p our ma machine B :I Un p rogramme écrit en langage L ,BI capable d’exécuter les p rogrammes en langage L .A. . . . . .Machine virtuelle de plate-fo rme(Ce n’est pas le sujet de ce cours)Dans le cas général, il est trop difficile de recompiler.Une machine virtuelle est donc la seule p ossibilité.. .Machine PPC Machine x64.I ILangage comp ris : asm PPC Langage comp ris : asm x64I IImplantation : asm x86 ...

Sujets

Informations

Publié par
Nombre de lectures 83
Langue Français

Extrait

Machines virtuelles
Cours de Compilation Avance (MI190)
Benjamin Canou Universit Pierre et Maire Curie
Anne 2010/2011 – Semaine 2
Machines
virtuelles
LB
Langage compris : Implantation :IB
J’ai dans ma poche : un programme en langageLA une machine de type B Que faire ?
Machine B
Machine A
Langage compris :LA Implantation :IA
Principe gnral
terlxcuograesprnealmmseLe.AgngaIIIBL==IIIU.1alipmocnemcrgmalnnairetLA!LteurnproB:IUgrromeamntmanpmonartrofsegagI,BLmachinevLB.2.UneaveltnnenenuqiugrronpIUB:nehiacmamruopAelleutriedepabl,IcageLBnaagetlncirmaem
Principe gnral
II
Machine A Langage compris :LA Implantation :IA=LB
II
Machine B Langage compris :LB Implantation :IB
=
J’ai dans ma poche : Iun programme en langageLA Iune machine de type B Que faire ? 1. Un compilateurLA!LB: Un programme crit en langageLB, transformant mon programme en un quivalent enLB. 2. Une machine virtuelle A pour ma machine B : Un programme crit en langageLB, capable d’excuter les programmes en langageLA.
IIII
Machine virtuelle de plate-forme (Ce n’est pas le sujet de ce cours)
Dans le cas gnral, il est trop difficile de recompiler. Une machine virtuelle est donc la seule possibilit.
IIII
Machine PPC
gage compris : as
Langage compris : asm PPC Implantation : asm x86
II
Machine x64
Langage compris : asm x64 Implantation :
Autres noms :mulateur, simulateur, ... Exemples :QEMU, DOSBox, VirtualPC, ...

Machine virtuelle applicative
II
Machine ZAM (ocaml)
Langage compris : asm ZA
Langage compris : asm ZAM Implantation : asm x86
II
Machine x64
Langage compris : asm x64 Implantation :

Dans ce cas, le choix est dlibr : 1.On veut compiler un langage donn. 2.On prfre compiler vers un assembleur adapt. 3.On utilise une machine virtuelle pour l’excuter.
QUIZZ :Pourquoi ?
Machine virtuelle applicative
II
Machine ZAM (ocaml)
Langage compris : asm ZA
Langage compris : asm ZAM Implantation : asm x86
II
Machine x64
Langage compris : asm x64 Implantation :

Dans ce cas, le choix est dlibr : 1.On veut compiler un langage donn. 2.prfre compiler vers un assembleur adapt.On 3.On utilise une machine virtuelle pour l’excuter.
Mots-clefs :abstraction, portabilit,scurit, inter-oprabilit
Machine virtuelle applicative :abilportit
I
Exemples d’implantations de la machine virtuelle OCaml : ocamlrun :crite en C portable partout o un compilateur C est disponible obrowser :crite en JavaScript on peut excuter un programme caml dans un navigateur ocapic :crite en assembleur PIC un langage de haut niveau sur microcontroleurs
III
Implantations alternatives : OpenJDK :pour la JVM d’oracle Mono :pour la CLR
I
Machine virtuelle applicative :noitcartbsa
III
Modle smantique clair et fig : plus facile de thoriser, excutables plus durables, portabilit facile, y compris aux tiers.
III
Instructions de haut niveau : moins d tapes de compilation, support du langage!compilation plus simple, schma de compilation unique.
II
Machine virtuelle applicative :aribo-ptnreitli
III
Entre les langages : VB.Net peut appeler des fonctions F# dans la CLR. Entre les plate-formes : reprsentation spcifie des chaines, taille des entiers, etc. (ex : Sauvegarde sous Win/x86, relecture sous GNU/PPC). Entre les machines : primitives rseau spcifies
)
communication plus facile
Machine virtuelle applicative :scurit
IIII
Excution isole (sandboxing)
Assembleur typ
Vrification avant excution (bytecode verifier)
Instrumentation (traces, journalisation, etc.)
  • Univers Univers
  • Ebooks Ebooks
  • Livres audio Livres audio
  • Presse Presse
  • Podcasts Podcasts
  • BD BD
  • Documents Documents