Tópicos Avançados em Linguagens e Modelos de Programação
Mestrado em Engenharia Informática 2003---2004
Linguagens de Programação para Sistemas Distribuídos
Docente: Luís Caires
Objectivos
A implementação de sistemas distribuídos realiza-se frequentemente
utilizando linguagens de programação de uso geral, e recorrendo a
infraestruturas que disponibilizam funcionalidades de comunicação,
migração, localização, segurança, detecção e recuperação de falhas,
etc. Estas funcionalidades apresentam-se usualmente sob a forma de
bibliotecas ou middleware.
Espera-se que no futuro estas funcionalidades estejam disponíveis ao
nível das linguagens de programação, encapsulados em abstracções de
alto nível, tal como os monitores e os métodos sincronizados escondem
o uso de semáforos e disciplinam a estruturação de programas
concorrentes.
Neste módulo, apresentam-se aspectos essenciais do estado da arte no
desenvolvimento de abstrações ao nível das linguagens de
programação que suportem o desenvolvimento de sistemas
distribuídos.
- AULA 1. Modelos de concorrência e mobilidade: o modelo PI, ambientes,
e PI distribuído. Linguagens de programação para sistemas concorrentes
e distribuídos: motivação, requisitos, e enquadramento histórico
(exemplos: Concurrent ML, Java) (Milner,Cardelli,Reppy).
- AULA 2. Problemática associadas à mobilidade de código e processos.
Escopo lexical distribuído: o modelo Obliq. (Cardelli) Representacao de mobilidade
de codigo no modelo Pi (Amadio, Leth, Thomsen).
- AULA 3. Modelização executável de infrastruturas de comunicação e
mobilidade; comunicação independente da localização. A linguagem
Nomadic Pict (Wojciechowski, Sewell).
- AULA 4. Linguagens de programação de sistemas de larga escala: transparência e modelos
de falhas. A linguagem JoCaml (Conchon, Fessant).
Lista de Leituras
Global
Computation, por Luca Cardelli.
Communicating and Mobile Systems: the pi-calculus. R. Milner.
Cambridge University Press, 1999. [ Cap. 1-4 ]
The Polyadic pi-Calculus: A Tutorial.
Robin Milner.
Concurrent ML: Design, Application and Semantics
. J. Reppy.
An Imperative Object Calculus. M Abadi and L. Cardelli.
Obliq: A Language with Distributed Scope
. L. Cardelli.
From a concurrent lambda-calculus to the pi-calculus. R. Amadio, L. Leth and B. Thomsen.
Comparing the Expressive Power of the Synchronous and the
Asynchronous Pi-Calculus
C. Palamidessi
JoCaml:
Mobile Agents for Objective-Caml. S. Conchon and F. Fessant.
Nomadic Pict: Language and Infrastruture Design for Mobile Agents.
P. Wojciechowski, P. Sewell
Avaliação
VER Página principal da disciplina!