Par ailleurs, la phrase sur java parle bien d'une JVM qui comporte un runtime, ce qui n'implique absolument pas qu'il existe des VM sans runtime
Attention on va rentrer dans la définition de runtime, et j'ai jamais dis que y'avait des implémentations de JVM sans runtime, bien au contraire :)
Pour moi le runtime c'est le code non écrit par l'utilisateur qui permet à l'exécution de rendre l'ensemble des services/comportement attendus de la VM définie par le langage : initiatilisation, allocation, GC, reflection, etc. A moins d'utiliser un langage d'assembleur, il y a toujours un runtime, quelque soit le langage.
ta phrase ne montre selon moi pas grand chose.
La phrase montre clairement qu'il font la distinction entre le runtime de la JVM et le jeu d'instruction de la JVM. Pour eux la JVM existe bien et ne représente pas le runtime : le runtime est une composante permettant d'implémenter la JVM.
Cette page http://en.wikipedia.org/wiki/Comparison_of_application_virtu(...) montre également que pour eux la notion de VM existe indépendamment de la technique d'implémentation, il font même un tableau comparatif qui montre qu'il y a différente techniques d'implémentation, comme quoi la notion de VM ne se limite pas à la notion de runtime avec interpréteur/JITeur. Pour eux quand il y a pré-compilation n'enlève en rien la définition de VM (alors que pour toi quand y'a AOT y'a plus de VM).
Sinon tu l'as proposé, il y a la notionde machine abstraite, et là encore wikipedia me rejoint : http://en.wikipedia.org/wiki/Abstract_machine
"An abstract machine implemented as a software simulation, or for which an interpreter exists, is called a virtual machine."
Une machine virtuelle EST une machine abstraite dont la particularité est qu'il en existe une implémentation technique (la notion de machine abstraite étant à la base une notion théorique).
[^] # Re: Surprise
Posté par TImaniac (site web personnel) . En réponse au journal Lisaac: sorti de la 0.39beta. Évalué à 2.
Attention on va rentrer dans la définition de runtime, et j'ai jamais dis que y'avait des implémentations de JVM sans runtime, bien au contraire :)
Pour moi le runtime c'est le code non écrit par l'utilisateur qui permet à l'exécution de rendre l'ensemble des services/comportement attendus de la VM définie par le langage : initiatilisation, allocation, GC, reflection, etc. A moins d'utiliser un langage d'assembleur, il y a toujours un runtime, quelque soit le langage.
ta phrase ne montre selon moi pas grand chose.
La phrase montre clairement qu'il font la distinction entre le runtime de la JVM et le jeu d'instruction de la JVM. Pour eux la JVM existe bien et ne représente pas le runtime : le runtime est une composante permettant d'implémenter la JVM.
Cette page http://en.wikipedia.org/wiki/Comparison_of_application_virtu(...) montre également que pour eux la notion de VM existe indépendamment de la technique d'implémentation, il font même un tableau comparatif qui montre qu'il y a différente techniques d'implémentation, comme quoi la notion de VM ne se limite pas à la notion de runtime avec interpréteur/JITeur. Pour eux quand il y a pré-compilation n'enlève en rien la définition de VM (alors que pour toi quand y'a AOT y'a plus de VM).
Sinon tu l'as proposé, il y a la notionde machine abstraite, et là encore wikipedia me rejoint : http://en.wikipedia.org/wiki/Abstract_machine
"An abstract machine implemented as a software simulation, or for which an interpreter exists, is called a virtual machine."
Une machine virtuelle EST une machine abstraite dont la particularité est qu'il en existe une implémentation technique (la notion de machine abstraite étant à la base une notion théorique).