Implementação de gerência de memória e tipos estruturados da linguagem C no WebAlgo
View/ Open
Date
2018-05-05Author
Lima, Fernando Pagno de
Orientador
Dorneles, Ricardo Vargas
Metadata
Show full item recordAbstract
O uso de ferramentas automatizadas e interativas na educação está em franca expansão e, naturalmente, a área da computação acompanha essa evolução. Neste contexto da computação destacam-se os interpretadores/simuladores de linguagens de programação, muitos dos quais estão disponíveis online de forma gratuita para qualquer um que possa se interessar. A Universidade de Caxias do Sul (UCS) acompanha essa tendência com o desenvolvimento e manutenção do WebAlgo, previamente batizado de AlgoWeb. A sua versão atual combina reconhecimento e interpretação de código escrito em Português Estruturado com uma ferramenta educativa de construção e resolução de exercícios de programação. Suas funcionalidades já possibilitam o reconhecimento e interpretação de algoritmos em um pequeno subconjunto da linguagem C. Como essa linguagem é de suma importância para qualquer formação na área da computação e sendo ela a base dos sistemas operacionais mais utilizados é desejável que o WebAlgo passe a reconhecer e interpretar C para facilitar o aprendizado de novatos em programação utilizando suas ferramentas de apoio e acompanhamento. Uma questão central sobre a linguagem C e que está diretamente ligada à justificativa para este trabalho é que dificilmente será possível encontrar um programa escrito em C que não faça uso de alocação dinâmica de memória, e muito menos algum que não use ponteiros. Não se pode dizer que alguém que não seja capaz de escrever código em C que faça uso dessas duas funcionalidades tenha de fato aprendido a linguagem e esteja apto a usá-la para quaisquer fins práticos, acadêmicos ou não. Exatamente por essa razão que, após as implementações realizadas neste projeto, o WebAlgo passa a reconhecer estruturas semânticas complexas, incluindo tipos estruturados e simular o gerenciamento de memória com foco no aprendizado do usuário (sic).