Sémantique dénotationnelle

Définition - Que signifie la sémantique dénotationnelle?

En informatique, la sémantique dénotationnelle est une approche permettant de donner une signification mathématique aux systèmes et aux langages de programmation. En d'autres termes, la sémantique dénotationnelle est une technique formelle pour exprimer la définition sémantique d'un langage de programmation.

Développée dans les années 1960 à l'Université d'Oxford par le Programming Research Group de Christopher Strachey, la méthodologie comprend l'élégance de la notation et la rigueur mathématique. Bien qu'initialement conçue comme un outil d'analyse, la sémantique dénotationnelle a été utilisée comme outil de mise en œuvre et de conception de langage.

Definir Tech explique la sémantique dénotationnelle

Dans la sémantique dénotationnelle, l'idée de base consiste à mapper chaque entité syntaxique associée à un langage de programmation en une forme quelconque d'entité mathématique, traduisant les constructions du langage de programmation en objets mathématiques.

La définition sémantique dénotationnelle comprend cinq parties:

  • Equations sémantiques
  • Catégories syntaxiques
  • Fonctions sémantiques
  • Backus normal form (BNF) définissant la structure des catégories syntaxiques
  • Domaines de valeur

La sémantique dénotationnelle a été développée pour les langages modernes qui ont des fonctionnalités telles que les exceptions et la concurrence. L'une des caractéristiques importantes de la sémantique dénotationnelle est que la sémantique doit être compositionnelle, ce qui signifie que la dénotation d'une phrase de programmation peut être construite à partir des dénotations de ses sous-phrases.

Il existe des avantages distincts associés à la sémantique dénotationnelle. C'est le mécanisme le plus simple pour décrire la signification de programmes plus petits par rapport à d'autres alternatives. La sémantique dénotationnelle est capable d'expliquer l'état dans les programmes. Cependant, la sémantique dénotationnelle a tendance à être très complexe pour décrire des fonctionnalités avancées telles que les instructions goto et les récursions.