Question

langues comme par exemple Do Ruby (en cas d'exécution d'IRM, je veux dire non compilé à byte-code) diriger effectivement analysée à chaque fois lors de l'exécution de, par exemple, le corps de la méthode ou la boucle est-il nécessaire? Je veux dire, pour exécuter une boucle, vous devez analyser son corps N fois?

Je viens toujours pensé que tous ces programmes sont en cours d'analyse une fois à l'amorçage, transformé en déclarations « fortement typé » arbre, etc. Est-ce vrai?

Était-ce utile?

La solution

Je vais être méchant maintenant et dire que presque tout le langage de programmation EVERY est interprétée, que ce soit un interprète logiciel (Ruby, Python, Java) ou matériel (C, C ++):)

Pour une vraie réponse, alors que je ne sais pas la mise en œuvre interne Ruby, je suis sûr que l'enfer ne pas analyser la déclaration maintes et maintes et maintes fois. Bien que ne pas utiliser bytecode dans la mise en œuvre d'origine (ou ont-ils migré déjà?), Ils utilisent une représentation intermédiaire (vous pouvez le voir bien quand vous voulez écrire C-extensions pour elle), ainsi que l'exécution de ces encore et encore.

Autres conseils

Interprété est un mot avec une définition très lâche. Même les instructions de code machine sont interprétées par le processeur.

En distinction générale a est faite entre les langues qui sont compilées avant leur exécution et les langues qui ne disposent pas d'un processus de compilation et sont exécutés dans un autre programme, appelé l'interprète. Ces derniers types de langues sont souvent appelés langues interprétées.

La ligne n'est pas clair dans certains cas:

  • Certaines langues peuvent être soit compilé ou interprété, par exemple PHP.
  • Certains code interprété peut être compilé lors de l'exécution en instructions machine natives ( compilation JIT ).
  • Certaines langues compilées peuvent avoir une fonctionnalité qui permet exec code à générer et exécuté à l'exécution, sans passer par le processus de compilation normale.
Licencié sous: CC-BY-SA avec attribution
Non affilié à StackOverflow
scroll top