Limboは分散システム構築用プログラミング言語であり、Infernoオペレーティングシステムでのアプリケーションソフトウェア作成に使う。ベル研究所のSean Dorward、Phil Winterbottom、ロブ・パイクが設計した。
Limboコンパイラはアーキテクチャ独立なオブジェクトコードを生成し、それをDis仮想マシンでインタプリタ実行するか、性能を強化するために実行直前にコンパイルする。したがって、Limboで書いたアプリケーションは全てのInfernoプラットフォーム上で動作可能である。
Limboにおける並行性の方式は、アントニー・ホーアのCommunicating Sequential Processes (CSP) に影響を受けている。
言語機能 Limboは次のような機能を備えている。 モジュラープログラミング 並行プログラミング 強い型チェック (コンパイル時と実行時) 型付きチャンネル上のプロセス間通信 自動ガベージコレクション 単純抽象データ型
例 LimboはPascal風の定義(宣言)を採用している(VARというキーワードはない)。 name := type value; name0,name1 : type = value; name2,name3 : type; name2 = value;
Hello world 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");
書籍 Infernoの第3版とLimboはPhillip Stanley-Marbellの教科書的著書Inferno Programming with Limbo (Chichester: John Wiley & Sons, 2003) で解説されている。Martin Atkins、Charles Forsyth、ロブ・パイク、Howard Trickeyによる書籍 "The Inferno Programming Book: An Introduction to Programming for the Inferno Distributed System" も執筆が開始されたが、未だにリリースされていない。
関連項目 Inferno (オペレーティングシステム) Plan 9 from Bell Labs Go (プログラミング言語)
外部リンク Vita Nuova page on Limbo A Descent into Limbo by Brian Kernighan The Limbo Programming Language by Dennis M. Ritchie and Addendum by Vita Nuova. Inferno Programming with Limbo by Phillip Stanley-Marbell Threaded programming in the Bell Labs CSP style