Publicação

Uma linguagem de programação com tipos de sessão independentes do contexto

Ver documento

Detalhes bibliográficos
Resumo:Os sistemas de software distribuídos têm uma comunicação intensiva onde a complexidade do padrão de mensagens trocadas entre processos tende a tornar a codificação dos mesmos difícil. As tecnologias existentes na área do software concorrente não são muito apropriadas ao desenvolvimento deste tipo de sistemas onde a comunicação é intensiva e bastante complexa devido ao elevado número de mensagens que são trocadas entre processos. É necessário definir mecanismos que permitam verificar se uma determinada sequência de interações feitas num canal de comunicação está bem estruturada e se está de acordo com um protocolo predefinido. Os tipos de sessão foram desenvolvidos com o objetivo de colmatar as lacunas existentes no software concorrente com comunicação intensiva. Permitem definir protocolos que, recorrendo a tipos, representam uma “interação correta” do sistema e ainda garantem outras propriedades como a inexistência de erros na comunicação e de situações de impasse. Garantem também que uma mensagem é recebida ou que a comunicação num canal termina. Têm uma estrutura com recursividade terminal que implica que os protocolos que definem sejam descritos por uma linguagem regular. No entanto, têm limitações na sua estrutura que impossibilitam a descrição eficiente de estruturas em forma de árvore. Os tipos de sessão livres do contexto foram apresentados como uma extensão dos tipos de sessão tradicionais e descrevem estruturas que não são possíveis de descrever recorrendo aos tipos de sessão tradicionais. Neste caso, os protocolos são descritos por linguagens determinísticas livres do contexto. Deste trabalho resulta uma linguagem de programação chamada FreeST que é concorrente e explicitamente tipificada, onde os processos comunicam exclusivamente por troca de mensagens. Esta linguagem recorre a tipos de sessão independentes de contexto de modo a estender a expressividade dos tipos de sessão tradicionais e possibilitar a implementação, com segurança de tipos, de operações remotas em tipos de dados recursivos.
Autores principais:Almeida, Bernardo Pinto de
Assunto:Linguagens de programação Concorrência Troca de mensagens Tipos de sessão Tipos de sessão independentes do contexto Teses de mestrado - 2018
Ano:2018
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:Os sistemas de software distribuídos têm uma comunicação intensiva onde a complexidade do padrão de mensagens trocadas entre processos tende a tornar a codificação dos mesmos difícil. As tecnologias existentes na área do software concorrente não são muito apropriadas ao desenvolvimento deste tipo de sistemas onde a comunicação é intensiva e bastante complexa devido ao elevado número de mensagens que são trocadas entre processos. É necessário definir mecanismos que permitam verificar se uma determinada sequência de interações feitas num canal de comunicação está bem estruturada e se está de acordo com um protocolo predefinido. Os tipos de sessão foram desenvolvidos com o objetivo de colmatar as lacunas existentes no software concorrente com comunicação intensiva. Permitem definir protocolos que, recorrendo a tipos, representam uma “interação correta” do sistema e ainda garantem outras propriedades como a inexistência de erros na comunicação e de situações de impasse. Garantem também que uma mensagem é recebida ou que a comunicação num canal termina. Têm uma estrutura com recursividade terminal que implica que os protocolos que definem sejam descritos por uma linguagem regular. No entanto, têm limitações na sua estrutura que impossibilitam a descrição eficiente de estruturas em forma de árvore. Os tipos de sessão livres do contexto foram apresentados como uma extensão dos tipos de sessão tradicionais e descrevem estruturas que não são possíveis de descrever recorrendo aos tipos de sessão tradicionais. Neste caso, os protocolos são descritos por linguagens determinísticas livres do contexto. Deste trabalho resulta uma linguagem de programação chamada FreeST que é concorrente e explicitamente tipificada, onde os processos comunicam exclusivamente por troca de mensagens. Esta linguagem recorre a tipos de sessão independentes de contexto de modo a estender a expressividade dos tipos de sessão tradicionais e possibilitar a implementação, com segurança de tipos, de operações remotas em tipos de dados recursivos.