Le C, C++, Basic: Compilé
Java: Machine virtuelle (la JVM) avec compilation JIT du bytecode
Javascript: Interprété, compilation JIT (just in time)
GM: Machine virtuelle avec interpretation du bytecode
Donc en gros, un langage compilé y aucune surcouche d’interprétation, vu que le code deviens natif (donc pleine puissance).
Une machine virtuelle JITed, y a qu'une surcouche d’interprétation, plutôt légère, elle va traduire un bytecode (semblant d'assembleur simplifié) en code machine. Ce qui fait de java un langage semi compilé, et plutôt rapide.
L'interprété JITed, qui lis le code a la volée et le transforme en code machine, la on a 2 surcouches d'un coup on peut dire, vu qu'il faut passer par un lexer (analyse et découpage des mots clés etc), un parseur (création d'un arbre de syntaxe abstraite / AST), puis qu'il faut convertir l'AST en code machine.
GM c'est une compilation script GML => Bytecode, mais ensuite il n'utilise plus du tout l’intérêt de la forme bytecode car c'est de l’interprétation simple. A aucun moment on passe par du code machine.
Bon après faut se dire que c'était encore pire avant, vu qu'il interprétait directement le GML
Mais ouai un petit coup de compilation JIT ça permettrait d'avoir de bien meilleurs perfs.
Le soucis c'est qu'une VM du genre pèse déjà bien plus lourd, est plus dure a porter si on utilise pas un JITer portable, puis c'est pas forcement simple a intégrer non plus...