A apresentação está carregando. Por favor, espere

A apresentação está carregando. Por favor, espere

Semântica de Ações Conceitos Básicos de Semântica de Ações, Especificações em Semântica de Ações, Primeiros Exemplos de Ações, WebAni.

Apresentações semelhantes


Apresentação em tema: "Semântica de Ações Conceitos Básicos de Semântica de Ações, Especificações em Semântica de Ações, Primeiros Exemplos de Ações, WebAni."— Transcrição da apresentação:

1 Semântica de Ações Conceitos Básicos de Semântica de Ações, Especificações em Semântica de Ações, Primeiros Exemplos de Ações, WebAni

2 Semântica de Ações formalismo para especificação de linguagens de programação composicional denotacional: o significado de programas (frases da linguagem) são ações a semântica de uma linguagem de programação é dada em termos de ações primitivas e combinadores de ações padrões

3 Semântica de Ações (cont.)
melhor reutilização descrições mais claras de linguagens de programação (melhor legibilidade) Pascal, Standard ML, Joyce, Beta, CCS, CSP, ...

4 A Notação de Ações ação uma entidade que pode ser executada, recebendo e produzindo dados ações podem ser combinadas usando-se combinadores de ações

5 A Notação de Ações (cont.)
a execução de uma ação: completa, corresponde ao término normal da execução; ou falha, corresponde ao abandono da execução da ação; ou diverge, a execução da ação nunca termina; ou escapa, corresponde à terminação excepcional da execução.

6 A Notação de Ações (cont.)
a execução depende da informação corrente, que é a informação processada pela execução de uma ação. a informação corrente pode ser classificada de acordo com a sua propagação: transitória com escopo estável permanente

7 A Notação de Ações (cont.)
facetas (processa no máximo uma espécie de informação por vez): de controle (básica), fluxo de controle e independência da espécie de informação funcional, processa informação transitória, dados são dados às ações e ações dão dados declarativa, processa informação com escopo, ações recebem e produzem bindings (ligações)

8 A Notação de Ações (cont.)
imperativa, processa informação estável, ações reservam e liberam células de memória, e mudam o dado armazenado em células comunicativa, processa informação permanente, ações enviam mensagens, recebem mensagens, e oferecem contratos a agentes ações diretivas ações híbridas

9 A Notação de Ações (cont.)
sorte (sort) é uma escolha de indivíduos um indivíduo é um elemento do sorte um indivíduo é visto como um sorte que classifica uma única entidade: 1 : integer 1 : 1 1 < integer integer < integer

10 A Notação de Ações (cont.)
produtores (yielders) entidades que podem ser avaliadas durante a execução de uma ação avaliação depende da informação corrente avaliação não afeta a informação corrente dados (data) notação de dados: inteiros, strings, listas, etc abstrações: dados que incorporam ações

11 Algumas Ações give 4 bind “x” to 456 store 29 in the given cell
give 4 or give 8 give 4 and bind “x” to 456 bind “x” to 456 hence give the integer bound to “x” give 5 then give sum(4,the given integer)

12 Descrições em Semântica de Ações
estrutura modular Abstract Syntax. Semantic Functions needs: Abstract Syntax, Semantic Entities. Semantic Entities. sub-módulos (M/Mi) módulos podem ser mutuamente dependentes ordem de apresentação não importa

13 Qual a semântica do programa?
program simples = var x : int := 3 in x := x + 5 end.

14 Semântica de Ações de NanoSpecimen (parte)
Abstract Syntax grammar: (1) Programa = program Identificador = Declaração in Comando end . . (2) Declaração = const Identificador : Tipo = Expressão | var Id : Tipo := Expressão | fun Identificador Identificador : Tipo -> Tipo = Expressão | Declaração ; Declaração . (3) Comando = Identificador := Expressão | while Expressão do Comando end | local Declaração in Comando end | Comando ; Comando .

15 | if Expressão then Expressão else Expressão
(4) Expressão = Número | Identificador | if Expressão then Expressão else Expressão | Identificador ( Expressão ) | Expressão Operador Expressão | Operador Expressão | ( Expressão ) . (5) Operador = + | - | * | / | = | < . (6) Tipo = int . (7) Identificador = ... (8) Número = ... closed.

