Carregar apresentação
A apresentação está carregando. Por favor, espere
PublicouLuana Cara Alterado mais de 9 anos atrás
1
DI UFPE Semântica de Java Towards na Operational Semantics and Proof of Type Soundness for Java Sophia Drossopoulou e Susan Eisenbach Imperial College
2
DI UFPE Introdução n Por que uma semântica para Java? u Introdução de características novas u Combinação de características u Semântica de uma linguagem de programação real u Qualquer questão pode ser respondida pelo LRM. No entanto... l Algumas regras são mais restritivas do que o necessário l A justificativa para algumas decisões de projeto não é obvia
3
DI UFPE Subconjunto Considerado n Tipos primitivos n Classes e herança n Variáveis e métodos de instância n Interfaces n “Dynamic binding” n Criação de objetos n Arrays n Exceções
4
DI UFPE Abordagem n Programas em Java usam informações de tipo em tempo de execução Invocação de método: attr.meth u Compilação l Três passos l Resolução de “overloading” u Execução l Cinco passos l Resolução de “dynamic binding”
5
DI UFPE Abordagem n Compilação u Primeiro passo l Identificação da classe ou interface a ser pesquisada Tipo declarado de attr Segundo passo: determinação da assinatura de meth l Localização dos métodos aplicáveis e acessíveis O mais específico é escolhido u Terceiro passo l Verificação da adequabilidade do método l Associação de informações colhidas durante a compilação
6
DI UFPE Abordagem u Execução: cinco passos l Primeiro passo u Determinação da referência alvo Valor da expressão attr l Segundo passo: avaliação de argumentos l Terceiro passo: verificação de que tudo continua consistente em tempo de ligação l Quarto passo u Determinação do método a ser invocado u “Dynamic method lookup” l Quinto passo: execução propriamente dita
7
DI UFPE Um Exemplo class Phil {class FrPhil extends Phil { Truth like; Food like; Phil think(Phil y){... } Phil think(Phil y){like = oyster;...} Book think(FrPhil y) {...}} } Phil aPhil; FrPhil pascal = new FrPhil;... aPhil.like... aPhil.think(pascal)... aPhil.think(aPhil)... pascal.like... pascal.think(pascal)... pascal.think(aPhil)
8
DI UFPE Abordagem n Definição de três linguagens u Java s : subconjunto de Java u Java se : enriquecimento da linguagem com informação de tempo de compilação u Java r : linguagem contendo os termos de tempo de execução
9
DI UFPE Abordagem n Semântica operacional u Relação de transição ternária Configurações, programas, configurações u Configuração l Tuplas de termos-Java r e estados l Termos: parte do programa original que ainda precisa ser executado l Estado: mapeamento u Endereços para objetos u Variáveis para valores primitivos ou endereços
10
DI UFPE Java s Sintaxe n Definição da sintaxe u Subconjunto de Java u página 6 u Relação de subclasse derivada do programa: página 6
11
DI UFPE Java s Ambiente n Definição: página 7 u Hierarquias de interface e classe e informações de tipo u Relacionados com programas mais a frente n Um ambiente determina várias relações e informações u Página 8 l Relação de subclasse l Relação de subinterface l Relação de implementação entre uma classe e uma interface
12
DI UFPE Java s u Página 9: tipos de variáveis e de métodos válidos u Página 10: Relação de “widening” (subtipo) n Ambientes e declarações bem-formadas: página 13 u Restrições de Java sobre declarações u |- ‘ : ‘ é bem formado sob l Relações de subclasse e subinterface de ‘ são acíclicas l Declarações de ‘ são bem-formadas
13
DI UFPE Java se n Incorpora informações de tempo de compilação n Sintaxe: página 16 n Tradução de Java s para Java se
14
DI UFPE Java s Tipos e Tradução n Regras de tipo u Fase de verificação de tipos de um compilador u Termos |- t : T u Programas |- p (formação) |- p (formação e completude) n Tradução C{( , t)} = t’ n Páginas 18, 20 e 21
15
DI UFPE Java se Tipos n Necessários apenas para prova da consistência do sistema de tipos n Quatro casos a considerar: página 23 n Um termo Java se resultante de um termo Java s bem-tipado é bem-tipado também e tem o mesmo tipo
16
DI UFPE Java r n Incorpora termos que surgem em tempo de execução u Endereços u Null u Comandos como expressões n Sintaxe: página 25
17
DI UFPE Java r Tipos n Necessários apenas para prova da consistência do sistema de tipo
18
DI UFPE Semântica Operacional n Estrutura geral: página 26 n Definições: páginas 28-32
Apresentações semelhantes
© 2024 SlidePlayer.com.br Inc.
All rights reserved.