Categories: 未分類

CAL(プログラミング言語)

CAL_(programming_language)
CALはConversational Algebraic Languageの略で、1967 年にバークレーの Butler Lampson によって SDS 940 メインフレーム コンピュータ用に設計および開発されたプログラミング言語およびシステムでした。CAL は、SDS プラットフォームを活用するための多数のクリーンアップと新機能を備えた、独創的なJOSS言語のバージョンです。
Berkeley SDS はTymshare商用タイムシェアリングプラットフォームの開発に使用され、1969 年には CAL の改良版がプログラミング環境として顧客に提供されました。Tymshare SUPER BASICの特徴の数々をコピーしたデザイン。これらの機能の一部は、 Microsoft BASICの直接の祖先であるPDP-11のBASIC-PLUSに登場しました。

コンテンツ
1 説明
1.1 基本概念 1.2 ジャンプとサブルーチン 1.3 条件分岐と代入 1.4 ループ 1.5 ユーザー定義関数 1.6 その他の変更 1.7 ダイレクトモード 1.8 CAL 1969 の改善点
2 脚注
3 参考文献
3.1 引用 3.2 参考文献

説明

基本概念
JOSS は、米国空軍およびRand Corporation内の非プログラマーが使用するように設計されており、それを支援するために、Randはセットアップと使用がより簡単なカスタムコンピューター ターミナルを設計しました。IBM Selectricタイプライターに基づくこれらの端末には、や などの一般的な数学記号を実装するカスタム文字セットも含まれていました。≥≠
CAL は、これらの種類のカスタマイズを のようなより一般的なソリューションに置き換えた JOSS のバージョンであり、一般的な端末で実行できるようにしました>=。その他の顕著な違いは、JOSS の文の大文字小文字とは対照的に、CAL はすべて大文字であり、行末にピリオドを必要としなかったことです。それ以外の点では、コマンドはほとんど同じで、全体的な構造と構文は同じです。#
JOSS と同様に、CAL にはインタラクティブなユーザー インターフェイスがあり、ユーザーはステートメントを「直接モード」で入力したり、プログラムを「間接モード」で実行したりできました。BASIC では、前者はより一般的に「即時モード」と呼ばれます。CAL と JOSS はどちらも、part と step として知られる 2 つの部分からなる行番号を使用し、たとえば、1.100part 1 step 100 のように、ピリオドで区切られていました。part は一般に、関連するステートメントをサブルーチンにグループ化するために使用されました。CAL では、部品番号は 0 から 999999 の間で、ステップは 0 から 99999 の間である可能性が
CAL には、1967 年と 1969 年にリリースされた 2 つの主要なバージョンがありました。以下の説明は、特に断りのない限り、主に前のバージョンに基づいています。

ジャンプとサブルーチン
JOSS と同様に、CAL は、または のように、指定TOされた部分またはステップに分岐するコマンドと、部分全体を実行するかTO PART 3、TO STEP 4.5その単一のステップを実行してから戻るDOサブルーチン呼び出しのコマンドをサポートしていました。後者の構文は、関連する概念や類似の概念なしで 1 行で実装できるため、小さなサブルーチンが多数ある場合に役立ちました。DO PART 9DO STEP 5.1RETURN

条件分岐と代入
JOSS の注目すべき構文上の特徴の 1 つは、他のステートメントの操作を制御する「ステートメント修飾子」の概念でした。JOSS はこれを条件分岐に使用しました。
ほとんどの言語では、「この表現が真なら、これを行う…」という趣旨の何かを書くでしょう。JOSS では、この順序が逆になり、そのようなステートメントは、たとえば、「これが true の場合はこれを行う」という形式をとっていましたType “HELLO” if X=5.。CALは、新しい修飾子 を追加することで、この基本的な概念に構文糖衣UNLESSを追加しました。これにより、コンテキストに応じて、より明白なコードが作成されました。TYPE “IT IS NOT EQUAL TO FIVE” UNLESS X=5.
JOSS で、B の値が 10 より大きい場合に変数 A に値 5 を割り当て、それ以外の場合は 0 を割り当てるには、次のコードを使用します。
B>10 の場合、A=5 に設定します。B CAL は条件式もサポートしています:
A=IF B>10 THEN 5 ELSE 0
同様の変更はWHERE、if または for の一部として変数を設定するために使用されるステートメントでした。コンセプトは if/then/else 構造に似ていましたが、任意の数のアイテムを持つことができました。たとえば、=A*B WHERE A=B UNTIL A>20, WHERE A=1 UNTIL A>100.

