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

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

Larva/Virtuos í Antonio Kantek T ó picos Avan ç ados de Programa ç ão Orientada a Objetos - MAC 413/5715 Segundo Semestre de 2003 Prof. Fabio Kon.

Apresentações semelhantes


Apresentação em tema: "Larva/Virtuos í Antonio Kantek T ó picos Avan ç ados de Programa ç ão Orientada a Objetos - MAC 413/5715 Segundo Semestre de 2003 Prof. Fabio Kon."— Transcrição da apresentação:

1 Larva/Virtuos í Antonio Kantek T ó picos Avan ç ados de Programa ç ão Orientada a Objetos - MAC 413/5715 Segundo Semestre de 2003 Prof. Fabio Kon

2 Agenda Reflexão Computacional Orienta ç ão a Aspectos Extensões e ferramentas para Java Á rvores de Programas Arquitetura Larva/Virtuos í [1]

3 Reflexão Computacional Reflexão computacional é fortemente recomendada na constru ç ão de sistemas de softwares complexos Pode-se implementar reflexão computacional modificando-se uma m á quina virtual estendendo assim a linguagem Linguagens h í bridas se baseiam em desvios extras no fluxo de execu ç ão para executar reflexão computacional

4 Orienta ç ão a Aspectos Possibilidade de separar regras de neg ó cio de servi ç os de infraestrutura Altera ç ões feitas em c ó digo fonte ou em c ó digo compilado Aspectos e reflexão computacional não são excludentes

5 Á rvores de Programas [] Compiladores Just-in-Time não conseguem criar otimiza ç ões dr á sticas Representa ç ão intermedi á ria de um programa Reflexão computacional é realizada atrav é s da modifica ç ão dinâmica de á rvores de programa

6 Á rvores de Programas [] Á rvores de programa possibilitam a edi ç ão do comportamento das aplica ç ões antes ou durante a sua execu ç ão Á rvores de programa relacionam-se entre si de acordo com os relacionamentos das classes

7 Extensões e Ferramentas para Java [7] BCEL [2] JavaAssist [3] Juice [4] Guaran á [5] OpenJava [6]

8 Larva/Virtuos í Linguagem de programa ç ão reflexiva orientada a objetos. Todo elemento do programa pode sofrer reflexão computacional. Reflexão computacional é realizada atrav é s da modifica ç ão dinâmica de á rvores de programa.

9 Larva/Virtuos í Combina caracter í sticas encontradas em Java [7], SmallTalk [8] e Eiffel [9]. Não h á comandos nem tipos primitivos. Os ú nicos s í mbolos reservados são: :=atribui ç ão returnretorno em m é todo Larva/Virtuos í oferece facilidades sint á ticas para lidar com objetos que dizem respeito ao fluxo de execu ç ão (como if ou while)

10 Larva/Virtuos í Tipagem forte X tipagem fraca? Larva/Virtuos í possui tipagem forte. Extensibilidade, Larva/Virtuos í implementa o conceito de heran ç a simples. A classe herdeira possui acesso total e irrestrito aos m é todos da superclasse. Qualquer classe pode ser especializada sem restri ç ão.

11 Larva/Virtuos í A implementa ç ão de um m é todo é feita por uma composi ç ão de Statements (Composite Pattern), onde cada Statement representa um comando. Construtores são um tipo de m é todo especial que possuem como tipo de retorno uma instância da pr ó pria classe que define o construtor. Construtores são chamados de forma est á tica, enquanto que m é todos normais precisam ser executados sobre uma instância

12 Larva/Virtuos í Classes podem ser redefinidas em tempo de execu ç ão Classe é uma implementa ç ão de um tipo abstrato Uma classe pode possuir um bloco de dados (DataBlock), atributos e um conjunto de m é todos M é todo possui nome, tipo de retorno, parâmetro de entrada e uma lista de exporta ç ão como em Eiffel.

13 Larva/Virtuos í Em Larva/Virtuos í, todas as classes herdam de Object, mesmo não havendo heran ç a expl í cita como em Java Não existe modificadores de acesso tais como public, private ou protected. O controle é feito por lista de exporta ç ão Um m é todo exportado para a classe Object, significa que ele est á disponibilizado para qualquer classe

14 Larva/Virtuos í class Conta { Real saldo := 0; Integer numero; constructor fabrique(Integer n) export Gerente { numero := n; } void depoisite(Real d) export Gerente { saldo.add(d); } class Gerente { constructor trabalhe() { Conta conta := Conta.fabrique(220); c.deposite(10); }

15 Meta-Modelo

16 Trabalhos Futuros Defini ç ão do mecanismo de coleta de lixo Extensão do Meta-Modelo para incluir eventos e asser ç ões Defini ç ão de um c ó digo nativo Mecanismo de seguran ç a Defini ç ão de uma biblioteca padrão Defini ç ão de uma biblioteca de meta- componentes (transa ç ão, persistência e seguran ç a)

17 D ú vidas ? antonio_kantek@hotmail.com alcides@ppgia.pucpr.br

18 Referências [1] Nunes, Leonardo e Calsavara, Alcides (2000), Estudos sobre a concep ç ão de uma linguagem de programa ç ão reflexiva e correspondente ambiente de programa ç ão [2] BCEL - The Byte Code Engineering Library http://jakarta.apache.org/bcel/index.html [3] Javassist http://www.csg.is.titech.ac.jp/~chiba/javassist/ [4] Michael Franz and Thomas Kistler. Introducing Juice http://citeseer.nj.nec.com/context/608344/0 [5] Guaran á http://www.dcc.unicamp.br/~oliva/guarana/ [6] OpenJava http://openjava.sourceforge.net/

19 Referências [7] Sun MicroSystems (2000). Java Language Specification http://java.sun.com/aboutJava/communityproces s/maintenance/JLS/jls2draft.pdf http://java.sun.com/aboutJava/communityproces s/maintenance/JLS/jls2draft.pdf [8] Robson, D and Goldberg, A (1983) SmallTalk: The Language [9] ISE Eiffel (2000). An invitation to Eiffel http://eiffel.com/doc/manuals/language/intro/pa ge.html http://eiffel.com/doc/manuals/language/intro/pa ge.html


Carregar ppt "Larva/Virtuos í Antonio Kantek T ó picos Avan ç ados de Programa ç ão Orientada a Objetos - MAC 413/5715 Segundo Semestre de 2003 Prof. Fabio Kon."

Apresentações semelhantes


Anúncios Google