Posté par gasche .
En réponse au journal Votre langage idéal ?.
Évalué à 5.
Dernière modification le 30 janvier 2012 à 11:26.
Non, je ne pense pas. Pour moi une implémentation qui compile à la volée est un compilateur (... à la volée). Note le choix du mot "implémentation" et pas "langage"; un langage n'est pas forcément défini par une implémentation unique, ça n'a pas de sens par exemple de dire que C est langage "interprété" parce qu'il existe des interpréteurs de C.
Littéralement un interpréteur est une implémentation qui exécute le programme directement en parcourant le code source, sans aucune étape de transformation intermédiaire. En pratique il y a toujours une phase de parsing voire de simplification et tu as donc une définition molle de "travaille sur une donnée qui a conservé la structure du programme initial". Toute phase de transformation globale qui change sa structure (pour la simplifier en général) est une forme de compilation.
Le terme "interpréter" a encore du sens quand on fait des sémantiques formelles de langages de programmation théoriques, où certaines sémantiques (sémantiques opérationnelles) sont clairement des "interprétations", et d'autres (exécution sur machines virtuelles, ou même certaines sémantiques dénotationnelles) des "compilations". Pour ce qui est des langages réels raisonnables, il faut l'éviter comme la peste car il est entouré de trop de bêtises.
[^] # Re: Mes idéaux
Posté par gasche . En réponse au journal Votre langage idéal ?. Évalué à 5. Dernière modification le 30 janvier 2012 à 11:26.
Non, je ne pense pas. Pour moi une implémentation qui compile à la volée est un compilateur (... à la volée). Note le choix du mot "implémentation" et pas "langage"; un langage n'est pas forcément défini par une implémentation unique, ça n'a pas de sens par exemple de dire que C est langage "interprété" parce qu'il existe des interpréteurs de C.
Littéralement un interpréteur est une implémentation qui exécute le programme directement en parcourant le code source, sans aucune étape de transformation intermédiaire. En pratique il y a toujours une phase de parsing voire de simplification et tu as donc une définition molle de "travaille sur une donnée qui a conservé la structure du programme initial". Toute phase de transformation globale qui change sa structure (pour la simplifier en général) est une forme de compilation.
Le terme "interpréter" a encore du sens quand on fait des sémantiques formelles de langages de programmation théoriques, où certaines sémantiques (sémantiques opérationnelles) sont clairement des "interprétations", et d'autres (exécution sur machines virtuelles, ou même certaines sémantiques dénotationnelles) des "compilations". Pour ce qui est des langages réels raisonnables, il faut l'éviter comme la peste car il est entouré de trop de bêtises.