HomeDownloadContatoLinks

Informações sobre o UAL
UAL -  Unesa Algorithmic Language

 

UAL - Unesa Algorithmic Language é um interpretador animado que, através da execução e visualização das etapas de um algoritmo, auxilia o aprendizado do aluno iniciante em Computação.

Com ele, os alunos poderão implementar seus próprios algoritmos utilizando recursos gráficos, ou seja, a representação lógica desses algoritmos através da animação, para compreender, de forma rápida e dinâmica, como as estruturas por eles desenvolvidas se comportam.

Esta linguagem foi desenvolvida durante o Projeto Final do Curso de Informática da Universidade Estácio de Sá - Campus Friburgo.

Agradecemos ao mestre Juarez, pela sua paciência e dedicação, e a Simon Marlow, desenvolvedor do Happy, pelas informações prestadas.

Os tópicos a seguir esclarecem um pouco mais sobre a linguagem.

1. Introdução
2. Descrição do Sistema
3. Funcionamento do Sistema
4. Conclusão
5. Referências


Voltar

1. Introdução:

Os alunos iniciantes em programação costumam experimentar, na maioria das vezes, grande dificuldade para compreender a nova forma de raciocínio que lhes é apresentada. Naturalmente, estamos acostumados a pensar de forma não estruturada, ou seja, na comunicação cotidiana que habitualmente utilizamos, não necessitamos aprimorar o raciocínio lógico.

Quando nos deparamos com as linguagens de programação, geralmente através da construção de algoritmos, temos que aprender a raciocinar de forma diferente. A grande dificuldade na concepção e no entendimento de algoritmos é o problema do relacionamento dos aspectos ativos e passivos, ou seja, como entender as estruturas dinâmicas das possíveis execuções do algoritmo a partir de sua estrutura estática.

Com o avanço tecnológico, os computadores estão, cada vez mais, fazendo parte do cotidiano das pessoas e, conseqüentemente, os programas utilizados tornam-se mais intuitivos. Hoje em dia, utilizamos o computador como uma ferramenta de ensino, isto é, o próprio computador exerce a função de transmitir conhecimento. Este tipo de ensino, denominado ensino computadorizado, permite maior interação entre usuário e computador tendo em vista os novos recursos audiovisuais, a dinâmica das informações disponibilizadas e o fato de permitir ao usuário escolher o enfoque desejado ao seu aprendizado.

O propósito desta linguagem é permitir ao aluno iniciante em programação utilizar um instrumento capaz de auxiliá-lo visualmente na execução de seus próprios algoritmos. A linguagem UAL vem de encontro a esta necessidade, integrando os aspectos dinâmicos e estáticos em uma só ferramenta, permitindo ao aluno escrever seus programas em Portugol (pseudo-linguagem de programação), executando e visualizando, através de gráficos animados, o comportamento ativo do seu algoritmo. O aluno poderá então interagir com todo o processo de execução do programa, desenvolvendo naturalmente sua lógica em programação.

Devido a sua interface simples e atrativa, esperamos que esta ferramenta tenha importância para assegurar o interesse dos alunos no desenvolvimento de programas, visto que, atualmente, é observado certo desprendimento de determinados estudantes no aprendizado de uma linguagem de programação, devido à inexistência de ferramentas de apoio ou pelo fato de seu primeiro contato ser diretamente com uma linguagem de programação, como por exemplo, o Pascal, utilizado para a implementação dos algoritmos.

A linguagem UAL é uma ferramenta de ensino computadorizado trazendo todos os benefícios abordados anteriormente, inovando a metodologia de ensino tradicional adotada, tendo como principal objetivo construir uma base sólida de conhecimento lógico, que será importante para o crescimento progressivo do aluno, fornecendo mais condições para agregar valor a sua carreira profissional.

Voltar

2. Descrição do Sistema:

O objetivo deste projeto foi facilitar a introdução dos conceitos de programação, otimizando a metodologia de ensino tradicional e, conseqüentemente, auxiliando o processo de aprendizagem do aluno.

Para isso, foi desenvolvido um sistema que consiste em uma nova linguagem de programação, totalmente em Português, tendo por base o Portugol para descrição de algoritmos.

Além das facilidades provenientes dessa nova linguagem, também foram utilizados recursos gráficos, de forma a permitir que o aluno pudesse visualizar, através de uma seqüência animada, as fases da execução do seu algoritmo. Essa visualização encontra-se sob a forma de fluxogramas gerados a partir do programa fonte, que irá animar cada instrução do programa, permitindo ao aluno a compreensão visual do mesmo, que antes só poderia ser observado sob o aspecto estático.

Voltar

3. Funcionamento do Sistema:

Para o desenvolvimento do interpretador, inicialmente, definimos uma gramática, que pode ser entendida como a descrição formal da sintaxe de linguagens de programação.

