Publicação

Programação de redes sensores baseada em eventos

Ver documento

Detalhes bibliográficos
Resumo:As redes de sensores são constituídas por dispositivos com recursos muito limitados e na maior parte dos casos, utilizam pilhas com baixa capacidade como fonte de alimentação. Muitos destes dispositivos dispõem de uma pequena quantidade de armazenamento – apenas 2 KB de memória RAM – o que ilustra bem as suas grandes limitações computacionais. Ainda assim, estes dispositivos são utilizados em diversas áreas. A título de exemplo podemos salientar aplicação nas áreas da medicina, monitorização de incêndios, em operações militares e até em alarmes de incêndios dentro dos edifícios. A programação destes dispositivos está relacionado com o seu microcontrolador, sendo assim dependente do fabricante que produz o dispositivo. Tendo em conta que os fabricantes constroem dispositivos com diferentes microcontroladores, são usadas diversas linguagens de programação. A linguagem que propomos é baseada em eventos, ou seja, reage a estímulos. Exemplificando, se tivermos um dispositivo que esteja a fazer monitorização de incêndios e que determine que existe um fogo, este dispositivo vai reagir a esse estímulo, executando a parte do programa correspondente a este evento. Para a linguagem Macaw, foi desenvolvido um compilador, de forma a receber como input um programa sintaticamente válido. Este programa vai ser validado pelo sistema de tipos e processado por um conjunto de algoritmos de otimização. Por fim, vai ser convertido para bytecode, de modo a poder ser executado na Máquina Virtual. Com este compilador pretende-se calcular em tempo de compilação o tamanho máximo que a aplicação vai ocupar no dispositivo. Assim, permite ao programador saber se o dispositivo tem espaço de armazenamento suficiente para armazenar a aplicação, permitindo contornar uma das limitações destes dispositivos. Com esta linguagem, é possível resolver alguns dos problemas existentes relativamente a outras linguagens de programação. Ao poder ser utilizada em diversos dispositivos, permite que não seja necessário ter o conhecimento de todos os microcontroladores disponíveis. Uma outra vantagem importante, consiste em o compilador com o seu sistema de tipos identificar diversos erros cometidos pelo programador antes do programa ser executado.
Autores principais:Fernades, Bruno Alexandre Valdez
Assunto:Redes sensores Macroprogramação Eventos Compiladores Algoritmos de otimização Teses de mestrado - 2014
Ano:2014
País:Portugal
Tipo de documento:dissertação de mestrado
Tipo de acesso:acesso aberto
Instituição associada:Universidade de Lisboa
Idioma:português
Origem:Repositório da Universidade de Lisboa
Descrição
Resumo:As redes de sensores são constituídas por dispositivos com recursos muito limitados e na maior parte dos casos, utilizam pilhas com baixa capacidade como fonte de alimentação. Muitos destes dispositivos dispõem de uma pequena quantidade de armazenamento – apenas 2 KB de memória RAM – o que ilustra bem as suas grandes limitações computacionais. Ainda assim, estes dispositivos são utilizados em diversas áreas. A título de exemplo podemos salientar aplicação nas áreas da medicina, monitorização de incêndios, em operações militares e até em alarmes de incêndios dentro dos edifícios. A programação destes dispositivos está relacionado com o seu microcontrolador, sendo assim dependente do fabricante que produz o dispositivo. Tendo em conta que os fabricantes constroem dispositivos com diferentes microcontroladores, são usadas diversas linguagens de programação. A linguagem que propomos é baseada em eventos, ou seja, reage a estímulos. Exemplificando, se tivermos um dispositivo que esteja a fazer monitorização de incêndios e que determine que existe um fogo, este dispositivo vai reagir a esse estímulo, executando a parte do programa correspondente a este evento. Para a linguagem Macaw, foi desenvolvido um compilador, de forma a receber como input um programa sintaticamente válido. Este programa vai ser validado pelo sistema de tipos e processado por um conjunto de algoritmos de otimização. Por fim, vai ser convertido para bytecode, de modo a poder ser executado na Máquina Virtual. Com este compilador pretende-se calcular em tempo de compilação o tamanho máximo que a aplicação vai ocupar no dispositivo. Assim, permite ao programador saber se o dispositivo tem espaço de armazenamento suficiente para armazenar a aplicação, permitindo contornar uma das limitações destes dispositivos. Com esta linguagem, é possível resolver alguns dos problemas existentes relativamente a outras linguagens de programação. Ao poder ser utilizada em diversos dispositivos, permite que não seja necessário ter o conhecimento de todos os microcontroladores disponíveis. Uma outra vantagem importante, consiste em o compilador com o seu sistema de tipos identificar diversos erros cometidos pelo programador antes do programa ser executado.