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

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