| Nome: | Descrição: | Tamanho: | Formato: | |
|---|---|---|---|---|
| 1.12 MB | Adobe PDF |
Autores
Orientador(es)
Resumo(s)
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.
Descrição
Trabalho apresentado no âmbito do Mestrado em
Engenharia InformƔtica, como requisito parcial
para obtenção do grau de Mestre em Engenharia
InformƔtica
Palavras-chave
Linguagens de programação Concorrência Memória partilhada Verificação estÔtica Tipos espaciais/comportamentais Inferência de tipos
