Ir al contenido

Limbo (lenguaje de programación)

De Wikipedia, la enciclopedia libre
Limbo
Desarrollador(es)
Bell Labs/Vita Nuova
http://www.vitanuova.com/inferno/limbo.html
Información general
Paradigma Concurrente
Apareció en 1995
Diseñado por Sean Dorward, Phil Winterbottom, and Rob Pike
Sistema de tipos Fuertemente tipado
Implementaciones Dis
Influido por C, CSP, Alef
Ha influido a Stackless Python
Sistema operativo Inferno
Licencia Open Source

Limbo es un lenguaje de programación para escribir sistemas distribuidos. Además es el lenguaje usado para escribir aplicaciones para el sistema operativo Inferno. Fue diseñado en los Laboratorios Bell por Sean Dorward, Phil Winterbottom y Rob Pike.

El compilador de Limbo genera código objeto independiente de la plataforma que luego es interpretado por la máquina virtual Dis o compilado antes de su ejecución para mejorar el rendimiento. Por ello, todas las aplicaciones hechas con Limbo son completamente portables en todas las plataformas soportadas por Inferno.

El enfoque de manejo de la concurrencia que tiene Limbo fue inspirada por el CSP de Hoare.

Características del lenguaje

[editar]

Limbo tiene las siguientes características:

Ejemplos

[editar]

Limbo utiliza definiciones al estilo de Pascal como en:

name := type value;
name0,name1 : type = value;
name2,name3 : type;
name2 = value;
 
implement Command;

include "sys.m";
    sys: Sys;

include "draw.m";

include "sh.m";

init(nil: ref Draw->Context, nil: list of string)
{
    sys = load Sys Sys->PATH;
    sys->print("¡Hola mundo!\n");
}

Libros

[editar]

La 3ª edición del sistema operativo Inferno y el lenguaje de programación Limbo están descritas en el libro Inferno Programming with Limbo ISBN 0-470-84352-7 (Chichester: John Wiley & Sons, 2003), por Phillip Stanley-Marbell. Otro libro de texto, "The Inferno Programming Book: An Introduction to Programming for the Inferno Distributed System", por Martin Atkins, Charles Forsyth, Rob Pike y Howard Trickey, fue empezado pero nunca se publicó.

Véase también

[editar]

Enlaces externos

[editar]