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

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

Uma linguagem de programação para o ambiente Virtuosi

Apresentações semelhantes


Apresentação em tema: "Uma linguagem de programação para o ambiente Virtuosi"— Transcrição da apresentação:

1 Uma linguagem de programação para o ambiente Virtuosi
Aron Borges ORIENTADOR: Alcides Calsavara

2 Implementação do Compilador e Semântica Formal
Introdução Monitoria Programação Imperativa; Ensino; Rigor do paradigma O.O; Virtuosi Proximidade da Sintaxe Java e não Eiffel. Aron Borges Implementação do Compilador e Semântica Formal

3 Implementação do Compilador e Semântica Formal
Exemplo Código escrito em C++: int x = 3; int y = 11; if(x > y) { ... } Código escrito em Aram: Inteiro x = Inteiro.make(3); Inteiro y = Inteiro.make(11); if(x.maior(y)) { Aron Borges Implementação do Compilador e Semântica Formal

4 Os qualificadores associação e composição
Exemplo de Associação: class Person { association Vehicle car; } Exemplo de Composição: composition String name; Aron Borges Implementação do Compilador e Semântica Formal

5 Qualificadores das Operações e Lista de Exportação
class Boolean { constructor make() exports { all } { ... } method void flip() exports { none } { action equals(Boolean b) exports { A, B } { Aron Borges Implementação do Compilador e Semântica Formal

6 Implementação do Compilador e Semântica Formal
Ações Uma ação é um tipo especial de operação que define um desvio condicional de uma sentença; Ela é o único tipo de operação que pode ser chamada em uma avaliação de expressão. Aron Borges Implementação do Compilador e Semântica Formal

7 Implementação do Compilador e Semântica Formal
Exemplo de Ação class Boolean { ... action default() exports { all } { execute; } action equals(Boolean b) exports { all } { skip; Boolean a = Boolean.make(true); Boolean b = Boolean.make(false); if(a) { ... } if(a.equals(b)) { ... } Aron Borges Implementação do Compilador e Semântica Formal

8 Classes da biblioteca padrão
Boolean; Integer; Character; String; DataBlock Aron Borges Implementação do Compilador e Semântica Formal

9 Implementação do Compilador e Semântica Formal
DataBlock Chamadas de Sistema: datablock dados; datablock copia; System.createDataBlock(dados, 32); System.createDataBlock(copia, 32); System.storeInteger(dados, 1); System.cloneDataBlock(copia, dados); Abstração da linguagem, encapsulando as chamadas de sistema: datablock dados = datablock.make(32); datablock copia = datablock.make(32); dados.storeInteger(1); copia = dados.clone(); Aron Borges Implementação do Compilador e Semântica Formal

10 Componentes e Pacotes do Compilador
Aron Borges Implementação do Compilador e Semântica Formal

11 Exemplo de código fonte
class Pessoa { } class Veiculo { composition Integer posicao; association Pessoa motorista; constructor instanciar(Pessoa p) exports { all } { motorista = p; posicao = Integer.make(0); Aron Borges Implementação do Compilador e Semântica Formal

12 Analise Léxica e Sintática
Aron Borges Implementação do Compilador e Semântica Formal

13 Árvore Gramatical Resultante (Saída do ANTLR)
( CLASS [Pessoa,<an identifier>] CLASS_ELEMENTS ) ( CLASS [Veiculo,<an identifier>] ( CLASS_ELEMENTS ( VARIABLE ( RELATIONSHIP COMPOSITION ) ( TYPE [Integer,<an identifier>] ) [posicao,<an identifier>] ) ( VARIABLE ( RELATIONSHIP ASSOCIATION ) ( TYPE [Pessoa,<an identifier>] ) [motorista,<an identifier>] ) ( CONSTRUCTOR ( FEATURE [instanciar,<an identifier>] ( FORMAL_PARAMETERS ( FORMAL_PARAMETER ( TYPE [Pessoa,<an identifier>] ) [p,<an identifier>] ) ) ( EXPORTS ( EXPORT_LIST EXPORT_ALL ) ) ( [{,<STATEMENT_LIST>] [motorista,<an identifier>] ( [=,<PREROGATIVE>] [p,<an identifier>] ) [posicao,<an identifier>] ( [=,<PREROGATIVE>] ( [(,<INVOCATION_CALL>] [Integer,<an identifier>] [make,<an identifier>] ( ACTUAL_LIST ( ACTUAL_PARAMETER [0,<CARDINAL_LITERAL>] ) ) ) ) ) ) ) Aron Borges Implementação do Compilador e Semântica Formal

14 Geração do Código Intermediário
Aron Borges Implementação do Compilador e Semântica Formal

15 Código Intermediário Resultante
Aron Borges Implementação do Compilador e Semântica Formal

16 Implementação do Compilador e Semântica Formal
Validação do Código Aron Borges Implementação do Compilador e Semântica Formal

17 Geração de Código Objeto
Aron Borges Implementação do Compilador e Semântica Formal

18 Código Objeto Resultante
Aron Borges Implementação do Compilador e Semântica Formal


Carregar ppt "Uma linguagem de programação para o ambiente Virtuosi"

Apresentações semelhantes


Anúncios Google