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

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

DI UFPE Semântica de Java Java and the Java Virtual Machine - Definition, Verification, Validation Robert Stark, Joachim Schmid, and Egon Borger Wolfram.

Apresentações semelhantes


Apresentação em tema: "DI UFPE Semântica de Java Java and the Java Virtual Machine - Definition, Verification, Validation Robert Stark, Joachim Schmid, and Egon Borger Wolfram."— Transcrição da apresentação:

1 DI UFPE Semântica de Java Java and the Java Virtual Machine - Definition, Verification, Validation Robert Stark, Joachim Schmid, and Egon Borger Wolfram Schulte

2 DI UFPE Introdução n Objetivos u Definição rigorosa, mas legível u Base para padronização de Java (ambiguidades e inconsistencias foram detectadas) u Especificação e avaliação de extensões de Java u Análise e comparação de implementações de Java u Modelo passível de tratamento automático u Validação de esquemas de compilação e de propriedades de segurança

3 DI UFPE Introdução n Requerimentos u Validação por inspeção u Técnica de modelagem que: l Expresse conceitos básicos l Modele ações básicas de forma abstrata n Abstract State Machines (ASM) u Gurevich- Evolving Algebras u Semântica operacional em que estados são definidos algebricamente u Pseudo-code envolvendo tipos de dados abstratos

4 DI UFPE Introdução n Interpretador de programas Java u “Parsing” u Elaboração: tipos e formação u Execução l Carga, ligação e execução l Semântica dinâmica u Jumps u Exceções u Concorrência

5 DI UFPE Introdução n Características do modelo u Orientado a processo ao invés da sintaxe u Separação de aspectos estáticos e dinâmicos n Métodos estruturados u Semântica operacional estruturada, semântica natural, semântica de ações, etc. u Adequados para linguagens cujo fluxo de controle segue a árvore sintática u Nenhuma vantagem quando: l Ambientes são mais complexos l Concorrência é considerada

6 DI UFPE Abstract State Machines n Estado: estrutura matemática n Conjunto de regras de transição da forma if Condition then Updates l Condition: predicado l Updates: conjunto de f(t1,...,tn) := t n Execução: noção tradicional

7 DI UFPE Abstract State Machines Tipos de Funções n Estáticas n Dinâmicas u Controladas u Monitorada u Interativas u Derivadas

8 DI UFPE Abstract State Machines Formas Especiais de Regras n forall x with Condition do Rule n choose x with Condition do Rule n Além disso u where u let u if then else u Parametrização

9 DI UFPE Visão geral n Cinco sublinguagens u Isolamento de características ortogonais l Imperativas - Java I l Procedimentais (baseadas em objetos) - Java C l Orientadas a objetos - Java o l Tratamento de exceções - Java E l Concorrência - Java T

10 DI UFPE Java I n Sintaxe u Página 35, Figura 3.1 u Programa anotado, como em tempo de execução n Modelo de execução u Passeio pelos nós da árvore sintática de um programa u Em cada nó l Uma tarefa é executada l Prosseguimento para a próxima tarefa

11 DI UFPE Java I Estado n Contador de programas abstrato: programa a ser executado pos : Pos restbody: Pos  Phrase n Ambiente locals: Locals type Locals = Map(Loc  Val) Estado: restbody, post, locals

12 DI UFPE Java I Transições n Regras de transição: mudanças de estado devido a l Avaliação de expressões l Execução de comandos n Estado inicial  Determinado por uma phrase dada  restbody = a frase  pos = posição inicial  locals vazio n Execução termina: nenhuma regra é aplicável

13 DI UFPE Java I Expressões n Expressões u Ordem de avaliação l Da esquerda para direita, de dentro para fora context e yield e yieldUp  Figura 3.2, página 41

14 DI UFPE Java I Comandos n Figura 3.3, página 42

15 DI UFPE Java C n Linguagem com módulos n Sintaxe: páginas 48- 49, Figura 4.3, página 50, 51-52 u Informações de tipo já inseridas em tempo de compilação n Ambiente de classes estático u Definido por funções: página 62

16 DI UFPE Java C Estado n Mais componentes de estado u initialized  globals Chamada de métods u type Frame = (Class/Msig, Phrase,Pos,Locals) u frames: Frame * Mais Abr para mudança abrupta de fluxo

17 DI UFPE Java C Regras de Transição n Todas as regras de Java I com n Ambiente definido pelo programa dado n Todos os atributos inicializados com valores “default” n Início u public static void main()  body, restbody, pos, locals

18 DI UFPE Java C Regras de Transição n Expressões u Figura 4.4, página 64 n Comandos  Figura 4.5, página 66

19 DI UFPE Java C Inicialização n Inicialmente nenhuma classe é inicializada n Inicialização ocorre no primeiro uso ativo n Superclasses devem ser inicializadas antes n O mesmo não ocorre com superinterfaces

20 DI UFPE Java O n Sintaxe: Figura 5.1, página 73 n Ambiente u instanceFields u defaultVal u type u lookup n Estado u type Val =... | Ref | Null u data Heap = Object(Class,Map(Class/Field,Val)) u heap: Ref  Heap n Regras de transição: Figura 5.2, página 81

21 DI UFPE Java E n Sintaxe: Figura 6.1, página 88 n data Abr = Break(Lab) | Continue(Lab) | Return | Return(Val) | Exc(Ref) n Regras de transição: u Figura 6.2, página 91 u Figura 6.3, página 93


Carregar ppt "DI UFPE Semântica de Java Java and the Java Virtual Machine - Definition, Verification, Validation Robert Stark, Joachim Schmid, and Egon Borger Wolfram."

Apresentações semelhantes


Anúncios Google