Carregar apresentação
A apresentação está carregando. Por favor, espere
PublicouNathalia Fonte Alterado mais de 9 anos atrás
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
Apresentações semelhantes
© 2024 SlidePlayer.com.br Inc.
All rights reserved.