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

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

DI UFPE Semântica de Java Towards na Operational Semantics and Proof of Type Soundness for Java Sophia Drossopoulou e Susan Eisenbach Imperial College.

Apresentações semelhantes


Apresentação em tema: "DI UFPE Semântica de Java Towards na Operational Semantics and Proof of Type Soundness for Java Sophia Drossopoulou e Susan Eisenbach Imperial College."— Transcrição da apresentação:

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


Carregar ppt "DI UFPE Semântica de Java Towards na Operational Semantics and Proof of Type Soundness for Java Sophia Drossopoulou e Susan Eisenbach Imperial College."

Apresentações semelhantes


Anúncios Google