Limbo (język programowania)
Limbo - ję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 maszynowy niezależny od danej architektury procesora, który następnie jest wykonywane 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.
Spis treści |
[edytuj] 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
[edytuj] 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;
[edytuj] "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
- ↑ Dennis M. Ritchie: The Limbo Programming Language (ang.). [dostęp 27-08-2011]. 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 (...)
[edytuj] Literatura
Trzecie wydanie systemu operacyjnego Inferno oraz język oprogramowania Limbo są opisane w podręczniku Inferno Programming with Limbo ISBN 0470843527 (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.