mvv - arquitetura da máquina virtual virtuosi

19
1 de 26 MVV - Arquitetura da Máquina MVV - Arquitetura da Máquina Virtual Virtuosi Virtual Virtuosi Carlos José Johann Kolb Carlos José Johann Kolb Programa de Pós-Graduação em Informática Programa de Pós-Graduação em Informática Aplicada Aplicada Centro de Ciências Exatas e de Tecnologia Centro de Ciências Exatas e de Tecnologia Pontifícia Universidade Católica do Paraná Pontifícia Universidade Católica do Paraná Outubro de 2004 Outubro de 2004

Upload: aileen

Post on 12-Jan-2016

24 views

Category:

Documents


0 download

DESCRIPTION

MVV - Arquitetura da Máquina Virtual Virtuosi. Carlos José Johann Kolb Programa de Pós-Graduação em Informática Aplicada Centro de Ciências Exatas e de Tecnologia Pontifícia Universidade Católica do Paraná Outubro de 2004. arquitetura. Visão geral. metamodelo. class Pessoa { - PowerPoint PPT Presentation

TRANSCRIPT

Page 1: MVV - Arquitetura da Máquina Virtual Virtuosi

1 de 26

MVV - Arquitetura da Máquina MVV - Arquitetura da Máquina Virtual VirtuosiVirtual Virtuosi

Carlos José Johann KolbCarlos José Johann Kolb

Programa de Pós-Graduação em Informática Programa de Pós-Graduação em Informática AplicadaAplicada

Centro de Ciências Exatas e de TecnologiaCentro de Ciências Exatas e de Tecnologia

Pontifícia Universidade Católica do ParanáPontifícia Universidade Católica do Paraná

Outubro de 2004Outubro de 2004

Page 2: MVV - Arquitetura da Máquina Virtual Virtuosi

2 de 26

class Pessoa {

composition String nome;association String endereco;constructor make( String pN, ...) exports all {nome = pN;

...}

method void setNome( String n ) exports all {nome = n;

}

action obeso( ) exports all { if ( sexo == masculino) {v = Integer.make(100)

} ...}}

Visão geral Visão geral

class Pessoa {

composition String nome;association String endereco;constructor make( String pN, ...) exports all {nome = pN;

...}

method void setNome( String n ) exports all {nome = n;

}

action obeso( ) exports all { if ( sexo == masculino) {v = Integer.make(100)

} ...}}

Compilador Máquina VirtualVirtuosi

arquitetura

metamodelo

código fonte das classes de uma aplicação árvores de programa

que compõem a aplicação

Page 3: MVV - Arquitetura da Máquina Virtual Virtuosi

3 de 26

Código fonte escrito em AramCódigo fonte escrito em Aram

class Pessoa {composition String nome;association String endereco;constructor make( String pN, ...) exports all {

nome = pN;...

}method void setNome( Pessoa outraPessoa ) exports all {

nome = n;if ( outraPessoa.obeso( ) ){

...}

}action obeso( ) exports all {

if ( sexo == masculino) {v = Integer.make(100);return execute

} else { return skip; }}

}

arquitetura

Page 4: MVV - Arquitetura da Máquina Virtual Virtuosi

4 de 26

Metamodelo da VirtuosiMetamodelo da Virtuosiarquitetura

class Pessoa {composition String nome;association String endereco;...

Page 5: MVV - Arquitetura da Máquina Virtual Virtuosi

5 de 26

Bloco de DadosBloco de Dadosarquitetura

Page 6: MVV - Arquitetura da Máquina Virtual Virtuosi

6 de 26

Metamodelo da VirtuosiMetamodelo da Virtuosiarquitetura

class Pessoa {constructor make( String pN, ...) ...method void setNome( Pessoa outraPessoa ) ...action obeso( ) ...

Page 7: MVV - Arquitetura da Máquina Virtual Virtuosi

7 de 26

Comando de Desvio Condicional e uma AçãoComando de Desvio Condicional e uma Ação

arquitetura

Page 8: MVV - Arquitetura da Máquina Virtual Virtuosi

8 de 26

Metamodelo da VirtuosiMetamodelo da Virtuosiarquitetura

...v = Integer.make(100);

objetoTal.metodoTal();

valor = objX.metodoX();...

Page 9: MVV - Arquitetura da Máquina Virtual Virtuosi

9 de 26

Árvore de ProgramaÁrvore de Programaclass Pessoa { composition Integer posicao; method void setPosicao(Integer p) exports all { posicao = p; }}

arquitetura

Page 10: MVV - Arquitetura da Máquina Virtual Virtuosi

10 de 26

Uma aplicação é composta de muitas Uma aplicação é composta de muitas árvores de programaárvores de programa

arquitetura

Page 11: MVV - Arquitetura da Máquina Virtual Virtuosi

11 de 26

Pontos de ligação entre árvores de Pontos de ligação entre árvores de programaprograma

arquitetura

Page 12: MVV - Arquitetura da Máquina Virtual Virtuosi

12 de 26

Referências indiretas através de Tabelas de Referências indiretas através de Tabelas de ManipulaçãoManipulação

arquitetura

Page 13: MVV - Arquitetura da Máquina Virtual Virtuosi

13 de 26

pessoa

integer

soma

pessoa

Carga das árvores de programa pela Carga das árvores de programa pela MVVMVV

arquitetura

Page 14: MVV - Arquitetura da Máquina Virtual Virtuosi

14 de 26

Uma instância da Máquina Virtual VirtuosiUma instância da Máquina Virtual Virtuosi

class A {

...

constructor ca( ) exports all {

this.ma();

}

method metodoA( ) exports all {

...

}

}

arquitetura

Page 15: MVV - Arquitetura da Máquina Virtual Virtuosi

15 de 26

Uma atividade navega sobre a árvore de Uma atividade navega sobre a árvore de programaprograma

arquitetura

Page 16: MVV - Arquitetura da Máquina Virtual Virtuosi

16 de 26

Visão Geral da Arquitetura da VirtuosiVisão Geral da Arquitetura da Virtuosi

arquitetura

Page 17: MVV - Arquitetura da Máquina Virtual Virtuosi

17 de 26

Protótipo e NúmerosProtótipo e Números

JavaJava Testes automatizadosTestes automatizados

Testes para criação de árvoresTestes para criação de árvores Testes para a interpretação das árvoresTestes para a interpretação das árvores

Cento e quarenta e uma (141) Cento e quarenta e uma (141) classes dividas em dois pacotes: core classes dividas em dois pacotes: core (47) e meta (94);(47) e meta (94);

Trinta e uma classes de teste;Trinta e uma classes de teste;

implementação

Page 18: MVV - Arquitetura da Máquina Virtual Virtuosi

18 de 26

ContribuiçãoContribuição

Serve como base para um ambiente Serve como base para um ambiente distribuído de execução de software distribuído de execução de software orientado a objetos – o ambiente orientado a objetos – o ambiente VirtuosiVirtuosi

Formaliza o metamodelo da Virtuosi que Formaliza o metamodelo da Virtuosi que define e limita os conceitos de define e limita os conceitos de orientação a objetos implementados por orientação a objetos implementados por qualquer linguagem de programação qualquer linguagem de programação que deseje ser compatível com o que deseje ser compatível com o ambiente Virtuosiambiente Virtuosi

conclusão

Page 19: MVV - Arquitetura da Máquina Virtual Virtuosi

19 de 26

Contribuição CientíficaContribuição Científica

Valida o uso de árvores de programa como Valida o uso de árvores de programa como representação intermediária para representação intermediária para software orientado a objetosoftware orientado a objeto

Valida o uso de tabelas de manipulação Valida o uso de tabelas de manipulação para manter referências entre árvores de para manter referências entre árvores de programa carregadas em memória programa carregadas em memória (relacionamentos inter e intra-classes)(relacionamentos inter e intra-classes)

valida o uso de tabelas de manipulação valida o uso de tabelas de manipulação para manter referências entre objetos para manter referências entre objetos instância de classes de aplicaçãoinstância de classes de aplicação

conclusão