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

FARGO1401自動報告書生成オペレーション)は、 RPGプログラミング言語の前身です。FARGOはプログラミング言語というよりはユーティリティプログラムに近いものでしたが、RPGには実行可能なオブジェクトコードを生成するプログラム生成プロセスがありました。

移行ツール

FARGOの背後にあるアイデアは、IBM 407会計機の技術者が新しいIBM 1400シリーズのコンピュータに容易に移行できるようにすることでした。1400シリーズには、シンボリック・プログラミング・システム(SPS)とオートコーダ(SPSよりも多くのメモリを必要とするより高度なアセンブラ)という2つのアセンブラがありました。これらは、入力、出力、制御、カウンタ操作(加算、減算)を直接制御パネルに配線することに慣れていた技術者にとって、大きなパラダイムシフトと学習曲線を意味しました。乗算と除算は可能でしたが、実用性は限られていました。

タビュレーターマシンの動作は、マシンサイクルで発生するインパルスによって制御されていました。そのため、FARGOはサイクルの概念を模倣していました。FARGOは、タビュレーターマシンの配線制御盤の原理に非常に近いコーディングシートの概念を取り入れました。初期のFARGOトレーニング教材では、パネルの配線制御とコーディングシートの関係が示されていました。

プログラムはコンパイルを必要としなかった

FARGOプログラムのもう一つの重要な特徴は、コンパイルを必要としないことです。代わりに、仕様カードはFARGOプログラムデッキの適切な位置に配置され、プログラムデッキの末尾にあるデータカードと共に実行されるだけで済みます。FARGOは、少なくとも4000ポジションのコアストレージを備えたIBM 1401カードシステム用に設計されました。

下位互換性

IBMは歴史的に下位互換性を重視しており、FARGOと1400 Autocoderは一部のIBM System/360環境で「エミュレーション」モードで動作し、引き続き使用されていました。COBOL 、FORTRANRPG言語System/360バージョンが提供されていたため、エミュレーションは必要ありませんでした。