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
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
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
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
4 de 26
Metamodelo da VirtuosiMetamodelo da Virtuosiarquitetura
class Pessoa {composition String nome;association String endereco;...
5 de 26
Bloco de DadosBloco de Dadosarquitetura
6 de 26
Metamodelo da VirtuosiMetamodelo da Virtuosiarquitetura
class Pessoa {constructor make( String pN, ...) ...method void setNome( Pessoa outraPessoa ) ...action obeso( ) ...
7 de 26
Comando de Desvio Condicional e uma AçãoComando de Desvio Condicional e uma Ação
arquitetura
8 de 26
Metamodelo da VirtuosiMetamodelo da Virtuosiarquitetura
...v = Integer.make(100);
objetoTal.metodoTal();
valor = objX.metodoX();...
9 de 26
Árvore de ProgramaÁrvore de Programaclass Pessoa { composition Integer posicao; method void setPosicao(Integer p) exports all { posicao = p; }}
arquitetura
10 de 26
Uma aplicação é composta de muitas Uma aplicação é composta de muitas árvores de programaárvores de programa
arquitetura
11 de 26
Pontos de ligação entre árvores de Pontos de ligação entre árvores de programaprograma
arquitetura
12 de 26
Referências indiretas através de Tabelas de Referências indiretas através de Tabelas de ManipulaçãoManipulação
arquitetura
13 de 26
pessoa
integer
soma
pessoa
Carga das árvores de programa pela Carga das árvores de programa pela MVVMVV
arquitetura
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
15 de 26
Uma atividade navega sobre a árvore de Uma atividade navega sobre a árvore de programaprograma
arquitetura
16 de 26
Visão Geral da Arquitetura da VirtuosiVisão Geral da Arquitetura da Virtuosi
arquitetura
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
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
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