• Nenhum resultado encontrado

TECNOLOGIAS A SEREM UTILIZADAS

No documento universidade do vale do itajaí (páginas 37-42)

Como pode ser visto na Tabela 2, existe uma grande carência no que tange ferramentas para uso em ambiente web, bem como grande parte das ferramentas analisadas não permite portabilidade, tendo sido desenvolvida focada em um único sistema operacional.

A portabilidade apresentada por algumas ferramentas, a ilustração de variáveis, a possibilidade de verificar os algoritmos construídos e executá-los são alguns pontos fortes encontrados nas ferramentas estudadas e que devem ser adotados neste projeto.

Cross-Plataform: permite seu uso em diferentes plataformas por ser escrito totalmente em Java; e

Wizards: ferramentas para gerenciamento de código, criação de templates entre outros.

Conforme NetBeans (2006), o NetBeans IDE é um ambiente rápido e completo para o desenvolvimento de aplicações em Java que é executado em qualquer sistema operacional que tenha uma máquina virtual Java. Silva (2006) caracteriza a ferramenta como um conjunto de bibliotecas, módulos e APIs (Application Programming Interface) que formam um ambiente para desenvolvimento visual com funções para compilar, depurar além de outros recursos como:

• Depurar e compilar programas;

• Autocompletar, depurador de erros e Servlets;

• Salientador de sintaxe para XML, CSS, JSP, HTML e IDL;

• Suporte as linguagens Java, C e C++;

• Macros de abreviação;

• Identação automática de código; e

• Refatoração básica de código Java.

2.4.2 Applets

Segundo Lemay e Perkins (1997), applets são códigos escritos em Java que são executados dentro de um navegador no ambiente WWW através de tags especiais do HTML. Para Deitel e Deitel (2003) são pequenos programas que ficam armazenados em computadores remotos e são carregados quando um navegador se conecta e eliminados ao fim de sua execução.

Applets são programas escritos em Java que utilizam JVM (Java Virtual Machine) da máquina do cliente ou até mesmo no próprio navegador para interpretar o seu código, são geralmente usados para adicionar interatividade em aplicações web que não podem ser obtidas apenas com uso de HTML (WIKIPEDIA, 2006).

Algumas vantagens em relação ao uso de applets:

• Permitem construir pacotes sofisticados de processamento de gráficos, desenhos e imagens uma vez que possuem os mesmo recursos do navegador;

• O processamento ocorre do lado cliente;

• É Multi-plataforma;

• Executam em ambiente web com uso de navegador; e

• Permite o uso de threads.

Levando em consideração que os applets podem ser carregados em qualquer computador, existem algumas restrições que devem ser realizadas para aumentar a segurança em seu uso, tais como (LEMAY e PERKINS, 1997):

• Não tem acesso ao sistema de arquivos do computador no qual está sendo executado;

• Não podem trocar informações com servidores diferentes do servidor que originalmente o armazenou;

• Não podem acessar ou carregar programas nativos da plataforma; e

• Necessitam de uma máquina virtual para serem executados.

Segundo Indrusiak (1996), o applet possui um ciclo de vida que pode ser definido pelas funções init, start, stop e destroy. O método init é executado no momento em que o applet é carregado, o método start é invocado no instante em que o applet é desenhado na tela, a função stop é usada no momento em que o applet deixa de ser visível e a função destroy deve ser chamada quando os recursos alocados pelo applet precisam ser liberados.

2.4.3 Gals

Gals é uma ferramenta de código livre, que tem como propósito agregar no mesmo sistema recursos para construção do analisador léxico e sintático, diferentemente de outras soluções existentes que implementam apenas uma das abordagens, levando o usuário a ter a necessidade de conhecer duas ferramentas distintas (GESSER, 2003). O ambiente foi desenvolvido em Java, o que permite sua execução em qualquer plataforma que possua uma máquina virtual Java.

Construção de analisadores Léxicos com Gals

De acordo com Gesser (2003), a geração de analisadores léxicos é feita através de especificações léxicas, baseadas em expressões regulares. Na ferramenta pode ser feita a especificação de tokens através de expressão regular e especificação de definições léxicas, que podem ser vistas como macros na definição dos tokens.

Exemplo de macro ou definição léxica:

Letra: [a-zA-Z]

Digito: [0-9]

A definição acima de Letra e Digito servem apenas para facilitar a construção das especificações de tokens, sem que seja necessário reescrever a expressão regular que gera uma letra ou digito toda vez que essa tiver que ser utilizada. O exemplo a seguir mostra o uso de uma definição léxica na especificação de token.

ID: {Letra} ({Letra}| {Digito})*

INT: {Digito}+

Construção de analisadores Sintáticos com Gals

Na construção de um analisador sintático na ferramenta Gals são necessárias três etapas:

definição de tokens ou símbolos terminais, definição de símbolos terminais e definição das regras da gramática (GESSER, 2003).

Na Figura 11 é especificado um analisador sintático para operações de soma e subtração com números inteiros e variáveis, a notação adotada pela ferramenta para descrição da gramática é a BNF.

Figura 11. Construção de Analisador Sintático com a Ferramenta Gals

A ferramenta além de construir o código para o analisador léxico e sintático, gera um esqueleto do analisador semântico e possibilita ao usuário inserir ações semânticas no lado direito da regra de produção da gramática. Durante a análise sintática toda vez que uma regra semântica é encontrada o analisador sintático repassa o número da ação e o último token lido para o analisador semântico. Cabe ao desenvolvedor do compilador ou interpretador realizar as demais etapas de síntese, trabalhando em uma abordagem dirigida pela sintaxe.

3 DESENVOLVIMENTO

Diversas fontes foram estudadas durante a elaboração da modelagem do projeto como Aho et al. (1995), Processadores de Crespo (1998) e Louden (1997). Além de outros materiais, os diagramas tradicionais para a modelagem de compiladores estão relacionados às Árvores de Derivação e Sintaxe Abstrata. Ainda assim resolveu-se abordar neste projeto alguns artefatos da UML para especificar partes do sistema que não estão ligadas especificamente à construção do núcleo do compilador, mas sim as funcionalidades acessíveis ao usuário.

Na sessão 3.1 é apresentado o levantamento de requisitos, onde são exibidos requisitos funcionais, não funcionais e as regras de negócio que constituem o sistema. Na sessão 3.2 está a especificação do modelo do grupo de casos de testes necessário para realizar a verificação do algoritmo. As duas sessões posteriores apresentam consecutivamente o modelo de casos de uso e diagramas de classes. A sessão 3.5 contém o protótipo do sistema e a última sessão deste capítulo trata a implementação do projeto.

No documento universidade do vale do itajaí (páginas 37-42)

Documentos relacionados