Peripheral Interchange Program

Peripheral Interchange Program（PIP）は、DEC製コンピュータにおけるデータファイル転送ユーティリティ。1960年代に PDP-6 上で最初に実装された。その後、PDP-10 や PDP-11 にも実装されている。
歴史.
PIP は当初 ATLATL（"Anything, Lord to Anything, Lord" の略）と呼ばれていた。この名称はデバイスに依存しないファイルコピーツールであることを示している。
紆余曲折を経て、以下のような構文に落ち着いた。
この語順は一般的な英語の語順とは逆である。そのため、PDPマシン上の数あるユーティリティの1つとして、次のようなコマンド構文も生まれた。
しかし取って代わられたわけではなく、1980年代中ごろにも PIP は普通に使われていた。
CP/M での PIP.
ゲイリー・キルドールは CP/M で PIP とファイルのコンセプトをRSTS/Eなどから流用した。フロッピーディスク間でのファイルコピー(使用例 A>PIP B:=*.*[V] によって、ドライブ A の全ファイルをドライブ B へベリファイ付きでコピー)のようなフロッピーディスク上のファイルにアクセスするだけでなく、CP/M の PIP は以下のような「スペシャルファイル」間でデータ転送が可能だった(使用例 A>PIP LST:=SAMPLE.TXT によって、SAMPLE.TXT ファイルをリスト出力デバイスへ)。
これらはPIPでしか使えないため、真のスペシャルファイルではない。2つのカスタムデバイスは、PIPプログラムの先頭から固定の位置に呼び出しコードが実装されていた。これは、ユーザーやOEMがその位置にパッチを当てることで独自の入出力機器をサポート可能とすることを意図していた。プログラム内にはそのための246バイトの空き領域が用意されていた。
CP/M では PIP destination=source という構文だけでなく、PIP destination_source という構文もあった。これは、端末によっては '_' を左向きの矢印で表示するものがあったためである。つまり、PIP destination←source のように表示された。これは文書には明記されておらず、CP/M ではファイル名に使える文字の種類が明確に定義されていなかった。このため、アンダースコアを使ったファイル名もエラーにはならず、そのようなファイルはPIPでうまく扱えない。