16 Semantic Functions/Programas
rode _ :: Programa -> action . (1) rode [[ program I:Identificador = D:Declaração in C:Comando end . ]] = | elabore D hence | execute C . Semantic Functions/Declarações elabore _ :: Declaração -> action . (1) elabore [[ var I:Identificador : T:Tipo := E:Expressão ]] = | avalie E and allocate a cell then | | bind token of I to the given cell#2 | and | | store the given integer#1 in the given cell#2 .

17 Semantic Functions/Expressões
avalie _ :: Expressão -> action . (1) avalie N:Número = give valor-de N . (2) avalie I:Identificador = | give the integer bound to token de I or | give the integer stored in the cell bound to token-de I . (3) avalie [[ I:Identificador ( E:Expressão ) ]] = | avalie E then | enact (application of the abstraction bound to token-de I to the given integer) .

18 Semantic Functions/Comandos
execute _ :: Comando -> action . (1) execute [[ I:Identificador := E:Expressão ]] = | avalie E then | store the given integer in the cell bound to token-de I (2) execute [[ while E:Expressão do C:Comando ]] = unfolding | | evaluate E | then | | | check (it is 1) and then execute C and then unfold | | or | | | check not (it is 1) . (3) execute [[ local D:Declaração in C:Comando end ]] = | rebind moreover elabore D hence | execute C .

19 rode = program simples = var x : int := 3 in x := x + 5 end.
| | give 3 and allocate a cell | then | | bind “x” to the given cell#2 and store the given integer#1 in the given cell#2 hence | | | | | give the integer bound to “x” | | | | or | | | | | give the integer stored in the cell bound to “x” | | | and | | | | give 5 | | then | | | give sum(the given integer#1, the given integer#2) | | store the given integer in the cell bound to “x”

20 Um Interpretador de Ações (Ani)
um interpretador para a notação de ações implementa boa parte da notacao de dados implementado em Standard ML pode ser usado para construção de um interpretador para uma linguagem o resultado da interpretação de uma ação tem o seguinte formato: Outcome <outcome status> Transients <transients given by the action> Bindings <bindings produced by the action> Storage <storage after action performance>

21 Precisamos de um parser...
Especificação Léxica de Pantanal Especificação Sintática de Pantanal ML Yacc ML Lex Parser para Pantanal Programa Fonte em Pantanal AST para o Programa Fonte

22 O Gerador de Acionadores
dada a semântica de ações de uma linguagem L, o gerador de acionador gera um programa, o acionador de L, a partir da mesma o acionador de L incorpora a semântica de ações de L quando aplicado à arvore sintática abstrata (AST) de um programa P de L, o acionador de L produz a ação-programa de P

23 Usando o gerador de acionadores...
AST de P Semântica de Ações de Pantanal Gerador de Acionadores Acionador de Pantanal Ação-programa de P

24 Um Interpretador para Pantanal
Semântica de Ações de Pantanal Gerador de Acionadores Acionador de Pantanal resultado da interpretação Parser de Pantanal programa fonte Ani AST árvore da ação-programa

25 Algumas Considerações sobre Ani
um melhor entendimento da notação de ações especificações executáveis em semântica de ações baseado na semântica operacional da notação de ações notação de dados implementada mostramos como construir um interpretador para uma linguagem usando Ani

26 WebAni interface na Web para Ani

27 Referências Action Semantics. Peter D. Mosses. Cambridge University Press, 1992. Programming Language Syntax and Semantics. David A Watt. Prentice Hall, 1991. A Tutorial on Action Semantics. Peter D. Mosses, Action Semantics Home Page. An Overview of Action Semantics. Hermano Moura

28 Semântica de Ações Conceitos Básicos de Semântica de Ações, Especificações em Semântica de Ações, Primeiros Exemplos de Ações, WebAni


Carregar ppt "Semântica de Ações Conceitos Básicos de Semântica de Ações, Especificações em Semântica de Ações, Primeiros Exemplos de Ações, WebAni."

Apresentações semelhantes


Anúncios Google