ループ
JOSS でのループも、修飾子である によって制御されていましたFor。これは、 FORTRANのあいまいな構文を使用していました。Type i for i=1(2)10.1 から 10 までのループを 2 ずつ実行するため、1,3,5,7,9 が出力されます。明示的な値を指定することもType i for i=1,5,6,7,10.、2 つを混合することもできます。Type i for i=1,5(1)7,10.
BYCAL はキーワードとキーワードを導入することで JOSS の構文を改善したTOため、CAL の同等のコードはTYPE I FOR I=1 BY 2 TO 10. JOSS では、ステップ値を囲む括弧は 2 つの制限の区切りであったため、オプションにすることはできませんでした。分離することTOで制限が明示的になり、BYは 1 と見なされるようにオプションになりました。TYPE I FOR I=1 TO 10. JOSS と同様に、明示的な値と範囲を使用できます。TYPE I FOR I=1,5 TO 7,10. CAL は for ループをさらに変更し、 and を使用して条件付き終了を追加しましWHILEたUNTIL。たとえば、TYPE A FOR A=1 BY 1 WHILE A

ユーザー定義関数
JOSS では、ユーザーはLetステートメントを使用して関数を定義できました。この構文では、関数シグネチャでローカル変数に名前を付けることができました。Let F(X,Y)=X+Y.プログラムはこれらの関数を組み込み関数のように呼び出すことができます。Set A=F(1,5).
CAL は に変更されLetましたDEFINE。これははるかに明白であり、より小さな変更を加えて、パラメーターが括弧の代わりに中括弧を使用して渡されたため、同等の定義は になりDEFINE F=X+Y、同じ方法で呼び出されSET A=Fます。
CAL の機能に対するより重要な変更は、 のように、 を使用して定義からサブルーチンを呼び出す機能TOですDEFINE F(X,Y) : TO PART 5。これにより、結果として計算された値を関数に代入するという問題が残りました。これはRETURN Z、Z が返される最終的な値である部分の最後にステートメントを導入することで解決されました。

その他の変更
ABSCAL には JOSS の数学関数が含まれていましたが、TAN、 、ATAN、などの新しい関数がいくつか追加されましたLOG10。MOD 2 つのオペランドの除算の余りを返す新しい演算子 も追加されました。

ダイレクトモード
CAL では、少数のダイレクト モード コマンドと関連ステートメントが追加されました。
PAUSE、プログラムで遭遇すると、メッセージを出力しました “ステップ 1.1 で一時停止STOPこれは、BASICのコマンドに似ていました。これにより、ユーザーは値を入力し、 で実行を継続できましたGO。ダイレクト モードでは、ユーザーはSTEP一度に 1 行ずつプログラムの実行をトレースする

CAL 1969 の改善点
1969 年版でのマイナーな変更の 1 つは、変数割り当てSETのコマンドが削除されたことです。これは、JOSS の直接モードではオプションでしたが、プログラム ステートメントでは必須でした。1967 年版の CAL はこの規則に従っていました。 1969 年版では、どちらの場合もオプションになりました。

脚注
^ サブルーチンの呼び出しには通常 DO が使用されるため、この場合に TO を選択した理由は明らかではありません。

参考文献

引用
^ ランプソン、「システム」、リサーチ、マイクロソフト. ^ マニュアル 1969 年、p. 7。
^ マニュアル 1969 年、p. 23. ^ マニュアル 1969 年、p. 11. ^ マニュアル 1969 年、p. 15、26。
^ マニュアル 1969 年、p. 12. ^ マニュアル 1969 年、p. 14. ^ マニュアル 1969 年、p. 21. ^ マニュアル 1969 年、p. 13. ^ マニュアル 1967 年、p. 27. ^ マニュアル 1967、p。9. ^ マニュアル 1967、p。10. ^ マニュアル 1967 年、p. 25. ^ マニュアル 1967、p。8.

参考文献
ランプソン、バトラー (1969 年 6月)。CAL (PDF) . ティムシェア。
ランプソン、バトラー (1967 年 6月)。SDS 940 時分割コンピュータ システムの CAL リファレンス マニュアル (PDF)。科学データ システム。

admin

Share
Published by
admin

Recent Posts

キャニオン–SRAM

Canyon%E2%80%93…

4週間 ago

キャニオン、ケノラ地区

Canyon,_Kenora_…

4週間 ago

Cantus Verkehrsgesellschaft

Cantus_Verkehrs…

4週間 ago

カントールキューブ

Cantor_cube 数学で…

4週間 ago

カントールの定理

Cantor's_theore…

4週間 ago

クレテイユ州

Cantons_of_Cr%C…

4週間 ago