A gramática utilizada é uma adaptação das linguagens de programação Pascal e C, com vocabulário em Português, da classe LALR(1) (Lookahead Left-to-Right Rightmost Derivation).

O passo seguinte foi a construção de uma árvore gramatical, também chamada de árvore sintática, que possui as seguintes propriedades: a raiz é o símbolo de partida, cada folha é rotulada por um terminal (símbolo básico a partir do qual as cadeias são formadas) e cada nó interior é rotulado por um não-terminal (variável sintática que denota uma cadeia de caracteres). Cada nó da árvore representa uma operação e o filho de um nó representa o argumento da operação.

Esta estrutura foi implementada utilizando-se a linguagem de programação Haskell.

Com a estrutura gramatical definida, foram desenvolvidos os analisadores léxico, sintático e semântico para a interpretação e averiguação do programa fonte, gerado pelo usuário.

Para a integração com os módulos gráficos, foi utilizado o aplicativo daVinci, que permite uma comunicação com a linguagem utilizada, de modo a inserir os próprios comandos do daVinci juntamente com a avaliação do programa fonte, permitindo assim, sua animação.

Para maior clareza, manutenibilidade e flexibilidade do sistema, o sistema encontra-se subdividido em módulos.

Através da compilação dos módulos do sistema, foram gerados dois arquivos executáveis. O primeiro permite a simples execução do algoritmo e o segundo, além da execução, exibe um fluxograma animado.

É facultativo ao usuário a utilização de um editor desenvolvido especificamente para essa linguagem, o qual permite a edição e execução do programa por ele desenvolvido, contendo inclusive, o manual dessa linguagem.

Os aplicativos da linguagem UAL foram disponibilizados para a plataforma "Linux". Porém a linguagem foi desenvolvida segundo o conceito de portabilidade, ou seja, tanto o interpretador como o editor podem ser compilados para outras plataformas, bastando para isso, utilizar os respectivos Haskell e Tcl/Tk, sendo que o daVinci (utilizado no módulo gráfico) no momento não está disponível para a plataforma Windows.

Voltar

4. Conclusão:

Esta linguagem representa uma nova abordagem para o ensino computadorizado, evidenciando todos os benefícios de uma linguagem de programação em Português que disponibiliza para o aluno a representação gráfica e animada de seus algoritmos.

Nosso objetivo foi inovar a metodologia de ensino tradicional adotada, visando a formação de uma base sólida de conhecimento lógico, importante para o crescimento progressivo do aluno, fornecendo mais condições para agregar valor a sua carreira profissional.

Com o intuito de difundir este novo sistema para a comunidade acadêmica, informamos que a linguagem UAL encontra-se disponibilizada gratuitamente, levando-se em consideração o leftright, ou seja, o sistema possui código aberto, permitindo aos interessados o desenvolvimento de novas funcionalidades, desde que mantida a filosofia inicial do mesmo e mencionadas as autorias.

Voltar

5. Referências:

  1. Modern Compiler Implementation in ML Andrew W. Appel Cambridge University, 1998
  2. Compiladores - Princípios, técnicas e ferramentas. Alfred V. Aho, Ravi Sethi e Jeffrey D.Ullman Guanabara Koogan, 1995
  3. Técnicas Computacionais Juarez Muylaert Filho Notas de Aula, IPRJ/UERJ, 1997
  4. A construção de um compilador Valdemar W. Setzer, Inês S. Homen de Melo Editora Campus, 1987
  5. TCL - Tool Command Language e TK - Tool Kit de Interface para TCL Rogério Dei Santi Notas de Aula, ICMSC/USP - São Carlos
  6. Tutorial de TCL/TK Jário de Araujo Universidad de Oviedo, Espanha, 1998 http://tritium.fis.unb.br/jario
  7. Anais do IX Congresso da SBC Uberlândia - MG, 1989 Fluxo - uma ferramenta para testes de programas, Avelino F. Zorzo
  8. DaVinci V2.1 Online Documentation Michael Fröhlich and Mattias Werner Universität Bremen, Germany, 1998
  9. The Glasgow Haskell Compiler User's Guide, Version 4.06 University of Glasgow, 1999
  10. A Gentle Introduction to Haskell 98 Paul Hudak 1, John Peterson1, Joseph H. Fasel2 Yale University1 and University of California2, 1999
  11. Report on the Programming Language - Haskell 98 Simon P. Jones, John Hughes, Kevin Hammond, et all. Microsoft Research, Cambridge, Chalmers University of Technology, University of St. Andrews, 1999
  12. Happy User Guide Simon Marlon and Andy Gill, 1999
  13. Hugs 98 - A functional programming system based on Haskell 98 User Manual Mark P. Jones and John C. Peterson Oregon Graduate Institute and Yale University, 1999
  14. TclHaskell - User Manual Meurig Sage University of Glasgow, Scotland, 1999
Voltar
Hosted by www.Geocities.ws

1