以下の内容はhttps://www.weblio.jp/content/CLUより取得しました。


日外アソシエーツ株式会社日外アソシエーツ株式会社

Clu

名前 クルー

ウィキペディアウィキペディア

CLU

出典: フリー百科事典『ウィキペディア(Wikipedia)』 (2026/03/07 03:15 UTC 版)

CLU
パラダイム マルチパラダイム: オブジェクト指向手続き型
登場時期 1974年
設計者 バーバラ・リスコフMITでの彼女の学生たち
開発者 バーバラ・リスコフとMITでの彼女の学生たち
型付け 強い型付け
主な処理系 Portable CLUNative CLU
影響を受けた言語 Pascal
影響を与えた言語 Ruby
テンプレートを表示

CLU は、1974年から1975年にかけてMITバーバラ・リスコフが学生らと共に開発したプログラミング言語である。抽象データ型のコンストラクタ(操作コードを含む)を備えており、オブジェクト指向プログラミングへの重要なステップとなった。しかし、それ以外のオブジェクト指向の機能は欠けているか不完全であり、継承もなく、文法が扱いにくいことが欠点であった。CLU は完全なオブジェクト指向言語となる可能性を秘めていたが、実際にはそうならなかった。

クラスター

CLU の文法は他の多くの言語と同様 ALGOL に基づいていた。重要な追加点として「クラスター; cluster」がある。クラスターとは、CLU の型拡張システムであり、言語名の由来でもある(CLUster)。クラスターは現在のオブジェクト指向言語で言えば「オブジェクト」にほぼ相当する。以下に複素数を実装した CLU のクラスターの例を示す:

     complex_number = cluster is add, subtract, multiply, ....
          rep = record [ real_part: real, imag_part: real ]
          add = proc ... end add;
          subtract = proc ... end subtract;
          multiply = proc ... end multiply;
          ...
     end complex_number;

クラスターは当時としては最新の構造化プログラミングを実現していたが、CLU はクラスター自体には全く構造を提供していない。クラスター名はグローバルであり、クラスターをグループ化するための名前空間機構も無く、クラスター内にクラスターをローカルに作ることもできない。このような問題は CLU に限ったことではない。ALGOLでの変数のスコープを何故クラスターやオブジェクトにも拡張しなかったのかは定かではない。

CLU は暗黙の型変換をしない。クラスターでは、明示的型変換 'up' と 'down' で抽象データ型とその実体との変換をする。汎用型 'any' が用意されていて、プロシージャ force[] でオブジェクトが所定の型であるかチェックする。オブジェクトは可変(mutable)と不変(immutable)があり、整数などの基本型は後者に含まれる。

その他の特徴

もう1つの CLU の型システムでの重要な機能は「イテレータ; iterators」である。これは、集合からオブジェクトを順次取り出すものである。イテレータはブラックボックスであり、集合内のオブジェクトが何であるかを気にしないAPIを提供する。つまり、複素数の集合のイテレータと整数の集合のイテレータには区別がない。イテレータは最近の言語では一般的機能となっている。

CLU は他の言語での様々な試みに基づいた例外処理も備えている。例外は signal を使って発生させられ、except で処理される。型の設計が重視されているにもかかわらず、CLU には列挙型がなく、列挙型を作る方法もなかった。

CLU の特殊な機能として、多重代入がある。代入記号の左辺に複数の変数を書くことができる。例えば、x,y = y,x というコードで xy の値を入れ替えることができる。同様に関数は複数の値を返すことができ、x,y,z = f(t) などと記される。

CLU プログラム内のオブジェクトは全てヒープにあり、メモリ管理は自動的に行われる。

その他

他のプログラミング言語への影響

  • PythonRuby は CLU の影響を受けている(例えば、yield 文や多重代入)。
  • CLU は Ada と共に C++ のテンプレートに影響を与えた。
  • CLU の例外処理機構は Java や C++ などの新しい言語に影響を与えた。
  • Python の generator や C# の iterator の起源は CLU の iterators である。

文献

  • ビューティフルコード Brian Kernighanほか オライリージャパン ISBN 9784873113630

外部リンク


ウィキペディアウィキペディア

CLU

出典: フリー百科事典『ウィキペディア(Wikipedia)』 (2020/01/26 02:25 UTC 版)

NLOS-LS」の記事における「CLU」の解説

CLU(Container Launch Unit)と呼ばれる発射機は、内蔵されているコントロールユニット離れた場所から操作する移動司令所との間で無線によって一定時間ごとに情報交換されており、ミサイルの状態やバッテリー残量などが確認出来るだけでなく、発射操作遠隔命令によってコントロールできる発射機比較小型軽量であるため、ピックアップトラックでも運搬できる小型トラック荷台搭載され1つ移動司令所からは複数のCLUが制御でき、CLUに携帯端末接続して直接発射制御行なうことも可能である。

※この「CLU」の解説は、「NLOS-LS」の解説の一部です。
「CLU」を含む「NLOS-LS」の記事については、「NLOS-LS」の概要を参照ください。

ウィキペディア小見出し辞書の「CLU」の項目はプログラムで機械的に意味や本文を生成しているため、不適切な項目が含まれていることもあります。ご了承くださいませ。 お問い合わせ

辞典・百科事典の検索サービス - Weblio辞書辞典・百科事典の検索サービス - Weblio辞書

「CLU」の例文・使い方・用例・文例

Weblio日本語例文用例辞書はプログラムで機械的に例文を生成しているため、不適切な項目が含まれていることもあります。ご了承くださいませ。



固有名詞の分類

プログラミング言語 DL/I  Unlambda  CLU  ドメイン固有言語  HyperTalk



以上の内容はhttps://www.weblio.jp/content/CLUより取得しました。
このページはhttp://font.textar.tv/のウェブフォントを使用してます

不具合報告/要望等はこちらへお願いします。
モバイルやる夫Viewer Ver0.14