Index Suivant

Introduction

 

 
Dans l'introduction de la première saison, nous avons dit qu'un interprète pouvait être schématisé par:  
 

 
données, programmes (et résultats) étant des informations (sous forme de textes).
 
Remarque: dans ce cours, nous n'utilisons pratiquement pas la possibilité de lire des données (informations données).
 
Ainsi, un interprète doit « comprendre » le programme et les données et faire calculer par l'ordinateur le résultat en utilisant l'algorithme, ou le procédé de calcul, décrit par le programme. La « compréhension » s'effectue dans une phase dite d'analyse, le calcul s'effectuant dans une phase dite d'évaluation:  
 

 
On peut analyser le source du programme parce qu'il est écrit dans un langage et on peut le faire analyser par un programme d'ordinateur parce que ce langage est parfaitement défini, en général à l'aide d'une grammaire:  
 

 
Noter que cette analyse peut être un problème difficile -- de plus en plus lorsque l'on veut se rapprocher d'une langue naturelle -- et qu'il existe des concepts et des techniques extrêmement sophistiqués pour le résoudre. Dans ce cours, nous n'analyserons que des langages simples (nous vous fournirons un analyseur pour un langage plus compliqué à analyser) mais nous aurons tout de même besoin de quelques concepts pour nous aider (nous étudierons ces concepts dans la première section).
 
Afin que l'évaluation soit le plus efficace possible (et que le source de l'interprète correspondant soit plus simple à écrire), la phase d'analyse construit une représentation interne du programme à interpréter. Il faut bien voir que le choix de la structure de données contenant cette représentation interne est de la plus haute importance pour l'efficacité de l'interpréteur.  
 

 
Pour améliorer l'efficacité de l'évaluation ou pour simplifier l'écriture de l'évaluateur (en diminuant le nombre de constructions à traiter), on peut aussi transformer la représentation du programme en une autre équivalente (c'est-à-dire dont l'évaluation donnera le même résultat):  
 

 
Enfin, dès qu'il y a la notion de variable dans le langage, l'évaluateur évalue le programme dans un environnement, structure de données qui, entre autres, reçoit les données du problème (noter que cet environnement évolue lors d'une évaluation):  
 

 
Dans les sections qui suivent, nous introduirons les concepts et les techniques en nous appuyant sur quatre exemples qui tournent autour des langages logiques.
 


Auteur(s): titou@ufr-info-p6.jussieu.fr.Mainteneur de la page: titou@ufr-info-p6.jussieu.fr.

Index Suivant