Dans l'article "Un type de données JSON répliqué sans conflit" , j'ai rencontré cette notation pour définir formellement des "règles":
Comment s'appelle cette notation? Comment est-ce que je le lis?
Par exemple:
- la
DOC
règle n'a rien dans son "numérateur" - pourquoi pas? - les règles
EXEC
etGET
semblent avoir deux termes distincts au-dessus de la ligne, qu'est-ce que cela signifie? - la
VAR
règle se démarque également un peu, car alors que de nombreuses autres règles utilisent une sorte de flèche (que je considérerais comme "implique") en haut, celle-ci semble seulement dire que x est un élément de quelque chose. - presque tout est parsemé d'une initiale
Ap,
que le texte décrit comme «l'état de la réplique p est décrit par Ap, une fonction partielle finie» - comment un lecteur averti de cette notation aurait-il tendance à «voir» cette partie de chaque règle?
Ce site a suggéré une question connexe qui a une notation très similaire, sur la question Quelle est la signification de ⟨B, s⟩ -> ⟨B ', s'⟩ comme règle initiale dans cette question sur les petits pas sémantique? - ceci est étiqueté comme sémantique opérationnelle , et cela semble être une piste solide. Est-ce bien là le cadre dans lequel je dois interpréter ces chiffres? Pourriez-vous facilement résumer cela sous forme de "cours intensif" afin que, même si je ne peux pas vérifier l'exactitude de leurs preuves, je pourrais au moins avoir un peu plus de compréhension de ce qu'ils disent dans cette section?
Voici une explication très informelle qui pourrait aider les gens qui ne connaissent pas les notations formelles à mettre un pied dans la porte. Elle ne remplace pas une définition formelle!
L' Ap est l'état de votre système ou de votre programme en cours d'exécution. «État» peut signifier beaucoup de choses mais dans ce cas, il semble inclure une liste de toutes les variables locales définies et de leurs valeurs. Pourquoi Ap est-il une fonction? Parce que c'est un moyen pratique d'exprimer les affectations de variables: Ap (x) donne la valeur de la variable x .
Prenons maintenant la règle EXEC comme exemple. Il définit la sémantique d'exécution d'une commande cmd1 suivie d'une commande cmd2 , c'est-à-dire ce qui se passe avec l'état Ap du système lors de l'exécution de cmd1 suivi de cmd2 .
Les autres règles décrivent la sémantique des commandes et expressions individuelles. Par exemple, la règle VAR décrit ce que signifie «exécuter» une variable: si x est une variable locale (au-dessus de la ligne), que signifie évaluer / exécuter la variable x ? Il est écrit sous la ligne: Lorsque votre programme est dans l'état Ap , l'évaluation de x vous donne la valeur de x , c'est-à-dire Ap (x) .
J'espère que ça aide.
la source