Publicação
Programação de redes sensores baseada em eventos
| 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 |
| 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. |
|---|