Limbo (linguagem de programação)
Limbo | |
---|---|
Paradigma | Computação concorrente |
Surgido em | 1995 |
Última versão | (1999) |
Criado por | Sean Dorward, Phil Winterbottom, Rob Pike |
Estilo de tipagem | Fortemente tipada |
Influenciada por | C, CSP, Pascal, Alef |
Influenciou | Stackless Python, Go |
Sistema operacional | Inferno |
Licença | Código aberto |
Página oficial | http://www.vitanuova.com/inferno/limbo.html |
Limbo é uma linguagem de programação para escrever sistemas distribuídos e é usada para escrever aplicações para o sistema operativo Inferno.
O compilador de Limbo gera código objeto independente da arquitectura. O código é interpretado pela máquina virtual Dis ou compilada antes do tempo de execução para melhorar a sua prestação. Assim, todas as aplicações Limbo são completamente portáteis para todas as plataformas Inferno.
Histórico da Linguagem
[editar | editar código-fonte]É uma linguagem de programação que foi desenvolvida pela Lucent Technologies Inc. para a execução de aplicações distribuídas de pouca escalabilidade (aplicações que executam sobre um número pequeno de nodos).
Paradigmas a que ela pertence
[editar | editar código-fonte]É uma linguagem de programação imperativa , que apesar de rodar em cima de uma máquina virtual,não é considerada orientada a objetos, pois não possui suporte a herança e nem a definição de classes.
Aplicações
[editar | editar código-fonte]É a linguagem utilizada para a criação de aplicações que rodam sobre a plataforma Inferno (Sistema Operacional), a qual é acompanhada por uma máquina virtual "DIS" que possui um interpretador para a linguagem.
Exemplos de Códigos
[editar | editar código-fonte]Programa "Hello world":
implement Command; include "sys.m"; include "draw.m"; sys: Sys; Command: module { init: fn (ctxt: ref Draw→Context, argv: list of string); }; # The canonical "Hello world" program, enhanced init(ctxt: ref Draw→Context, argv: list of string) { sys = load Sys Sys→PATH; sys→print("Hello world\n"); for (; argv!=nil; argv = tl argv) sys→print("%s ", hd argv); sys→print("\n"); }
Características da linguagem
[editar | editar código-fonte]A Limbo suporta as seguintes características:
- programação modular
- programação concorrente
- uma forte verificação de tipos, quer em tempo de compilação como em tempo de execução
- comunicação inter-processual
- colecção de lixo automática
- simples abstracção de tipo de dados