ECLプログラミング言語


ECL_programming_language

ECL(データ中心のプログラミング言語)
と混同しないでください
ECLプログラミング言語とシステムは、1970年代にハーバード大学で開発された拡張可能な高級プログラミング言語と開発環境でした。「ECL」という名前は、「ExtensibleComputerLanguage」または「EClecticLanguage」の略です。一部の出版物では、システム全体に「ECL」という名前を使用し、言語にEL / 1(拡張言語)という名前を使用していました。
ECLは、プログラムがシステム内で表現されるインタラクティブなシステムでした。互換性のあるコンパイラとインタプリタがありました。それは、ALGOLのような構文と拡張可能なデータ型システムを持ち、データ型は第一級市民でした。データオブジェクトは参照ではなく値であり、呼び出し規約では、引数ごとに値による呼び出しと参照による呼び出しのどちらかを選択できました。
ECLは主に、プログラミング言語設計、プログラミング方法論(特に、変換による改良によるプログラミング)、およびハーバードでのプログラミング環境の研究と教育に使用されましたが、一部の政府機関でも使用されていると言われています。これは最初にPDP-10に実装され、その後、 BLISS -11で記述されPDP-10でクロスコンパイルされたPDP-11に実装されました(解釈のみ) 。

プロシージャとバインドクラス
ユークリッドの互除法に従って2つの整数の最大公約数を計算するためのECL手順は、次のように定義できます。
gcd <- EXPR (m :INT BYVAL 、 n : INT BYVAL ; INT ) 始める DECL r :INT ; 繰り返す
r < -rem (m 、 n );
r = 0 => n ;
m < -n ;
n < -r ; 終わり; 終わり
これは、変数へのプロシージャ定数の割り当てですgcd。この線
EXPR(m:INT BYVAL、n:INT BYVAL; INT)
INTプロシージャが、namedmと。という型の2つのパラメータを取り、型nの結果を返すことを示しますINT。(データ型はECLではモードと呼ばれます。)各パラメーター宣言のbind-class BYVALは、そのパラメーターが値によって渡されることを示します。ECLプログラムの計算コンポーネントはフォームと呼ばれます。一部の形式は他のプログラミング言語の式に似ており、他の形式はステートメントに似ています。フォームを実行すると、常に値が生成されます。REPEAT…コンストラクトはENDループ形式です。コンストラクトの実行
r = 0 => n
フォームがr = 0評価されてTRUE、ループの実行が値で終了する場合n。BEGINブロック( … )形式の最後のステートメントENDの値は、ブロック形式の値になります。プロシージャ宣言のフォームの値は、プロシージャ呼び出しの結果になります。
バインドクラスに加えて、BYVALECLにはバインドクラス、SHAREDおよびがBind-classは、パラメーターが参照によって渡されることを示します。Bind-classにより、パラメーターは、可能であれば参照によって渡され、そうでない場合は値によって渡されます(たとえば、実際のパラメーターが純粋な値である場合、または型変換を適用する必要がある変数である場合)。Bind-classは、実パラメーターの抽象構文木が仮パラメーターに渡されることを指定します。これにより、プログラマーは、特定のプロシージャー・パラメーターについて、独自の評価セマンティクスを使用して独自の表記法を考案することができます。Bind-classはに似ていますが、Cのvarargsと同様の機能を提供します。bind -classはプロシージャの最後の仮パラメータにのみ表示でき、その仮パラメータは抽象構文ツリー表現のリストにバインドされます。残りの実際のパラメーターごとに1つ。ECLには、抽象構文木を評価するための組み込み関数があるいは、プログラマーが抽象構文ツリーのノードを探索し、独自のロジックに従ってそれらを処理できる関数がLIKEUNEVALLISTEDSHAREDLIKEUNEVALLISTEDUNEVALLISTEDEVAL

も参照してください
Fexpr

参考文献
PISEL =拡張可能な言語に関する国際シンポジウムの議事録、フランス、グルノーブル、1971年、ACM SIGPLAN Notices 6:12、1971年12月に発行。
Benjamin M. Brosgol、「ECLデータ型の実装」、PISEL、87〜95ページ。
Thomas E. Cheatham、Jr.、Glenn H. Holloway、Judy A. Townley、「変換によるプログラムの改良」、ソフトウェアエンジニアリングに関する第5回国際会議の議事録、1981年、430〜437ページ。ISBN  0-89791-146-6
Glenn H. Holloway、「ECLでのインタプリタ/コンパイラの統合」、PISEL、129〜134ページ。
Charles J. Prenner、「ECLの制御構造機能」、PISEL、104〜112ページ。
Ben Wegbreit、「ECLプログラミングシステムの概要」、PISEL、26〜28ページ。
ベンウェグブライト、「拡張可能なプログラミング言語での研究」。テクニカルレポートESD-TR-70-297。ハーバード大学、マサチューセッツ州ケンブリッジ、1970年5月。
Glenn Holloway、Judy Townley、Jay Spitzen、Ben Wegbreit、「ECLプログラマーズマニュアル」、レポート23-74、ハーバード大学コンピューティングテクノロジー研究センター、1974年12月。
Larry Denenberg、「PDP-11 ECLの実装」、テクニカルレポート29-77、コンピューティングテクノロジー研究センター、ハーバード大学、1977年6月。