Implementação de uma linguagem concorrente com tipos comportamentais


Autoria(s): Parreira, Nuno Jorge Corvo
Contribuinte(s)

Seco, João

Data(s)

16/05/2011

16/05/2011

2011

Resumo

Trabalho apresentado no âmbito do Mestrado em Engenharia Informática, como requisito parcial para obtenção do grau de Mestre em Engenharia Informática

A programação concorrente com base em memória partilhada é uma disciplina difícil. A possível interferência entre threads no acesso a zonas de memória partilhada pode causar comportamentos que comprometam o funcionamento esperado de um programa. Em geral, pretende-se que os programas concorrentes não tenham problemas do tipo deadlocks ou race conditions. Esse objectivo atinge-se controlando o acesso às zonas partilhadas através de mecanismos fornecidos a nível dos sistemas operativos, que são eficazes mas difíceis de usar sem cometer erros. Uma forma de minimizar esse problema é usar linguagens com abstracções próprias para representar concorrência, e mais ainda se estas permitirem efectuar análise estática do código dos programas para detectar situações anómalas. Este trabalho descreve a implementação de uma linguagem de programação orientada aos objectos, com suporte para concorrência, e respectivo algoritmo de tipificação, baseado em tipos espaciais/comportamentais, com operadores de tipo de composição sequencial, composição paralela, escolha, repetição e replicação. O sistema de tipos em que se baseia o algoritmo de tipificação apresentado aqui, garante a ausência de race conditions nos programas através da disciplina no acesso a recursos partilhados. O algoritmo de tipificação combina técnicas de verificação de tipos com inferência de tipos; obtém também a utilização dos identificadores livres por análise das expressões, e relaciona-a com os tipos declarados para os objectos através de uma relação de subtyping.

Este trabalho foi parcialmente suportado pelas bolsas PTDC/EIA-CCO/104583/2008 e de introdução à investigação do DI-FCT-UNL

Identificador

http://hdl.handle.net/10362/5628

Idioma(s)

por

Publicador

Faculdade de Ciências e Tecnologia

Direitos

openAccess

Palavras-Chave #Linguagens de programação #Concorrência #Memória partilhada #Verificação estática #Tipos espaciais/comportamentais #Inferência de tipos
Tipo

masterThesis