オートコーダーとは、1950年代から1960年代にかけてのIBMコンピュータ向けのアセンブラ群の総称である。最初のオートコーダーは、マクロ機能を提供する最初期のアセンブラであったようだ。[ 1 ]
オートコーダーと、それとは無関係なオートコード(同じ時代に英国でより高度な言語を指す用語)はどちらも「自動コーディング」という語句に由来する。これは一般的に、プログラムの数値機械語コードを生成する負担を軽減するプログラムを指していた。[ 2 ] 「オートコーディング」は時折見られ、あらゆる種類のプログラミングシステムを指すことがある。一部の界隈では、「オートコーダー」は現在マクロアセンブラと呼ばれるものを指すのに一般的に使用されることがある。[ 3 ]
最初のオートコーダーは、1955年にIBM 702向けにリリースされ[ 4 ]、1956年にはほぼ互換性のあるIBM 705向けにリリースされました[ 5 ]。これらは、以前ニューヨーク大学(NYU)のNYAPアセンブラの開発 に携わっていたロイ・ゴールドフィンガーによって設計されました[ 6 ] [ 7 ] 。 これらのマシンは、オートコーダーがリリースされた多くのコンピュータと同様に、可変ワード長の商用マシンでした。
702 と 705 の他に、最終的にはIBM 1410と7010 [ 8 ] [ 9 ] IBM 7030 (Stretch)、7070/7072/7074 [ 10 ] [ 11 ] IBM 7080 [ 12 ]および IBM 1400 シリーズ[ 13 ]用のオートコーダーも登場しました。
シンボリックプログラミングシステム[ 14 ] (SPS)は、IBMが当初1401をパンチカード専用コンピュータとして発表した際に提供されたアセンブラでした。SPSは、オートコーダーとは異なるニーモニックと異なる固定入力フォーマットを持っていました。オートコーダーの機能は欠けており、一般的には後にテープドライブのないマシン、つまりパンチカード専用のマシンでのみ使用されました。[ 15 ] [ 16 ]

1401 オートコーダー[ 17 ] [ 18 ]は最もよく知られたオートコーダーであり、そのことは間違いなく、このシリーズのマシンの一般的な成功によるものです。オートコーダーはこのコンピュータの主要言語であり、そのマクロ機能は、プログラミングの負担を軽減する 入出力制御システムの使用を容易にしました。 [ 19 ] [ 20 ] [ 21 ]オートコーダーは、SPS 用に書かれたコードを処理する機能も持っていました。
1401は、1400、2000、4000、8000、12000、または16000の6ビット文字の6種類のメモリ構成で提供されました。8000文字モデルは、IOCSを含む完全なオートコーダーアセンブラアプリケーションを実行するために必要な最小構成でした。ただし、1400メモリ位置という少ないメモリ位置でも使用できる言語サブセットアセンブラも利用可能でした。8000文字モデルでは、パンチカードまたは磁気テープ上にロード可能なオブジェクトファイルを作成し、それを4000文字マシンで実行することができました。この限定された言語サブセットはパンチカードのみを処理し、中間出力としてパンチカードを含む4回のパスが必要でした。 1401 Autocoder は1400 シリーズの他のメンバーでも動作しましたが、 1410と7010には別々の Autocoder バージョンがあり、1 つはスタンドアロン[ 8 ] 、もう 1 つはOS 制御下[ 9 ]でした。
IBMはIBM 7070向けに3つのバージョンのAutocoderを提供しており、後の7072および7074でも利用可能でした。Four-Tape Autocoder [ 10 ]はBasic Autocoderを拡張し、シンプルなマクロ言語とIOCSを追加し、4つのテープドライブを必要とします。一方、Autocoder [ 11 ]は6つのテープドライブを必要とし、より高性能なマクロジェネレータ機能を備えています。
Autocoderの人気は他のアセンブラにも影響を与えた。Honeywell 200 (1401に似たコンピュータ)用の「Easycoder」はAutocoderに似ていた。他のメーカーは、 NCRの「National's Electronic Autocoder Technique」(NEAT)など、競合製品を開発することもあった。 [ 22 ]
ペンシルベニア州立大学は1960年代にIBM 7074向けに「デュアルオートコーダFortranトランスレータ」(DAFT)コンパイラを開発しました。これにより、単一のプログラム内でオートコーダ命令の行とFortranコードの行を自由に混在させて記述することが非常に容易になりました。これは、より高レベルのFortranプログラム内で記号的な機械語命令レベルのコーディングを可能にし、特に内部ループの速度を最適化したり、IBM 7074の特異な10進ワードアーキテクチャを活用したりするのに役立ちました。
ベル研究所は、「周辺機器記号翻訳機」(PEST)と呼ばれるプログラムを開発した。これは、 709 / 709x上で動作する 1401 クロスアセンブラであり、1401 オートコーダのサブセットを受け入れた。[ 16 ] [ 23 ]
SPS-1、SPS-2、およびAutocoderのソースプログラムのコピーは、1985年にSPSの作者でありAutocoderの共作者でもあるGary Mokotoffによってミネソタ大学チャールズ・バベッジ研究所に寄贈された。 [ 24 ]