CONNEXION
  • RetourJeux
    • Sorties
    • Hit Parade
    • Les + populaires
    • Les + attendus
    • Soluces
    • Tous les Jeux
    • Gaming
  • RetourActu Gaming
    • News
    • Astuces
    • Tests
    • Previews
    • Toute l'actu gaming
  • RetourBons plans
    • Bons plans
    • Bons plans Smartphone
    • Bons plans Hardware
    • Bons plans Image et Son
    • Bons plans Amazon
    • Bons plans Cdiscount
    • Bons plans Decathlon
    • Bons plans Fnac
    • Tous les Bons plans
  • RetourJVTech
    • Actus High-Tech
    • Intelligence Artificielle
    • Smartphones
    • Mobilité urbaine
    • Hardware
    • Image et son
    • Tutoriels
    • Tests produits High-Tech
    • Guides d'achat High-Tech
    • JVTech
  • RetourCulture
    • Actus Culture
    • Culture
  • RetourVidéos
    • A la une
    • Gaming Live
    • Vidéos Tests
    • Vidéos Previews
    • Gameplay
    • Trailers
    • Chroniques
    • Replay Web TV
    • Toutes les vidéos
  • RetourForums
    • Hardware PC
    • PS5
    • Switch 2
    • Xbox Series
    • Switch
    • Pokemon pocket
    • FC 25 Ultimate Team
    • League of Legends
    • Tous les Forums
  • PC
  • PS5
  • Xbox Series
  • Switch 2
  • PS4
  • One
  • Switch
  • iOS
  • Android
  • MMO
  • RPG
  • FPS
En ce moment Genshin Impact Valhalla Breath of the wild Animal Crossing GTA 5 Red dead 2
Liste des sujets

Compiler en asm ou bytecode?

pierre135b
pierre135b
Niveau 10
01 octobre 2015 à 21:57:31

Bonjour,
Pour la création d'un language, le mieux est de compiler en :

  • Assembleur x86
  • Bytecode Java
  • un Bytecode custom concu pour une vm codée en tandem avec le compilo.

Je suis indécis, et je débute aussi, l'asm m'as l'air tres compliqué et le bytecode java m'as l'air difficile a apprendre (y'a pas de tuto, si?)

godrik
godrik
Niveau 30
02 octobre 2015 à 00:26:25

Ca depend completement du but en effet. Un model commun ces temps ci est de compiler vers un autre langage. Par exemple, ton compilateur genere du C. Et apres tu compiles le C avec gcc (ou whatever).

pierre135b
pierre135b
Niveau 10
02 octobre 2015 à 07:41:26

Bah le bytecode java m'as l'air d'être le mieux et la meilleure alternative à l'asm, donc vous auriez des tutos pour l'un des deux ? :p
Et le bytecode custom, spa une bonne idée?

Message édité le 02 octobre 2015 à 07:43:15 par pierre135b
Caletlog
Caletlog
Niveau 10
02 octobre 2015 à 13:01:41

La raison principale qui devrait te pousser à générer du bytecode vers une VM existante, c'est surtout les performances générales et le support d'implémentation déjà créé. Tu pourras jamais égaler, pour un langage générique de programmation, le niveau de détail et d'optimisation qui a été taillé, à coup de millions de $$$ et d'armadas d'ingénieurs, dans des VM comme la JVM, CLR, BEAM ou LLVM.

Ceci étant dit, les avantages annexes sont aussi nombreux ; écrire du bytecode de VM reste du bytecode encore assez haut-niveau ; c'est bien plus facile que de générer de l'asm. Et le bytecode d'une VM donnée est portable, là où tu devras apprendre et porter ton code en ASM pour chaque cible.

Le bytecode custom c'est la moins bonne idée du tas pour un débutant (sauf si tu veux apprendre cette facette-là) parce que tu dois définir un langage assembleur, généralement stack-based, pour ta VM, ainsi que le code permettant de l'interpréter, avec toutes les conventions à respecter et ce que ça implique. C'est très clairement le plus gros travail, pour un bénéfice pas très clair à ton niveau.

Pour le bytecode Java, au contraire, c'est un bytecode très lisible et bien plus haut niveau que de l'assembleur machine traditionnel. Tu peux te renseigner sur les specs officielles (https://docs.oracle.com/javase/specs/), ainsi que des livres écrits sur le sujet, comme http://www.amazon.com/Java-Virtual-Machine-Series/dp/1565921941, qui a notamment donné lieu au développement de Jasmin, un assembleur qui permet de générer du bytecode jvm avec un bytecode encore plus haut niveau.

pierre135b
pierre135b
Niveau 10
02 octobre 2015 à 16:38:14

J'ai déja fais un petit language assembleur tout simple, qui prenais des instructions style

ipush 55
ipush 2
mul
sto FF

En gros, ça ajoute 55, puis 2 dans le stack, ça les multiplies, et ça store le top du stack à l'adresse FF :hap:
J'avais bien aimé, c'était fun à faire je trouve.
Bref, je pense que je vais essayer d'apprendre cette facette la, donc peut être faire un émulateur, vous avez des tutos pour cela?

Message édité le 02 octobre 2015 à 16:38:22 par pierre135b
Sous forums
  • Aide à l'achat Mac
  • Création de Jeux
  • Linux
  • Création de sites web
  • Programmation
  • Internet
  • Steam Deck
  • Macintosh
  • Hardware
La vidéo du moment