Hopeは、 1970年代にエディンバラ大学で開発された小さな関数型プログラミング言語です。[1] [2] MirandaやHaskell よりも古く、同じくエディンバラ大学で開発されたMLと同時代のものです。Hopeは、ロッド・バーストールとジョン・ダーリントンがプログラム変換に関する研究で開発したシンプルな関数型言語であるNPL [3]から派生しました。 [4] NPLとHopeは、パターン呼び出し評価と代数データ型を備えた最初の言語として知られています。[5]
ホープは、スコットランドの農業改革者であるトーマス・ホープ卿(1681 年頃 - 1771 年)にちなんで名付けられました。ホープが開発された当時、人工知能部門の所在地であったエディンバラのホープ・パーク・スクエアも、彼にちなんで名付けられました。
言語の詳細
Hope の階乗プログラムは次のとおりです。
dec fact : num -> num; --- 事実 0 <= 1; --- 事実 n <= n*事実(n-1);
句の順序を変更してもプログラムの意味は変わりません。これは、Hope のパターン マッチングでは常に、より具体的なパターンが、より具体的でないパターンよりも優先されるためです。Hope では明示的な型宣言が必要です。Hope では型推論アルゴリズムを使用するオプションはありません。
Hopeはタプルとリストという2つの組み込みデータ構造を提供します。[6]
実装
Hope の最初の実装は厳密なものだったが、それ以降、遅延バージョンや遅延コンストラクタ付きの厳密バージョンが登場した。ブリティッシュ・テレコムは、厳密バージョンを実装するためにインペリアル・カレッジとプロジェクトに着手した。最初のリリースは 1986 年に Thanos Vassilakis によってコーディングされた。その後のリリースはブリティッシュ・テレコムの Mark Tasng によってコーディングされた。後継言語 Hope+ (インペリアル・カレッジとInternational Computers Limited (ICL) が共同で開発) では、厳密評価か遅延評価かを指定する注釈が追加された。[7]
1985年8月号のBYTEに掲載されたRoger BaileyのHopeチュートリアルでは、 IBM PC DOS 2.0用のインタープリタが参照されています。 [6]
参考文献
- ^ Burstall RM、MacQueen DB、Sannell DT (1980) Hope: 実験的応用言語。1980 LISP カンファレンスの会議記録、スタンフォード大学、pp. 136-143。
- ^ Bailey, Roger (1990 年 4 月 1 日)。Hopeによる関数型プログラミング。Ellis Horwood のコンピュータとその応用シリーズ。Ellis Horwood Ltd.
- ^ RM Burstall. 関数型プログラミング言語の設計上の考慮事項。招待論文、Proc. Infotech State of the Art Conf. “The Software Revolution”, コペンハーゲン、45–57 (1977)
- ^ RM Burstall と J. Darlington。再帰プログラムを開発するための変換システム。Journal of the Association for Computing Machinery、24(1):44–67 (1977)
- ^ Hudak, Paul; Hughes, John; Peyton Jones, Simon; Wadler, Philip (2007-06-09). Haskell の歴史: クラスを怠る. ACM. pp. 12–1. doi :10.1145/1238844.1238856. ISBN 9781595937667. S2CID 52847907。
- ^ ab ベイリー、ロジャー (1985年8月)。「希望のチュートリアル」。BYTE。第10巻、第8号。 2015年4月1日閲覧。
- ^ John Kewley および Kevin Glynn。Hope+ の評価注釈。Kei Davis および RJM Hughes 編、『Functional Programming: Proceedings of the 1989 Glasgow Workshop』、Workshops in Computing、329-337 ページ、ロンドン、英国、1990 年。Springer-Verlag。
外部リンク
- Windows 用 Hope インタープリター
- オンラインプログラミング言語辞書のHopeの項目
