| パラダイム | 構造化された、一般的な |
|---|---|
| デザイン: | ジョン・バッカス |
| 開発者 | ジョン・バッカスとIBM |
| 初登場 | 1953年 |
| タイピングの規律 | 強い、静的、明白な |
| 影響を受けた | |
| アセンブリ言語、マシンコード | |
| 影響を受けた | |
| Fortran、ALGOL 58、BASIC、C、PL/I、PACT I、MUMPS、Ratfor | |
スピードコーディング、スピードコード、またはスピードコは、 IBMコンピュータ用に作成された最初の高水準プログラミング言語[a]でした。 [1]この言語は、 1953年にジョン・W・バッカスによってIBM 701用に開発され、浮動小数点数の計算をサポートしました。[2]
このアイデアは、1950 年初頭に Backus が天文位置の計算を依頼されたときにIBM SSECマシンのプログラミングが困難だったことから生まれました。 [3] スピードコーディング システムはインタープリタであり、システム リソースを犠牲にして使いやすさを重視していました。これは、対数、累乗、三角関数などの一般的な数学関数の疑似命令を提供しました。常駐ソフトウェアは疑似命令を 1 つずつ分析し、適切なサブルーチンを呼び出しました。スピードコーディングは、10 進入出力操作の最初の実装でもありました。これにより、多くのジョブを作成する手間が大幅に削減されましたが、スピードコーディングを利用して作成されたプログラムの実行時間は通常、マシン コードの 10 倍から 20 倍でした。[4]インタープリタは 310 のメモリ ワードを使用し、これは 701 で使用可能なメモリの約 30% に相当します。[1]
歴史と発展
1952 年 8 月、数十人の IBM エンジニアとIBM 701 の顧客がニューヨーク州ポキプシーに集まり、新しいマシンをアセンブリでプログラミングするためのアイデアやベスト プラクティスを交換しました。出席者の中には、アセンブリ プログラミングとデバッグの遅さに不満を表明した人もいました。また、問題の解決がすぐに必要なアプリケーションや、ソリューションの価値が計算時間の費用を正当化するが、プログラミングとデバッグのコストを正当化しない場合に、701 が役に立つのか疑問視する人もいました。出席者からは、同様に「スケーリング」の問題、つまり算術演算で小数点を厳密に追跡する必要があることにも不満が述べられました。[5]
会議に出席していた IBM の技術計算局のスーパーバイザー、ジョン W. シェルドンと他の人々は、浮動小数点演算を利用する「解釈型」プログラミング システムがこの問題の最適な解決策であると感じました。シェルドンは、以前にCPCからSSECへのコード トランスレータに取り組んでいたジョン バッカスに、IBM 内部で使用するための新しい浮動小数点解釈型プログラミング言語の作成を監督するよう依頼しました。バッカス自身も以前からプログラミング方法の改善に関心を示しており、コンピューティング コストは計算コストとプログラミング担当者のコストにほぼ均等に分かれており、テストの追加費用によって人件費がかなり大きな費用になっていることに気づきました。1953 年から、バッカスと 5 人の同僚がこの新しい言語を設計し、「スピードコーディング」と名付けました。この言語はすぐに IBM の外部に広がり、701 システムの顧客インストールにも使用されるようになりました。[5]
構文と意味
スピードコーディングプログラムは一連の命令として構成され、各命令は単一の 72 ビットデータワードとしてメモリに格納されます。命令は通常、2 つの操作 (OP 1と OP 2 ) と 4 つのメモリアドレスで構成されます。最初の操作 (OP 1 ) は、3 つの関連メモリアドレスを持つ数学的または入出力操作であり、操作の性質に応じて 1 つ以上のメモリアドレスを変更できます。数学的操作には、基本的な算術、平方根、三角関数が含まれます。論理操作には、磁気テープの読み取り、書き込み、スキップ、巻き戻しの機能、およびドラムメモリに格納されたデータを操作する操作が含まれます。2 番目の操作 (OP 2 ) は、残りの 1 つの関連メモリアドレスを持つ論理操作です。論理操作により、命令を記述とは異なる順序で実行できるため、goto、条件、ループ、その他の高度な動作を実装できます。[6]
予約済みの算術演算および入出力操作キーワード[6]
- 追加
- サブ
- アダブ
- アバッド
- スバブ
- アブサブ
- MPY
- NGMPY
- 部門
- NGDIV
- 平方根
- 正弦
- アルタン
- 経験値
- 翻訳
- 動く
- WRTPJ
- 翻訳
- 翻訳
- 翻訳
- RFTPJ
- RFTPL
- RFTPM
- RBTPJ
- RBTPK 翻訳
- RBTPL
- RBTPM について
- 翻訳
- FTPK について
- SFTPL
- SFTPM
- SBTPJ
- SBTPK
- SBTPL について
- SBTPM
- RWTPJ
- RWTPK
- RWTPL について
- RWTPM
- EFTPJ
- EFTPK
- EFTPL
- EFTPM
- WRDRP の
- WRDRQ
- RFDRP
- 無線電信
- 印刷
- 排出
- いいえ
予約論理キーワード[6]
- 翻訳
- トラプル
- トリム
- トルコ
- SNTP 翻訳
- SNTRQ
- ティア
- TIB
- チック
- TIBC
- TIAC
- TIABC
- TDA
- TDC
- TDAB
- TDBC
- ティーダック
- TDABC
- セトラ
- 設定
- SETRC
- スクラ
- SKRB
- SKRC
- ラダ
- RADDB
- RADDC
- ラッド
- アダ
- ADDB
- ADDC
- 追加
- スバ
- サブ
- サブ
- 字幕
- STA
- ステブ
- 標準TC
- 性感染症
- スキップ
- PRCH
- ステッチ
- エヒトル
参照
注記
- ^ 機械またはハードウェア命令指向のコーディングとは対照的に、記号的であり、自然言語の表現力を目的としています。
参考文献
- ^ ab Allen, Frances "Fran" Elizabeth (1981年9 月)。「IBM における言語プロセッサ技術の歴史」。IBM Journal of Research and Development。25 ( 5): 535– 548。doi :10.1147 / rd.255.0535。
- ^ Shasha, Dennis Elliot ; Lazere, Cathy (1998). Out of their Minds: The Lives and Discoveries of 15 Great Computer Scientists . ニューヨーク、アメリカ合衆国: Copernicus、Springer-Verlag New York, Inc. ISBN 0-387-98269-8LCCN 98-16911. SPIN 10693423.
- ^ Backus, John W. (2006-09-05). Booch, Grady (ed.). 「Oral History of John Backus」(PDF) .参照番号: X3715.2007 (インタビュー). オレゴン州アッシュランド:コンピュータ歴史博物館. 2022-04-08 にオリジナルからアーカイブ(PDF) . 2011-04-23に取得。(42ページ)
- ^ Pugh, Emerson W.; Johnson, Lyle R.; Palmer, John H. (1991). IBM の 360 および初期の 370 システム. MIT Press . p. 38. ISBN 0-262-16123-0。
- ^ ab バシェ、チャールズ、ジョンソン、ライル、パーマー、ジョン、ピュー、エマーソン (1986-03-17)。IBM の初期のコンピュータ。MIT プレス。pp . 332– 338。ISBN 9780262523936. 2023年8月25日閲覧。
- ^ abc IBM 701型電子データ処理マシン用スピードコーディングシステム(PDF)。米国ニューヨーク:International Business Machines Corporation 。1954年 [1953-09-10]。フォーム24-6059-0 (5-54:2M-W)。 2022年7月4日時点のオリジナルよりアーカイブ(PDF) 。2022年7月4日閲覧。
さらに読む
- IBM 701型電子データ処理マシン用スピードコーディングシステム(PDF)。米国ニューヨーク:International Business Machines Corporation。1954年 [1953-09-10]。フォーム 24-6059-0 (5-54:2M-W)。2022年7月4日にオリジナルからアーカイブ(PDF) 。2022年7月4日に取得。(48ページ)
- Backus, John W. (1954 年 1 月). 「IBM 701 スピードコーディング システム」(PDF) . Journal of the ACM . 1 (1): 4– 6. 2022 年 5 月 16 日にオリジナルからアーカイブ(PDF)されました。2022年 7 月 4 日に取得。
- Backus, John W. ; Harlan, Herrick (1954 年 5 月 13 ~ 14 日)。「IBM 701 スピードコーディングおよびその他の自動プログラミング システム」。デジタル コンピュータの自動プログラミングに関するシンポジウムの議事録。ワシントン DC、米国:海軍研究局。pp. 106 ~ 113。2022年 7 月 4 日に閲覧。
- Sammet, Jean E. (1969).プログラミング言語: 歴史と基礎. Prentice-Hall .
