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.

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!