mvv - arquitetura da máquina virtual virtuosi
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 PresentationTRANSCRIPT
![Page 1: MVV - Arquitetura da Máquina Virtual Virtuosi](https://reader036.vdocuments.site/reader036/viewer/2022081512/5681459a550346895db28eaf/html5/thumbnails/1.jpg)
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](https://reader036.vdocuments.site/reader036/viewer/2022081512/5681459a550346895db28eaf/html5/thumbnails/2.jpg)
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](https://reader036.vdocuments.site/reader036/viewer/2022081512/5681459a550346895db28eaf/html5/thumbnails/3.jpg)
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](https://reader036.vdocuments.site/reader036/viewer/2022081512/5681459a550346895db28eaf/html5/thumbnails/4.jpg)
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](https://reader036.vdocuments.site/reader036/viewer/2022081512/5681459a550346895db28eaf/html5/thumbnails/5.jpg)
5 de 26
Bloco de DadosBloco de Dadosarquitetura
![Page 6: MVV - Arquitetura da Máquina Virtual Virtuosi](https://reader036.vdocuments.site/reader036/viewer/2022081512/5681459a550346895db28eaf/html5/thumbnails/6.jpg)
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](https://reader036.vdocuments.site/reader036/viewer/2022081512/5681459a550346895db28eaf/html5/thumbnails/7.jpg)
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](https://reader036.vdocuments.site/reader036/viewer/2022081512/5681459a550346895db28eaf/html5/thumbnails/8.jpg)
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](https://reader036.vdocuments.site/reader036/viewer/2022081512/5681459a550346895db28eaf/html5/thumbnails/9.jpg)
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](https://reader036.vdocuments.site/reader036/viewer/2022081512/5681459a550346895db28eaf/html5/thumbnails/10.jpg)
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](https://reader036.vdocuments.site/reader036/viewer/2022081512/5681459a550346895db28eaf/html5/thumbnails/11.jpg)
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](https://reader036.vdocuments.site/reader036/viewer/2022081512/5681459a550346895db28eaf/html5/thumbnails/12.jpg)
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](https://reader036.vdocuments.site/reader036/viewer/2022081512/5681459a550346895db28eaf/html5/thumbnails/13.jpg)
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](https://reader036.vdocuments.site/reader036/viewer/2022081512/5681459a550346895db28eaf/html5/thumbnails/14.jpg)
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](https://reader036.vdocuments.site/reader036/viewer/2022081512/5681459a550346895db28eaf/html5/thumbnails/15.jpg)
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](https://reader036.vdocuments.site/reader036/viewer/2022081512/5681459a550346895db28eaf/html5/thumbnails/16.jpg)
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](https://reader036.vdocuments.site/reader036/viewer/2022081512/5681459a550346895db28eaf/html5/thumbnails/17.jpg)
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](https://reader036.vdocuments.site/reader036/viewer/2022081512/5681459a550346895db28eaf/html5/thumbnails/18.jpg)
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](https://reader036.vdocuments.site/reader036/viewer/2022081512/5681459a550346895db28eaf/html5/thumbnails/19.jpg)
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