ハミルトンCシェル

ウィキペディアから、無料の百科事典
ナビゲーションにジャンプ 検索にジャンプ
ハミルトンCシェル
Windows7.png上のハミルトンCシェルx64
Windows7デスクトップ上の64ビットHamiltonCシェル。
原作者ニコールハミルトン
初回リリース1988年12月12日; 33年前 (1988-12-12
安定リリース
5.2.g/2017年3月5日; 5年前 (2017-03-05
で書かれているC
オペレーティング・システムWindows(歴史的にはOS / 2
タイプWindows上のUnixシェル
ライセンス商用 プロプライエタリソフトウェア
Webサイトhamiltonlabs .com / Cshell .htm

ハミルトンCシェルは、以前のコードに基づかない完全にオリジナルの作品として、ハミルトン研究所でニコールハミルトン[3]によって作成されたMicrosoftWindows用UnixCシェルユーティリティ[1] [2]のクローンです。これは、1988年12月12日にOS/2で最初にリリースされました[4] [5] [6] [7] [8] [9]そして1992年7月にWindowsNTでリリースされました。 [10] [11] [12] OS / 2バージョンは2003年に廃止されましたが、Windowsバージョンは引き続き積極的にサポートされています。

デザイン

ハミルトンCシェルは、いくつかの点でUnixCシェルとは異なります。これらには、コンパイラアーキテクチャ、スレッドの使用、およびUnixの規則ではなくWindowsに従うという決定が含まれます。[8] [9]

パーサー

Windows7のHamiltonCシェルとCygwinbash は、因数分解に再帰を使用していることを示しています

元のCシェルは、アドホックパーサーを使用します。これは、その制限についての不満につながっています。これは、ユーザーがインタラクティブに入力する種類のものには十分に機能しますが、ユーザーがスクリプトに書き込むのに時間がかかる可能性のあるより複雑なコマンドにはあまり適していません。たとえば、foreachステートメントの出力をgrepにパイプすることはできません。処理できるコマンドの複雑さには限界がありました。[13]

対照的に、Hamiltonはトップダウンの再帰下降パーサーを使用して、ステートメントを実行する前に内部フォームにコンパイルできるようにします。[1] [8] その結果、ステートメントは任意にネストまたはパイプ処理できます。[6]...言語は、組み込みおよびユーザー定義のプロシージャ、ローカル変数、浮動小数点および追加の式、編集およびワイルドカード演算子で拡張されました。これには、ゼロ以上に一致する 「」と記述された「不定ディレクトリ」ワイルドカード構造が含まれます。パターンの残りの部分を一致させるために必要なディレクトリレベル。[14]

スレッド

ハミルトンCシェルとCygwinbash 日付ループ。

フォークやその機能を再現するための高性能な方法がないため、Hamiltonは代わりにWindowsスレッド機能を使用します[6] [8] 新しいスレッドが作成されると、同じプロセススペース内で実行され、すべてのプロセス状態を共有します。1つのスレッドが現在のディレクトリまたはメモリの内容を変更すると、すべてのスレッドで変更されます。プロセスよりもスレッドを作成する方がはるかに安価ですが、それらの間に分離はありません。欠落している個別のプロセスの分離を再現するために、スレッドは協力してロックを使用してリソースを共有します。[15]

Windowsの規則

ハミルトンは、ドライブ文字ファイル名のスラッシュエスケープ文字などのWindows規則も直接サポートしているという点で、他のUnixシェルとは異なります。 [9]

参照

  1. ^ a b 初期のハミルトンCシェルクイックリファレンス (PDF)ハミルトン研究所、マサチューセッツ州ウェイランド。1990年7月10日2016年7月28日取得
  2. ^ Faught、Danny(1996年8月31日)。「シェルゲーム」ソフトウェアQAMagazine3(4)。2012年3月1日にオリジナルからアーカイブされました2013年4月8日取得
  3. ^ 著者は、29:37に始まるスタンフォードでのパネルディスカッションで、ダグラスハミルトンからの彼女の移行について話し合った。 ニコール・ハミルトン、カール・イングラム、リズ・ケネディ・マイヤーズ、トム・ミルズ、ジョン・オードウェイ、スコット・サッチャー、カースティ・ワイルド(モデレーター)(2007年11月28日)。1972年のクラスパネルディスカッション:地獄の私たちは行かない(静かに夜に)!スタンフォード同窓会、iTunesU 2016年7月28日取得
  4. ^ Machlis、Sharon。「IBMのウェイランドライター」(PDF)ミドルセックスニュース(1988年12月18日):2E 2016年7月28日取得
  5. ^ サスマン、アン。「HamiltonCシェルはOS/2アプリケーションの開発をスピードアップします」(PDF)PCウィーク(1988年12月26日– 1989年1月2日):37 2016年7月28日取得
  6. ^ a b c ハミルトン、ダグラスA. 「ハミルトンCシェルの発表」(PDF)IBM Personal Systems Developer(1989年夏):119–121 2016年7月28日取得
  7. ^ リッチマン、スコット(1991年1月)。「ハミルトンCシェルの調査」(PDF)ドブ博士の日記2016年7月28日取得
  8. ^ a b c d Goutal、Kenneth G. 「ハミルトンCシェル」(PDF)MIPSマガジン(1989年9月)2016年7月28日取得
  9. ^ a b c イェーガー、トム。「OS/2、Unixスタイル」(PDF)BYTE Magazine(1990年2月)2016年7月28日取得
  10. ^ Windowsリリースノート4.0用のHamiltonCシェル、2016年7月28日取得。
  11. ^ ハミルトン、ダグ(1995年7月27日)。「NTでCシェルを探しています」ニュースグループ:  comp.os.ms-windows.nt.miscUsenet:[email protected] 2010年10月8日取得  
  12. ^ Deignan、Michael P.(1998年3月31日)。「ハミルトンCシェル」WindowsITPro 2019年9月22日取得
  13. ^ トムクリスチャンセンによって有害で​​あると考えられたCshプログラミング
  14. ^ 「ワイルドカードとパターンマッチング」ハミルトン研究所2018年8月13日取得
  15. ^ ハミルトン、ダグ(1995年4月21日)。「マルチリーダー/シングルライターロックの提案はありますか?」ニュースグループ:  comp.os.ms-windows.nt.miscUsenet:[email protected] 2016年7月28日取得  

外部リンク