2 votes

Pourquoi est-il possible de construire un langage personnalisé pour JVM, comme Groovy, Scala, Clojure, Kotlin ?

Ces langages diffèrent de Java de manière significative, comme le système OO, le système de types (le plus notable).

La vraie question est de savoir si la JVM garde la trace des objets sous le capot ? Existe-t-il un objet dans la JVM ? Les créateurs de ces langages ont-ils la responsabilité de les faire interopérer avec le monde Java, ou cela est-il réalisé "par défaut" ?

3voto

Ingo Points 21438

La vraie question est de savoir si la JVM garde la trace des objets sous le capot ?

Oui, c'est vrai. La collecte des déchets est la responsabilité de la JVM.

Y a-t-il un objet dans la JVM ?

Oui, il existe des codes d'octet pour créer des instances de classe. De même, la distribution dynamique des méthodes d'instance est effectuée par la JVM.

Les créateurs de ces langages ont-ils la responsabilité de les faire interopérer avec le monde Java, ou cela se fait-il "par défaut" ?

C'est un fruit à portée de main, et il serait stupide de ne pas le faire. De plus, tous les langages de la JVM ne réinventent pas la roue et se contentent d'utiliser les classes JRE lorsque cela est approprié. Cela inclut très probablement String, les types primitifs et leurs formes encadrées et les tableaux.

1voto

s1m0nw1 Points 21698

Tous les langages de la JVM se compilent en "Java Byte Code". En fait, la JVM n'a aucune idée du langage de programmation Java. La spécification JVM spécifie a " class fichier", qui doit répondre à certaines règles. Tant que vous fournissez des données conformes class créés par un compilateur, par exemple, votre code s'exécutera sur une JVM. C'est ce que fait Kotlin par exemple.

Prograide.com

Prograide est une communauté de développeurs qui cherche à élargir la connaissance de la programmation au-delà de l'anglais.
Pour cela nous avons les plus grands doutes résolus en français et vous pouvez aussi poser vos propres questions ou résoudre celles des autres.

Powered by:

X