14 MAIO / TERÇA FEIRA / 14:18
FCUP PT 
 EN
 
 
APRESENTAÇÃO
PESSOAS
ENSINO
INVESTIGAÇÃO
BIBLIOTECA
NOTÍCIAS
CONTACTOS

On the Design and Implementation of a Virtual Machine for Process Calculi

Luís Lopes

Departamento de Ciência de Computadores & LIACC
Faculdade de Ciências, Universidade do Porto
Rua do Campo Alegre, 823 4150 Porto, Portugal

Dezembro de 1999


Resumo

Existe um interesse crescente no estudo de cálculos de processos como modelos formais para linguagens de programação com concorrência, distribuição e orientação a objectos. Actualmente, estas linguagens assumem uma especial importância pela adequação do seu modelo de programação ao desenvolvimento de grandes projectos de software, em especial no domínio das aplicações em rede ou para a Internet. O cálculo-pi assíncrono constitui um instrumento poderoso no estudo de mecanismos de concorrência e interacção entre processos. No entanto, não é um modelo adequado para a implementação de linguagens orientadas a objectos pois as codificações existentes de objectos no cálculo são pouco eficientes. O trabalho realizado na implementação de linguagens baseadas em cálculos de processos tem sido, até à data, infrutífero na obtenção de um modelo de computação unificado sob a forma de uma máquina virtual.

Esta tese introduz uma especificação e implementação de uma máquina virtual para uma forma do cálculo-pi -- o cálculo TyCO. O TyCO tem, para além de nomes, objectos e mensagens assíncronas como abstracções fundamentais. Desta forma, contrariamente a outros cálculos como o pi, os objectos não necessitam de codificação.

Inicia-se este trabalho com a definição de uma pequena linguagem de programação baseada no TyCO. A semântica estática da linguagem é definida por um sistema de inferência de tipos ao passo que a semântica dinâmica é introduzida sob a forma de uma máquina abstracta. Este modelo formal proporciona os alicerces para o desenvolvimento da máquina virtual e compilador da linguagem. A máquina virtual executa programas TyCO compilados para um formato byte-code, é compacta, independente da arquitectura de hardware subjacente e exibe uma performance que se compara favoravelmente com outras implementações. A máquina foi optimizada para o TyCO podendo no entanto ser utilizada na implementação de outros cálculos com pequenas alterações ou extensões à sua semântica.

Finalmente, define-se uma extensão ortogonal ao cálculo TyCO que proporciona o suporte para computações distribuídas e mobilidade de código. Neste modelo, a comunicação remota e a migração de código são induzidas pelo contexto léxico dos nomes no cálculo base. O modelo pode ser aplicado sem alterações a uma grande variedade de cálculos para os quais se verifiquem algumas pre-condições fracas.


FCUP 2024