1 reestruturação das linguagens da disciplina “paradigmas de linguagens de programação” para...
Post on 07-Apr-2016
218 Views
Preview:
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 Passos1. Alteração das outras Linguagens;2. Atualização do site ou Construção de
documentação via Doxygen;3. 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:public static final int INTEIRO = 1;public static final int BOOLEANO = 2;public static final int STRING = 4;public static final int INDEFINIDO = 8;
Depois:
public enum Tipos{INTEIRO, BOOLEANO, STRING}
5
Reestruturação da Linguagem*Classe Tipo
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);
Antes:
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
public Tipo() {this(INTEIRO + BOOLEANO + STRING + PONTO_FLUTUANTE);}public Tipo(int tipo, Tipo prox) {this.tipo = tipo;this.prox = prox;}
Antes:
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
public int getTipo() {return tipo;}
Antes:
Depois:
public Set<Tipos> get() {return Collections.unmodifiableSet(tipo);}
8
Reestruturação da Linguagem*Classe Tipo
public boolean eInteiro() {return (tipo & INTEIRO) != 0;}
Antes:
Depois:
public boolean eInteiro() {return tipo.contains(Tipos.INTEIRO);}
9
Reestruturação da LinguagemImperativa 1
Modificações:1. Lista:2. Utilização do ForEach:3. Parametrização das Classes Stack, HashMap:
10
Reestruturação da LinguagemImperativa 1
Lista Antes:
public class ListaValor { private Valor valor; private ListaValor listaValor;public int length() {...} public Valor head() {...}public ListaValor tail()
Lista Depois:
public class Lista<T> { protected T head; protected Lista<T> tail; ….
public class ListaValor extends Lista<Valor>{
11
Imperativa 2
Modificações:1. ListaExpressão e Lista Declaração de Parâmetros:2. Utilização do ForEach:3. Parametrização das Classes Stack, HashMap:
12
Reestruturação da LinguagemImperativa 2
Lista Antes:
public class ListaExpressao { private Expressao expressao;private ListaExpressao listaExpressao;public int length() {...} public Expressao head() {...}public ListaExpressao tail()
Lista Depois:
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:1. Eliminação do pacote Coleção;2. Utilização do ForEach:3. Parametrização das Classes Stack, HashMap:
14
OO1Antes:
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’oxygenCom essa ferramenta podemos fazer:1. 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);
2. 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;
3. Você pode até mesmo ‘abusar’ do d’oxygen e usálo para criar documentos normais, tipo manual de instruções.
17
Documentação D’oxygenComo usar?1. Baixar o doxygen do site
www.doxygen.org;2. Instalar o GraphViz para geração
dos .dot(Diagramas de Classes);3. Rodar o doxywizard;4. Step1: Configure Doxygen. Neste ponto
você pode escolher o Wizard(configuração simples) ou o expert( mais detalhes);
18
Documentação D’oxygenComo usar?5. Para começar vamos escolher o Wizard;6. Dar um nome e versao ao projeto
(plp,1.0);7. Apontar para o diretorio onde está o
codigo fonte a ser documentado;8. Geraremos uma documentação de todas
as linguagens, já que colocamos a mesma em pacotes;
19
Documentação D’oxygenComo usar?9. Escolha o local onde a documentação
será armazenada;10.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’oxygenComo usar?11.Na aba output escolha somente HTML com
frames para navegação.12.E por ultimo a aba Diagrams “Use dot tool
from GraphViz package to generate Diagrams”.
13.Salve o arquivo configuração para ser utilizado novamente depois (documentação automática);
14.Working dir (Diretório onde o d’oxygen foi instalado);
15.PRESSIONE START.
21
Documentação D’oxygen
22
Questions, Please !Questions, Please !
top related