Limbo (プログラミング言語)

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  ISBN 0-470-84352-7 (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

プログラミング言語
オープンソースソフトウェア
Inferno (オペレーティングシステム)