| パラダイム | 同時 |
|---|---|
| デザイン: | ショーン・ドーワード、フィル・ウィンターボトム、ロブ・パイク |
| 開発者 | ベル研究所/ Vita Nuova Holdings |
| 初登場 | 1995年 |
| タイピングの規律 | 強い |
| OS | インフェルノ |
| ライセンス | GNU GPL v2、tarball の limbo サブフォルダ内の NOTICE を参照 |
| Webサイト | www.vitanuova.com/inferno/limbo.html |
| 主な実装 | |
| この仮想マシン | |
| 影響を受けた | |
| C、パスカル、CSP、アレフ、ニュースクウィーク | |
| 影響を受けた | |
| スタックレス Python、Go、Rust | |
Limboは分散システムを書くためのプログラミング言語であり、 Infernoオペレーティングシステム用のアプリケーションを書くために使用される言語です。ベル研究所でSean Dorward、Phil Winterbottom、Rob Pikeによって設計されました。[1]
Limboコンパイラは、アーキテクチャに依存しないオブジェクト コードを生成し、その後Dis 仮想マシンによって解釈されるか、実行直前にコンパイルされてパフォーマンスが向上します。そのため、すべての Limbo アプリケーションは、すべての Inferno プラットフォーム間で完全に移植可能です。
Limbo の並行性へのアプローチは、Pike の以前のNewsqueak言語と Winterbottom のAlefで実装および修正されたHoareの通信順次プロセス(CSP)に触発されました。
言語機能
Limbo は次の機能をサポートしています:
- モジュールプログラミング
- 並行プログラミング
- コンパイル時および実行時の強力な型チェック
- 型付きチャネルを介したプロセス間通信
- 自動ガベージコレクション
- 単純な抽象データ型
仮想マシン
Limbo コードを実行する Dis 仮想マシンは CISC のような VM で、演算、制御フロー、データ移動、プロセス作成、プロセス間の同期と通信、コード モジュールの読み込み、および高レベル データ型 (文字列、配列、リスト、通信チャネル) のサポートに関する命令を備えています。[2]循環データには参照カウントとリアルタイム ガベージ コレクターのハイブリッドを使用します。[3]
Dis のデザインの側面は、オリジナルのBeBoxで使用されていたAT&T Hobbitマイクロプロセッサからヒントを得ています。
例
Limbo は次のようにAdaスタイルの定義を使用します。
name :=型値; name0 、name1 :型=値; name2 、name3 :型; name2 =値;
こんにちは世界
コマンドを実装します。
include "sys.m" ; sys : Sys ;
「draw.m」をインクルードします。
"sh.m"を含めます。
init ( nil : ref Draw -> Context 、nil :文字列のリスト) { sys = load Sys Sys -> PATH ; sys -> print ( "Hello World! \n " ); }
書籍
Inferno オペレーティング システムと Limbo プログラミング言語の第 3 版については、Phillip Stanley-Marbell 著の教科書Inferno Programming with Limbo ISBN 0-470-84352-7 (Chichester: John Wiley & Sons、2003) で説明されています。別の教科書The Inferno Programming Book: An Introduction to Programming for the Inferno Distributed System (Martin Atkins、Charles Forsyth、Rob Pike、Howard Trickey 著) も作成が開始されましたが、リリースされませんでした。
参照
- インフェルノオペレーティングシステム
- リンボの前身であるアレフ
- ベル研究所のPlan 9、オペレーティングシステム
- Go、Google の類似言語
- AT&T Hobbit、Dis VM に影響を与えたプロセッサアーキテクチャ
参考文献
- ^ 「インフェルノ アプリケーション プログラミング」.ビタヌオバ。ビタヌオバ。2021 年1 月 26 日に取得。
- ^ 「Dis Virtual Machine Specific」 Vita Nuova 2000年。 2015年2月2日閲覧。
- ^ Lorenz Huelsbergen および Phil Winterbottomv (1998)。「細粒度同期なしの非常に並行なマーク アンド スイープ ガベージ コレクション」(PDF)。1998国際メモリ管理シンポジウム。
外部リンク
- Limbo の Vita Nuova ページ
- ブライアン・カーニガン著「リンボへの降下」
- Dennis M. Ritchie著の The Limbo Programming Languageと Vita Nuova 著の Addendum。
- Phillip Stanley-Marbell による Limbo を使用したインフェルノ プログラミング
- Bell Labs CSP スタイルのスレッドプログラミング
- Dis ソースコード、2017-09-21 にオリジナルからアーカイブ、2017-09-20に取得
- Inferno 仮想マシン Vita nuova のデザイン。
- 「Dis VM デザイン」、インフェルノ (第 4 版)、Cat V。
- 「Dis VM 仕様」、Inferno (第 4 版)、Cat V。
