BCPL
1969年にはICT 1900シリーズ用に書かれた初期のコンパイラが、マーティン・リチャーズが自分のアルテア2で出力したOコードの紙テープから起動した。両者のマシンはワード長が異なっており(48ビットと24ビット)、文字コードが異なり、文字列データの構造も異なっていたが、上手く動作しておりこの方法の信用が高まった。
1970年までには、ハネウェル635/645、IBM 360、PDP-10、TX-2、CDC 6400、Univac 1108、PDP-9、KDF 9、Atlas 2に実装されていた。BBNは1974年にOコードを使わない独自の実装を開発した。最初の実装はBBNのTENEX PDP-10数台にインストールされ、BBNがARPANETのために開発していた次世代IMP(ルータの原型)として使うためのPDP-11用のコードを出力するクロスコンパイラだった。
また1980年代後期にはマーティン・リチャーズの兄であるジョン・リチャーズが設立したリチャーズ・コンピューター・プロダクツ社によりBBC Microバージョンが開発された。この言語はイギリスの国勢調査プロジェクト(英語版)で使用された。
BCPLは小さくて単純なコンパイラを記述できるように設計され、コンパイラが16KBのメモリで動作すると言われた。しかもリチャーズのコンパイラはそれ自身がBCPLで記述されており、非常に移植性が高かった。そのためBCPLは処理系のブート用として人気のある選択肢だった。コンパイラの移植性の高さにはその構造に理由があった。コンパイラは2つのパーツに分けられていた。フロントエンドはソースをパースし、仮想機械用の中間表現であるO-codeを生成した。バックエンドはO-codeを受け取り、ターゲットマシンのコードに変換した。新しいマシンをサポートするためにはコンパイラのコードの1/5だけを書き直せばよく、通常は2~5人月の作業であった。その後まもなくこの構造はごく一般的になった(Pascal及びJava参照)。
BCPLは1種類のデータ型だけしかない特殊な言語だった。1ワードは通常アーキテクチャが定めるマシンワードの固定ビット長で、当時のマシンが持つメモリ容量ではポインタとしても十分な範囲があった。当時は1ワードが8ビットではないコンピュータがほとんどであった。アドレス可能なメモリの最小単位がワードではなくバイトであるマシンや、より大きなメモリ空間を使用できるアドレス長が32bitまたは64bitのマシンでBCPLを利用する際に、この選択は問題があったということが後に判明した。
全ての値の判断は値を処理するのに利用した演算子によって決定された(例えば+は2つの値を両方とも整数として加算し、!は間接的に値を参照するポインタとして扱った)。この働きにより実装はタイプチェックを提供しなかった。ハンガリアン記法はプログラマーが予期せぬタイプエラーを回避するために開発された。