Précédent Suivant

  Syntaxe/sémantique de Scheme

 
 
Un programme Scheme est un texte qui décrit comment traiter des informations. Ce texte obéit à une certaine syntaxe régissant son aspect extérieur. La syntaxe est un ensemble de règles d'écriture et de structuration, l'équivalent d'une grammaire précisant quelles sont les seules textes acceptables. Par exemple, la phrase « mourir, Marquise, vos d'amour yeux me beau font » n'est pas syntaxiquement acceptable (même si probablement vous avez reconnu d'où cette phrase pouvait provenir et quelle était la forme acceptable de sa formulation originale).
 
La syntaxe de Scheme est, parmi les langages de programmation, la plus simple qui soit. C'est la notation polonaise préfixée, variante parenthésée, dite de Cambridge (Massachussetts USA).
 
Lorsqu'un texte est acceptable, l'ordinateur tente de l'évaluer afin de déterminer les informations qu'il construit. Intervient alors ce que l'on nomme la sémantique du langage de programmation. La sémantique confère un sens aux mots et à leur agencement. On programme donc en écrivant un texte dont la sémantique permet de réaliser l'intention du programmeur.
 
Tout ce qui est syntaxiquement correct n'a pas nécessairement une sémantique compréhensible. Par exemple « Napoléon est triangulaire » est syntaxiquement correct et peut même déclencher l'hilarité sans que l'on puisse être certain de ce que cela signifie.
 
Lorsque l'on écrit 3+4, la sémantique du signe + est d'être l'addition. Certains contextes peuvent toutefois conférer d'autres sens au même signe +: en maths, dans un groupe, le signe + dénote souvent l'opération interne de ce groupe quelque soit cette opération (l'addition modulo, l'union ensembliste, la disjonction booléenne, etc.) Un texte n'a de sémantique que dans le cas d'une théorie particulière: un langage de programmation est une théorie accordant un sens à tous les textes syntaxiquement acceptables.
 
Lorsqu'un programme est soumis à un évaluateur Scheme, sa syntaxe est tout d'abord vérifiée puis le programme commence d'être évalué sur le plan sémantique. Une erreur à ce niveau indique que le programme est incohérent et qu'il ne peut mener à un résultat sensé. Parce que Scheme est un langage sûr, l'évaluation s'arrêtera alors et indiquera la nature de l'erreur qui peut être très simple comme une erreur de typage ou une division par zéro ou beaucoup plus compliquée. Il se peut même qu'un programme boucle c'est-à-dire qu'il ne se termine jamais!
 
La sémantique est complexe puisqu'elle nécessite de s'abstraire de la syntaxe pour ne voir au travers de la forme du texte que le sens qui s'y trouve. Un des buts de l'informatique ou des notations mathématiques est de transformer de la sémantique en syntaxe. Ce qui permet de faire confiance aux notations sans se soucier du sens profond caché derrière.
 
Si l'on prend la 16ème proposition du septième élément d'Euclide, on lit:
Si quatre nombres sont proportionnels, le nombre produit par le premier et le quatrième sera égal au nombre produit par le second et le troisième; et si le nombre produit par le premier et le quatrième est égal à celui produit par le second et le troisième, les quatre nombres seront proportionnels.
En langage plus moderne, si l'on nomme les quatre nombres dont il est question a, b, c, d, la proposition dit que:
a/b = c/d Û ad = bc

Les notations fractionnelles ont rendu cette transformation triviale (encore qu'il faille veiller à la non nullité de b et d) et dispensent de se référer au théorème précédent. On peut même trouver des exemples encore plus simples: effectuer une multiplication à la main est un travail purement syntaxique qui ne nécessite pas de se référer à la théorie de la représentation positionnelle des nombres.

 

Précédent Suivant