Limbo (język programowania)

Limbo
Pojawienie się1995
Paradygmatprogramowanie współbieżne
Typowaniesilne
TwórcaSean Dorward, Phil Winterbottom, Rob Pike
LicencjaOpen Source
Platforma systemowaInferno
Strona internetowa

Limbojęzyk programowania przeznaczony do tworzenia systemów rozproszonych oraz programów dla systemu operacyjnego Inferno. Limbo został stworzony w Bell Labs przez Dennisa Ritchie, Seana Dorwarda, Phila Winterbottoma i Roba Pike’a.

Kompilator Limbo generuje kod pośredni, niezależny od danej architektury procesora, który następnie jest wykonywany przez wirtualną maszynę o nazwie Dis lub też kompilowany w kod maszyny docelowej tuż przed jego wykonaniem dla zwiększenia wydajności. Tak więc wszystkie programy dla Limbo są przenośne pomiędzy dowolnymi platformami Inferno. Sposób rozwiązania problemu urównoleglenia operacji zastosowany w Limbo czerpie inspirację z Communicating Sequential Processes (CSP) Hoare’a.

Cechy języka

Język oprogramowania Limbo wykazuje się następującymi cechami:

  • modularność
  • programowanie współbieżne
  • twarde sprawdzanie zgodności typów w trakcie kompilacji
  • komunikacja międzyprocesowa za pośrednictwem kanałów określonego rodzaju
  • automatyczne zwalnianie nieużywanych zasobów
  • proste abstrakcyjne typy danych

Przykłady

W składni Limbo można dostrzec zarówno wpływy języka C, jak i Pascala oraz jego następców[1].

name := type value;
name0,name1 : type = value;
name2,name3 : type;
name2 = value;
for (expr1 ; expr2 ; expr3) statement.

„Witaj, Świecie!”

 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("Hello World!\n");
 }

Przypisy

  1. Dennis M. Ritchie: The Limbo Programming Language (ang.). [dostęp 2011-08-27]. Cytat: A quick glance at the program reveals that the syntax of Limbo is influenced by C in its expressions, statements, and some conventions (...), and also by Pascal and its successors (...)

Literatura

Trzecie wydanie systemu operacyjnego Inferno oraz język oprogramowania Limbo są opisane w podręczniku Inferno Programming with LimboISBN 0-470-84352-7​ (Chichester: John Wiley & Sons, 2003), by Phillip Stanley-Marbell. Inny podręcznik – „The Inferno Programming Book: An Introduction to Programming for the Inferno Distributed System”, autorstwa Martina Atkinsa, Charlesa Forsytha, Roba Pike’a i Howarda Trickeya, nie został nigdy dokończony.

Linki zewnętrzne