“doc” (Col. : Science Sup 17x24) — 2007/7/19 — 18:18 — page 39 — #49
i
i
i
i
i
i
i
i
2.1 Définir un langage de programmation pratique
39
Aide au programmeur
Langage de programmation
de la programmation
Calcul fondamental
Traductions
Etude mathématique
Langage noyau
Machine abstraite
Exécution efficace
sur une machine réelle
pour raisonner et
comprendre
Figure 2.5 Les approches de la sémantique basées sur la traduction.
Comme nous ciblons les techniques de programmation pratiques, nous utiliserons
uniquement l’approche du langage noyau. Dans les deux autres approches, tout programme réaliste est encombré de détails techniques sur les mécanismes du langage.
L’approche du langage noyau évite cet encombrement par un choix judicieux des
concepts.
L’approche basée sur l’interprétation
Une alternative à l’approche basée sur la traduction est l’approche basée sur l’interprétation. La sémantique du langage est définie par un interpréteur. Des extensions
au langage sont définies en étendant l’interpréteur. Un interpréteur est un programme
écrit en langage L 1 qui accepte comme entrée des programmes écrits en un autre
langage L 2 et les exécute. Cette approche est utilisée par Abelson et Sussman [2].
Dans leur cas, l’interpréteur est méta-circulaire : L 1 et L 2 sont le même langage L.
L’addition de nouveaux concepts au langage, par exemple pour la concurrence et
l’évaluation paresseuse, donne un nouveau langage L
qui est implémenté en étendant
l’interpréteur de L.
L’approche basée sur l’interprétation a l’avantage de montrer une implémentation
autonome des abstractions linguistiques. Nous n’utilisons pas cette approche parce
qu’en général elle ne conserve pas la complexité en temps des programmes (le nombre
d’opérations qu’ils font en fonction de la taille de l’entrée). Une deuxième difficulté
est que les concepts de base interagissent entre eux dans l’interpréteur, ce qui le rend
plus difficile à comprendre. L’approche basée sur la traduction permet de garder les
concepts séparés.
© Dunod – La photocopie non autorisée est un délit
i
i
i
i
i
i
i
i
2.1 Définir un langage de programmation pratique
39
Aide au programmeur
Langage de programmation
de la programmation
Calcul fondamental
Traductions
Etude mathématique
Langage noyau
Machine abstraite
Exécution efficace
sur une machine réelle
pour raisonner et
comprendre
Figure 2.5 Les approches de la sémantique basées sur la traduction.
Comme nous ciblons les techniques de programmation pratiques, nous utiliserons
uniquement l’approche du langage noyau. Dans les deux autres approches, tout programme réaliste est encombré de détails techniques sur les mécanismes du langage.
L’approche du langage noyau évite cet encombrement par un choix judicieux des
concepts.
L’approche basée sur l’interprétation
Une alternative à l’approche basée sur la traduction est l’approche basée sur l’interprétation. La sémantique du langage est définie par un interpréteur. Des extensions
au langage sont définies en étendant l’interpréteur. Un interpréteur est un programme
écrit en langage L 1 qui accepte comme entrée des programmes écrits en un autre
langage L 2 et les exécute. Cette approche est utilisée par Abelson et Sussman [2].
Dans leur cas, l’interpréteur est méta-circulaire : L 1 et L 2 sont le même langage L.
L’addition de nouveaux concepts au langage, par exemple pour la concurrence et
l’évaluation paresseuse, donne un nouveau langage L
qui est implémenté en étendant
l’interpréteur de L.
L’approche basée sur l’interprétation a l’avantage de montrer une implémentation
autonome des abstractions linguistiques. Nous n’utilisons pas cette approche parce
qu’en général elle ne conserve pas la complexité en temps des programmes (le nombre
d’opérations qu’ils font en fonction de la taille de l’entrée). Une deuxième difficulté
est que les concepts de base interagissent entre eux dans l’interpréteur, ce qui le rend
plus difficile à comprendre. L’approche basée sur la traduction permet de garder les
concepts séparés.
© Dunod – La photocopie non autorisée est un délit
