Detalhes dos Anais Veja o resumo do trabalho

Publicado no Encontro de Saberes 2017

Evento: XXV Seminário de Iniciação Científica

Área: ENGENHARIAS

Subárea: Engenharia de Computação

Órgão de Fomento: MEC / Fundo Nacional de Desenvolvimento da Educação

Título
Sistema de Gerenciamento Automático de Memória Baseado em Regiões: Formalização e Uso em uma Linguagem de Programação para Sistemas Embarcados
Autores
BRUNO ARAUJO CAMARDA (Autor)
Rodrigo Geraldo Ribeiro (Orientador)
Resumo
Sistemas embarcados são ubíquos na sociedade moderna e estão presentes nos mais diversos dispositivos eletrônicos, como celulares, aparelhos de GPS e em aplicações onde a corretude e segurança são fatores críticos, como dispositivos médicos. Normalmente, tais sistemas são desenvolvidos na linguagem C, que permite que o programador possua um maior controle sobre o processo de alocação dinâmica de memória. Porém, prover essa maior flexibilidade para gerenciamento de memória exige que os desenvolvedores sejam mais cuidadosos, uma vez que é simples construir programas em C que manipulam ponteiros de maneira a gerar erros em tempo de execução. Linguagens de programação modernas, como Java, ML e Haskell, possuem os chamados coletores de lixo (tradução de Garbage Collectors), que são uma rotina responsável, durante a execução do programa, de encontrar áreas de memória não mais referenciadas e liberá-las para uso posterior, liberando o programador da responsabilidade de manipular, de maneira explícita, a alocação e liberação de memória. Porém, plataformas para desenvolvimento de sistemas embarcados, como o Arduino, possuem uma quantidade limitada de poder computacional e de memória, o que limita ou mesmo impossibilita o uso de mecanismos de coleta de lixo para gerenciamento automático de memória para softwares embarcados. Neste sentido, o presente projeto vislumbrou a adequação do uso de técnicas para gerenciamento automático de memória que não dependam de algoritmos para coleta de lixo, permitindo a utilização de uma linguagem em que o gerenciamento de memória seja transparente para o desenvolvedor. Foi estudado sistemas de tipos baseados em lógica linear e como estes podem possibilitar a alocação de memória de forma segura em linguagens como C. Como resultado deste estudo, percebeu-se que o uso de tais sistemas de tipos podem reconciliar a eficiência da manipulação explícita de alocação de memória e a segurança proporcionada por algoritmos de coleta de lixo.
Voltar Visualizar PDF