Loading article…
| パラダイム | コンパイル型、並行型、構造化型 |
|---|---|
| デザイン: | フィル・ウィンターボトム |
| 初登場 | 1992年 |
| タイピングの規律 | 静的、強い |
| OS | ベル研究所のプラン9 |
| 影響を受けた | |
| C、ニュースクウィーク | |
| 影響を受けた | |
| リンボ、ラスト、ゴー | |
Alef は、ベル研究所の Phil Winterbottom によってPlan 9オペレーティング システムの一部として設計された、現在は廃止された並行プログラミング言語です。Newsqueakのチャネル ベースの並行モデルを、コンパイルされたCのような言語で実装しました。
歴史
Alef は Plan 9 の第 1 版と第 2 版に登場したが、第 3 版の開発中に放棄された。[1] [2] Rob Pike は後に、Alef が自動メモリ管理を欠いていたことを指摘して、Alef の終焉を説明した。これは、Pike と他の人々が Winterbottom に言語にガベージ コレクションを追加するよう促したにもかかわらずである。 [3] また、2000 年 2 月のスライドショーで、Pike は次のように述べている。「…Alef は実りある言語であったが、複数のアーキテクチャにまたがるバリアント言語を維持するのが難しすぎることが判明したため、そこから学んだことを生かして、C 用のスレッド ライブラリを構築した。」[4]
Alefは2つのプログラミング環境に取って代わられました。Limboプログラミング言語はAlefの直接の後継とみなされ、Infernoオペレーティングシステムで最も一般的に使用されている言語です。Alefの並行性モデルは、Plan 9の第3版でlibthread ライブラリの形で複製され、これによりAlefの機能の一部がCプログラムで利用できるようになり、既存のAlefプログラム( Acmeなど)を翻訳できるようになりました。[5]
例
この例はAlefリファレンスマニュアルから引用したものです。[1]この例はタプルデータ型 の使用方法を説明しています。
( int , byte * , byte ) func () { return ( 10 , "hello" , 'c' ); }
void main () { int a ; byte * str ; byte c ; ( a , str , c ) = func (); }
参照
参考文献
- ^ ab Winterbottom, Phil (1995). 「Alef 言語リファレンス マニュアル」. Plan 9 プログラマーズ マニュアル: 第 2 巻. Murray Hill: AT&T.
- ^ 「第3版(2000年)への序文」。Plan 9マニュアル。 マレーヒル:ベル研究所。 2000年6月。 2015年2月5日時点のオリジナルよりアーカイブ。2012年10月29日閲覧。
- ^ Pike, Rob (2010). Go 並行処理スタイルの起源。OSCON Emerging Languages Camp。2021 年 12 月 13 日時点のオリジナルよりアーカイブ。
- ^ Pike, Rob. 「Rio: 並行ウィンドウシステムの設計」(PDF) 。2013 年3 月 8 日閲覧。
- ^ "thread(2)". Plan 9 マニュアル. 2012-10-29閲覧。
- Flandrena, Bob (1995)。「Alef ユーザーズ ガイド」。Plan 9 プログラマーズ マニュアル: 第 2 巻。Murray Hill: Bell Labs。
- Phil Winterbottom (1992-10-20). 「Plan9 VM」.ニュースグループ: comp.os.research. Usenet: 1c1denINN441@darkstar.UCSC.EDU.
