1 / 22

Alunos: Angelo Ribeiro (arnpr) Eduardo Tavares (eagt)

Reestruturação das Linguagens da Disciplina “Paradigmas de Linguagens de Programação” para Java 1.5. Alunos: Angelo Ribeiro (arnpr) Eduardo Tavares (eagt) Euclides Neto (enan) Prof.: Augusto Sampaio (acas). Próximos Passos. Alteração das outras Linguagens;

meadow
Download Presentation

Alunos: Angelo Ribeiro (arnpr) Eduardo Tavares (eagt)

An Image/Link below is provided (as is) to download presentation Download Policy: Content on the Website is provided to you AS IS for your information and personal use and may not be sold / licensed / shared on other websites without getting consent from its author. Content is provided to you AS IS for your information and personal use only. Download presentation by click this link. While downloading, if for some reason you are not able to download a presentation, the publisher may have deleted the file from their server. During download, if you can't get a presentation, the file might be deleted by the publisher.

E N D

Presentation Transcript


  1. Reestruturação das Linguagens da Disciplina “Paradigmas de Linguagens de Programação” para Java 1.5 Alunos: Angelo Ribeiro (arnpr) Eduardo Tavares (eagt) Euclides Neto (enan) Prof.: Augusto Sampaio (acas)

  2. Próximos Passos • Alteração das outras Linguagens; • Atualização do site ou Construção de documentação via Doxygen; • Verificar utilização de Enumeration na classe Tipo;

  3. Roteiro • Reestruturação das Linguagens(Java 1.5): • *Classe Tipo (Leonardo Lucena,special Guest) • Imperativa1; • Imperativa2; • OO1; • Atualização da Base de Dados CVS com as outras linguagens e alteração dos .jj para aceitar parâmetros de entrada; • Documentação Automática com D’oxygen; • Aula para a nova turma de PLP;

  4. Reestruturação da Linguagem *Classe Tipo • Utilização do Tipo Enumeration e EnumSet; Antes: publicstaticfinalint INTEIRO = 1; publicstaticfinalint BOOLEANO = 2; publicstaticfinalint STRING = 4; publicstaticfinalint INDEFINIDO = 8; Depois: public enum Tipos{INTEIRO, BOOLEANO, STRING}

  5. Reestruturação da Linguagem *Classe Tipo Antes: public static final Tipo TIPO_INTEIRO = new Tipo(INTEIRO); public static final Tipo TIPO_BOOLEANO = new Tipo(BOOLEANO); public static final Tipo TIPO_STRING = new Tipo(STRING); public static final Tipo TIPO_PONTO_FLUTUANTE = new Tipo(PONTO_FLUTUANTE); public static final Tipo TIPO_INDEFINIDO = new Tipo(INDEFINIDO); Depois: public static final Tipo TIPO_INTEIRO = new Tipo(EnumSet.of(Tipos.INTEIRO)); public static final Tipo TIPO_BOOLEANO = new Tipo(EnumSet.of(Tipos.BOOLEANO)); public static final Tipo TIPO_STRING = new Tipo(EnumSet.of(Tipos.STRING)); public static final Tipo TIPO_INDEFINIDO = new Tipo(EnumSet.noneOf(Tipos.class));

  6. Reestruturação da Linguagem *Classe Tipo Antes: public Tipo() { this(INTEIRO + BOOLEANO + STRING + PONTO_FLUTUANTE); } public Tipo(int tipo, Tipo prox) { this.tipo = tipo; this.prox = prox; } Depois: public Tipo() { this(EnumSet.allOf(Tipos.class)); } public Tipo(Set<Tipos> tipo, Tipo prox) { this.tipo = tipo; this.prox = prox; }

  7. Reestruturação da Linguagem *Classe Tipo Antes: publicint getTipo() { return tipo; } Depois: public Set<Tipos> get() { return Collections.unmodifiableSet(tipo); }

  8. Reestruturação da Linguagem *Classe Tipo Antes: publicboolean eInteiro() { return (tipo & INTEIRO) != 0; } Depois: publicboolean eInteiro() { return tipo.contains(Tipos.INTEIRO); }

  9. Reestruturação da Linguagem Imperativa 1 • Modificações: • Lista: • Utilização do ForEach: • Parametrização das Classes Stack, HashMap:

  10. Reestruturação da Linguagem Imperativa 1 Lista Antes: Lista Depois: public class ListaValor { private Valor valor; private ListaValor listaValor; public int length() {...} public Valor head() {...} public ListaValor tail() public class Lista<T> { protected T head; protected Lista<T> tail; …. public class ListaValor extends Lista<Valor>{

  11. Imperativa 2 • Modificações: • ListaExpressão e Lista Declaração de Parâmetros: • Utilização do ForEach: • Parametrização das Classes Stack, HashMap:

  12. Reestruturação da Linguagem Imperativa 2 Lista Antes: Lista Depois: public class ListaExpressao { private Expressao expressao; private ListaExpressao listaExpressao; public int length() {...} public Expressao head() {...} public ListaExpressao tail() public class Lista<T> { protected T head; protected Lista<T> tail; …. public class ListaExpressao extends Lista<Expressao>{ … public class ListaDeclaracaoParametro extends Lista<DeclaracaoParametro> {

  13. OO1 • Modificações: • Eliminação do pacote Coleção; • Utilização do ForEach: • Parametrização das Classes Stack, HashMap:

  14. OO1 Antes: Depois: public Stack<HashMap<Id, Valor>> getPilha();

  15. Documentação D’oxygen Doxygen é um sistema de documentação para C++, C, Java, Objective-C, Python, IDL (Corba e Microsoft flavors) e algumas extensões PHO,C#, e D.

  16. Documentação D’oxygen • Com essa ferramenta podemos fazer: • Gerar página html de documentação de código (ou até mesmo Latex). A documentácão é extraída diretamente do código fonte, o que facilita manter a documentação consistente com o código fonte. (Esta funcionalidade é utilizada por desenvolvedores da Motorola); • Pode-se configurar o D’oxygen para extrair partes de código que não seja propriamente de documentação, como por exemplo, diagramas de classes, diagrama de sequencia, dentro vários outros artifícios; • Você pode até mesmo ‘abusar’ do d’oxygen e usálo para criar documentos normais, tipo manual de instruções.

  17. Documentação D’oxygen • Como usar? • Baixar o doxygen do site www.doxygen.org; • Instalar o GraphViz para geração dos .dot(Diagramas de Classes); • Rodar o doxywizard; • Step1: Configure Doxygen. Neste ponto você pode escolher o Wizard(configuração simples) ou o expert( mais detalhes);

  18. Documentação D’oxygen • Como usar? • Para começar vamos escolher o Wizard; • Dar um nome e versao ao projeto (plp,1.0); • Apontar para o diretorio onde está o codigo fonte a ser documentado; • Geraremos uma documentação de todas as linguagens, já que colocamos a mesma em pacotes;

  19. Documentação D’oxygen • Como usar? • Escolha o local onde a documentação será armazenada; • Na aba Mode escolheremos “All Entities” na parte “Select the desired extraction mode” e seleciona “Include cross-referenced source code in the output” e a opcao “Optimize for Java output”

  20. Documentação D’oxygen • Como usar? • Na aba output escolha somente HTML com frames para navegação. • E por ultimo a aba Diagrams “Use dot tool from GraphViz package to generate Diagrams”. • Salve o arquivo configuração para ser utilizado novamente depois (documentação automática); • Working dir (Diretório onde o d’oxygen foi instalado); • PRESSIONE START.

  21. Documentação D’oxygen ENJOY IT!

  22. Questions, Please !

More Related