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 Aron Borges ORIENTADOR: Alcides Calsavara

Apresentações semelhantes


Apresentação em tema: "Uma linguagem de programação para o ambiente Virtuosi Aron Borges ORIENTADOR: Alcides Calsavara"— Transcrição da apresentação:

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

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

3 Aron BorgesImplementação do Compilador e Semântica Formal 3 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)) {... }

4 Aron BorgesImplementaçã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: class Person { composition String name; }

5 Aron BorgesImplementaçã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 } {... }

6 Aron BorgesImplementação do Compilador e Semântica Formal 6 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.

7 Aron BorgesImplementação do Compilador e Semântica Formal 7 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)) {... }...

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

9 Aron BorgesImplementação do Compilador e Semântica Formal 9 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(); …

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

11 Aron BorgesImplementaçã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); }

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

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

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

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

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

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

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


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

Apresentações semelhantes


Anúncios Google