soit générer un bytecode destiné à une VM spécifique (le code est portable, il "suffit" que la VM ait été portée sur la plateforme, comme d'habitude)
Le compilateur ocamlc génère effectivement du bytecode pour une VM qui est effectivement écrite en C, et donc portable sur n'importe quelle plateforme. Il a même été écrit une VM sur PIC18F
De ce que j'ai compris, générer du C à partir d'OCaml est compliqué de par des problèmes de différences de sémantiques entre le OCaml et le C. Mais d'autres ici t'expliqueront ça surement bien mieux que moi.
Il a effectivement existé des tentatives d'écrire un backend LLVM, mais les derniers travaux datent d'il y a presque 10 ans. Pourquoi cela n'a pas été continué ?
Dommage, Haskell l'utilise et cela permettrait certainement des optimisations et un fort accroissement d'architectures utilisables.
« Il n’y a pas de choix démocratiques contre les Traités européens » - Jean-Claude Junker
[^] # Re: Bytecode VS natif
Posté par Ontologia (site web personnel) . En réponse à la dépêche OCaml en 2021. Évalué à 5.
De ce que j'ai compris, générer du C à partir d'OCaml est compliqué de par des problèmes de différences de sémantiques entre le OCaml et le C. Mais d'autres ici t'expliqueront ça surement bien mieux que moi.
Il a effectivement existé des tentatives d'écrire un backend LLVM, mais les derniers travaux datent d'il y a presque 10 ans. Pourquoi cela n'a pas été continué ?
Dommage, Haskell l'utilise et cela permettrait certainement des optimisations et un fort accroissement d'architectures utilisables.
« Il n’y a pas de choix démocratiques contre les Traités européens » - Jean-Claude Junker