Est-ce que des langues comme par ex. Ruby (si vous exécutez l'IRM, je veux dire pas compilé avec le code octet) s'exécute réellement analysé chaque fois qu'une exécution, par exemple, d'une méthode ou d'un corps de boucle est nécessaire? Je veux dire, pour exécuter une boucle, vous devez analyser son corps N fois?Qu'est-ce que cela signifie pour une langue d'être «interprétée»?
Je viens toujours pensé que tous ces programmes sont en cours d'analyse une fois à l'amorçage, transformé dans un arbre de déclarations « fortement typé », etc. Est-ce vrai?
« ils utilisent une représentation intermédiaire (vous pouvez le voir bien quand vous voulez écrire C-extensions pour elle) » - l'hypothèse où il est stocké en mémoire, ce qui pourrait cette représentation se ressemblent? – Bubba88
Pour l'implémentation originale écrite en C, il s'agit d'une série de structures appelée "VALUE". Voici un petit aperçu: http://www.rubyinside.com/how-to-create-a-ruby-extension-in-c-in-under-5-minutes-100.html – LukeN
"Tout en n'utilisant pas bytecode dans le implémentation originale (ou ont-ils déjà migré?) "L'interpréteur officiel de ruby utilise le bytecode depuis la version 1.9. – sepp2k