No artigo "Um tipo de dados JSON replicado sem conflito" , encontrei essa notação para definir formalmente "regras":
Como é chamada essa notação? Como eu o leio?
Por exemplo:
- a
DOC
regra não tem nada no seu "numerador" - por que não? - as regras
EXEC
eGET
parecem ter dois termos separados acima da linha, o que isso significa? - a
VAR
regra também se destaca um pouco, pois enquanto muitas outras regras usam algum tipo de flecha (o que eu consideraria "implícito") no topo, essa parece apenas estar dizendo que x é um elemento de alguma coisa. - quase tudo é recheado de uma inicial
Ap,
que o texto descreve como "o estado da réplica p é descrito por Ap, uma função parcial finita" - como um leitor mais experiente dessa notação tenderia a "ver" essa parte de toda regra?
Este site sugeriu uma pergunta relacionada com uma notação de aparência muito parecida, sobre a questão Qual é o significado de ⟨B, s⟩ -> ⟨B ', s'⟩ como regra inicial nesta pergunta sobre pequenos passos semântica? - isso é marcado como semântica operacional e parece ser uma vantagem forte. Essa é realmente a estrutura sob a qual eu deveria interpretar esses números? Você poderia resumir isso facilmente no formulário "curso intensivo" para que, mesmo que eu não consiga verificar a correção de suas provas, eu possa pelo menos entender um pouco mais o que eles estão dizendo nesta seção?
Aqui está uma explicação muito informal que pode ajudar as pessoas não familiarizadas com as notações formais a entrarem na porta. Não substitui uma definição formal!
O Ap é o estado do seu sistema ou programa em execução. "Estado" pode significar muitas coisas, mas neste caso parece incluir uma lista de todas as variáveis locais definidas e seus valores. Por que Ap é uma função? Por ser uma maneira conveniente de expressar atribuições de variáveis: Ap (x) fornece o valor da variável x .
Agora, vamos tomar a regra EXEC como exemplo. Ele define a semântica de executar um comando cmd1 seguido por um comando cmd2 , ou seja, o que acontece com o estado Ap do sistema ao executar cmd1 seguido de cmd2 .
As outras regras descrevem a semântica dos comandos e expressões individuais. Por exemplo, a regra VAR descreve o que significa "executar" uma variável: se x é uma variável local (acima da linha), o que significa avaliar / executar a variável x ? Está escrito abaixo da linha: Quando o seu programa está no estado Ap , a avaliação de x fornece o valor de x , ou seja, Ap (x) .
Espero que ajude.
fonte