Title: Sem
1Semântica Operacional
- Semantics with Applications - A Formal
Introduction - H. R. Nielson and F. Nielson
- Wiley Professional Computing
- Capítulo 2
2Semântica Operacional
- Características principais
- Significado dos programas é especificado pela
computação que ele induz quando executado - Preocupação com COMO os programas são executados
3Abordagens
- Semântica natural
- Resultados finais
- Semântica operacional estrutural
- Passos individuais
4Sistema de Transição
- Componentes
- Configurações
- ? S,s? - comando S executado no estado s
- s - um estado terminal
- Relação de transição
- Diferentes abordagens diferentes formas de
especificar a relação de transição
5Semântica Natural
- Transição
- Relação entre o estado inicial e o estado final
- ? S,s? ? s
- Regras
- premissas
- condições
- axiomas
6Semântica Natural de While
7Semântica Natural de While (cont.)
? c,e ? ? e ? while b do c, e ? ? e
if Bb e true
(while-true)
? while b do c, e ? ? e
8Árvores de Derivação
- Uso das definições para derivar uma transição
- Raiz
- Nós internos
- Todas as condições devem ser satisfeitas
- Tipos de árvores
- Simples instância de axioma
- Composta
9Propriedades de uma Semântica Natural
- Programas S1 e S2 são semanticamente equivalentes
se para todos os estados s e s - ? S1,s? ? s se e somente se ? S2,s? ? s
- Árvores de derivação são a base para a prova
10Propriedades de uma Semântica Natural
- Semântica natural determinística
- Para cada comando S e cada estado inicial s, o
estado final pode ser determinado unicamente. - Para todo comando S, e estados s, s e s
- ? S,s? ? s e ? S,s? ? s implica que s
s
11Indução Sobre aForma das Árvores de Derivação
- Caso base árvores simples
- Prova propriedades para axiomas
- Passo de indução árvores compostas
- Prova para cada regra, assumindo válido para as
premissas - Indução estrutural nem sempre é possível
12Função Semântica
- Sns Stm ? (State ? State)
- Sns S s s if ? S,s? ? s
- Sns S s undef, otherwise.
13Semântica Operacional Estrutural
- Ênfase nos passos individuais da execução
- Relação de transição
- ? S,s? ? ?
- ? pode ter duas formas
- ? S,s?
- s
- ? S,s? está travado se não há ? tal que ? S,s?
? ?
14Semântica Operacional Estrutural de While
- ? x a,s? ? sx ? Aa s
- ? skip,s? ? s
- ? S1,s? ? ? S1,s?
- ? S1 S2,s? ? ? S1 S2,s?
- ? S1,s? ? s
- ? S1 S2,s? ? ? S2,s?
-
15Semântica Operacional Estrutural de While
- ? if b then S1 else S2,s? ? ? S1,s? if Bb
s tt - ? if b then S1 else S2,s? ? ? S2,s? if Bb
s ff - ? while b do S,s? ? ? if b then (S while b do
S) else skip,s?
16Sequência de Derivação
- Sequência de configurações
- ? S,s? , ?1, ... , ?k
- ?i ? ?i 1
- ?k é travada ou terminal OU
- a sequência é infinita
- Para cada passo há uma árvore de derivação
17Propriedades de uma Semântica Operacional
Estrutural
- Execução de um comando S em um estado s
- Termina sequência de derivação finita
- Entra em loop sequência de derivação infinita
- Indução no comprimento das sequências de derivação
18Semântica Operacional Determinística
- Para todo comando S, e estados s, s e s
- ? S,s? ? ? e ? S,s? ? ? implica que
? ? - Há apenas uma sequência de derivação começando de
uma configuração ? S,s?
19Equivalência de Programas
- Programas S1 e S2 são semanticamente equivalentes
se para todos os estados s - ? S1,s? ? ? se e somente se ? S2,s? ? ? , se ?
for uma configuração travada ou terminal - Há uma sequência de derivação infinita começando
em ? S1,s? se e somente se há uma começando em
? S2,s?
20Função Semântica
- Ssos Stm ? (State ? State)
- Ssos S s s if ? S,s? ? s
- Ssos S s undef, otherwise.
- As definições de While são equivalentes
21Extensões de While Abort
- Regras anteriores não são modificadas
- Nenhuma regra é adicionada
- Semântica operacional estrutural
- abort é diferente de skip e while true do skip
- Semântica natural
- abort é equivalente a while true do skip
22Extensões de WhileAbort
- Semântica natural não distingue não-terminação de
terminação anormal - Em semântica operacional estrutural
- Não-terminação sequência de derivação infinita
- Terminação anormal configuração travada
23Extensões de WhileNão-determinismo
- S1 or S2
- Semântica natural
- ? S1,s? ? s
- ? S1 or S2 ,s? ? s
- ? S2,s? ? s
- ? S1 or S2 ,s? ? s
24Extensões de WhileNão-determinismo
- Semântica operacional estrutural
- ? S1 or S2,s? ? ? S1,s?
- ? S1 or S2,s? ? ? S2,s?
- Considere ? while true do skip or x 1?
- Em semântica natural, não-determinismo suprimirá
não-terminação, se possível - Em semântica operacional estrutural, isso não
acontece.
25Extensões de WhileParalelismo
- S1 par S2
- Semântica operacional estrutural
- ? S1,s? ? ? S1,s? ? S1,s? ?
s - ? S1 par S2,s? ? ? S1 par S2,s? ? S1 par
S2,s? ? ? S2,s? - ? S2,s? ? ? S2,s? ? S2,s? ? s
- ? S1 par S2,s? ? ? S1 par S2,s? ? S1 par
S2,s? ? ? S1,s?
26Extensões de WhileParalelismo
- Semântica natural
-
- ? S1,s? ? s , ? S2,s? ? s
- ? S1 par S2 ,s? ? s
-
- ? S2,s? ? s , ? S1,s? ? s
- ? S1 par S2 ,s? ? s
27Extensões de WhileParalelismo
- Semântica natural
- Execução de componentes é atômica interleaving
não pode ser expresso - Semântica operacional estrutural
- Interleaving pode ser expresso facilmente
28Blocos
- S ... begin DV S end
- DV var x a DV ?
- Semântica natural
- Um sistema de transição para cada categoria
sintática
29Blocos
- ? DV,sx ? Aa s ? ?D s
- ? var x a DV ,s? ?D s
- ? ? ,s? ?D s
- ? DV,s? ?D s , ? S,s? ?D
s - ? begin DV S end,s? ? s DV(Dv) ? s
30Procedimentos
- S ... begin DV DP S end call p
- DV var x a DV ?
- DP proc p is S DP ?
- Escopo estático para variáveis e procedimentos
31Procedimentos
- call p executa o corpo de p
- É necessário registrar a associação entre nomes e
corpos de procedimentos - Ambiente de procedimento
- EnvP Pname ? Stm ? EnvV ? EnvP
- Ambiente de variável
- Envv Var ? Loc
- Store Loc ? next ? Z
32Procedimentos
- Extensão do sistema de transições para comandos
- envV, envP - ?S,sto? ? sto
- Extensão do sistema de transições para
declarações - ?DV,envV,sto? ?D (envV, sto)
33Procedimentos
- Declarações
- ?DV, envVx ? l,sto l ? vnext ? new l?
?D (envV ,sto) - ? var x a DV , envV ,sto? ?D
(envV ,sto) - onde v Aa(sto ? envV) e l sto next
- ? ? ,envV, sto? ?D (envV, sto)
34Procedimentos
- Comandos
- envV, envP - ?x a,sto? ? stol ? v
- onde l envV x and v Aa(sto ? envV)
-
- ?DV,envV, sto? ?D (envV
,sto), - envV, envP - ?S,sto? ?
sto - envV, envP - ? begin DV DP S end,sto? ?
sto - onde envP updP(DP,envV,envP)
35Procedimentos
- envV, envP - ? S,sto? ? sto
- envV, envP - ? call p,sto? ? sto
- onde envP p (S,envV,envP)
- envV, envP p -gt (S, envV, envP ) -
? S,sto? ? sto - envV, envP - ? call p,sto?
? sto - onde envP p (S,envV,envP)