study.私は1部の古いBCPLマニュアルを掘り出しました。MITプロジェクトMACのメモM-352と呼ばれて、日付は1967年7月21日にそれにつけられます。その著者の親切な許可のおかげで、それは研究に利用可能です。transcription.ここに示された、1つの(186KB)追伸またはPDF(41Kでより小さい)ドキュメントのOCRの編集された結果のバージョン。31Kに追伸のgzipを圧縮したバージョンは同様に利用可能です。OCRはTextbridgeパッケージによって行われました;編集および追伸出力は私によって単語7.0をやめました。学者にとって、さらに走査されたイメージの大きな(2.7MB)TIFF表現があります。したがって、転写をチェックすることができます。Modula-2.最近、Fachhochschuleイェーナのカール・クライン(ドイツ)は、この同じドキュメントのバージョンの別の走査を利用可能にしました、日付およびメモ番号を含む同じ内容で?Aその表題紙上で。面白いことは、彼のドキュメントが異なるタイプライター上で作成されたということです!彼のバージョンは、より大きなタイプ・ピッチを備えたタイプライター上で終わりました。各ライン上に、より少数の特徴があります。したがって、ページ付けは異なります。明らかに、内容は同一です(手に引かれた文字を含んで)。彼のバージョンは、私のコピーから見当たらない終わりで例プログラムを含んでいます。私たちのどちらも、なぜこれが終わる必要があったかまだ全く理解しません。彼の演出は、彼の歴史ページ(さらに、それはフォートラン、アルゴル60、パスカルおよびモジュラ2を含む他のいくつかの言語用の初期のマニュアルを持っている)に利用可能です。list.論文はタイプされたメモのゼログラフィーのコピーです。中で(コピーされた)一面の一番上の筆跡、ピーターG.ノイマン(彼、危険の、次のものを要約する:その時に、彼はベル研究所のMulticsプロジェクトの技術的なリーダーでした)のために、頭文字PGNです。低いものでは、右が記法です「[ケン]トムプソンへのコピー、[ダグ]McIlroy、[ボブ]モーリス。」明白にノイマンの分配リスト。omitted.文字のうちのいくつかが、手(特にブロックのスタートを示すためにその「出版」シンタックスの中で使用されるセクション・シンボル(あなたのブラウザー中の§として印刷する、奇妙な積み重ねられたS))によって明白に挿入されたので、それはOCRへのビットresistentでした。ブロックを閉じる対応するシンボルは垂直の重ね打ちするラインを備えたセクション・シンボルです。追伸改訂では、私がunderstruckセクション・シンボルによってそれを表わします。同様に、ない等価物のようなあるオペレーターは利用可能なフォントにおいて出席していません;それらは角括弧の中でイタリック体にされます。私は、その演出が省略される2、3の図形について記述するためにそれらの同じブラケ?bトを使用しました。definition.ドキュメントも色鉛筆中の若干を上へマークされました。見たところでは、記法のうちのいくつかは、ラッドCanadayによって恐らくノートです。いくらかは、そうであるように見えます「チェックする、から」シンタックスのビットについた跡、あたかも彼(あるいは誰か)が言語定義とコードを比較していたかのように。preserved.私があまりにも一生懸命努力しなかったので、Textbridgeと言葉の不可解な確信および協定を修正する刻み付けをバイオリンで弾くことができなかったという点を除いて、追伸バージョンは、オリジナルのレイアウトにかなり緊密に付着します。テキストの実行中の単語部門は保存されません。ライン間隔は単に接近されます。ページ部門が保存されています。"o".私が編集に導入したエラーに加えて、さらにオリジナル(オリジナルのタイピストで確かに開始されたいくらか)における少数のエラーがあります。4、2行のラインを横切って//流出で開始されたコメント.私は明白に意味された「0」がそうだった少数の場所のそれが、小文字「o」の代わりになったという点を除いて、オリジナルのものを修正することに一般に抵抗しました。system.BCPLは、それ自身の生産的な生活を行っていました。それへの私の関心は、B言語の開発にそれが供給した基礎において、その後Cの歴史においてより多くです。この影響は後の論文の中で謝意と共にトレースされます。それが伝えるとともに、Bが開発されていた時、BCPL言語定義は単にマニュアルでした、リチャーズがCTSSシステムのために同時に書いたコンパイラーと一緒に、ここに記録しました。language.多少その時間から変更されたBCPL;その定義はより明らかになりました、そして言語、さらに、有用。分岐を観察する際に、それは軸に正確なポイントを記録するのに有用です、どれ、B、また、その後、C枝は発芽しました。マーチン・リチャーズのホームページは、コンパイラーの現行版および言語の例を得るためにリンクを持っています。stock.BCPLの現代版、リチャーズとコリンのWhitby-Strevensによる本に記述される、「BCPL--言語およびそのコンパイラー--。」ISBN、ケンブリッジ大学出版社(1981年)0521286816。これは、今印刷が欠乏するように見えます、であるが、最近、オンライン本店のうちのいくつかがそれをリストするまで。マーチン・リチャーズの持続的な寛大のおかげで、およびガイ・ホーワースの援助で、私は、2001年4月にリチャーズの個人のストックの最後から本の自分のコピ?[を受け取りました。document.あるいは、恐らく、人は、3つの方法にこの初期のマニュアルが実際のプログラムの語いの表現について記述すると言うかもしれません、「言及する、に」正統の表現が、NUMBER、NAME、COND(文法のターミナルのシンボル用のSECTBRA)のような大文字言葉を使用しています。与えられるようなシンタックスは一種の「出版スタイル」(シンボルおよび強調されたキーワードで豊富)を使用します;それは、それほど豊富でないシンボル・セットを備えた、カード、紙テープあるいは利用可能なターミナルにパンチされて、ジャーナル用に、だが実際上意図したその出版言語でアルゴル60をリコールしま?キ。この第3のスタイル(CTSSの上でコンパイラーの中で現実に使用されるもの)は、単に暗示されます、しかし簡潔にドキュメント中の例において例証されました。development.これらの語いの詳細はベル研究所で、リチャーズの自己の使用法の、および彼のコンパイラーの私たちの演出の様々な時に変わりました。リチャーズの最初のBCPLコンパイラーはCTSSの上で6ビットのBCD文字セットを使用して、書かれ、IBM「ゴルフボール」1050と2741ターミナルで利用可能な特徴を使用するためにすぐ後に適応されました。同じ時に、CTSSは、Multics開発のためのASCII文字セットに適合し始めて?「ました。C.初期のBCPLの中で現実に使用される語いの協定のうちのいくつかは、Bへ直接採用されました;あるより最近の人はCからの後ろに影響に借りのあるかもしれません。マニュアルのシンタックスの中で、セクションサインおよび重ね打ちされたセクションサインとして書かれたSECTBRAとSECTKETのシンボルは、リチャーズがCTSSに書いたコンパイラーでさえ$(また$)として既に表わされました。すべてではなくいくらかで、リチャーズが今日提供する例プログラムのうち、正統のシンボルはBとCでのような書かれた{}です。yet.同様に、形式上の名前LOGANDおよびLOGORを持ったオペレーターは、/¥と¥/に似ている命題算文字としてこのマニュアルにおいて代表されたが、キーワードlogandおよびlogorとして現実に通常タイプされた(1967年9月11日のコンパイラーの中で)。いくつかの部分で(しかしながら)&既にLOGANDのために使用されました。Bでは、それらが決定的にそうでした&そして|。私が持っている特別のノート、およびIをリストするマニュアルおよびコンパイラーは持っており、1967年7月および11月の間に日付を持ち、それらをまだ記録しません。|.重要な意味的な問題は、1967年のマニュアル(例えばLOGANDとLOGORのオペレーターの実際の意味)において未決着のままでした。&の間で識別された1967年のコンパイラー|「真理値」情況の中で使用された、そして通常。値情況;第1の情況では、それらがビット演算としての第2に連続するテストとして扱われました。マニュアルはこれについて話しません。状況について説明する困難は、年(数)後に&からのC&&||オペレーターの分離に、結びつきました|。uppercase.もとは1個を越える文字の単語(アルファベットの特徴のシーケンス)、そして小文字文字から始まること、システムにキーワードのために取っておかれました。ユーザの通称は大文字の文字で始まる単一の小文字特徴あるいはより長い言葉でありえます。現在の言語では、キーワードがすべて大文字です。readily.1967年のマニュアルの言語では、関数とルーチンの適用が記法Fを使用しました[...また、ベクトル適用はV*[E]を使用しました]。これらは、F(...)およびV*(E)に、リチャーズのBCPLの中で、および初期にベル研究所の方言の中でF(...)およびV!Eへの時間とともにそれぞれ変わりました。F(...)への変更は、確かにそのより従来の外観から判断すると影響を受けました;私たちは、ベル研究所で異なる方法がV*(E)の曖昧さを回避しているのを見つけました(さらに言えばV*[E])。この時までに、[]を容易にタイプすることができるかもしれないので、事態はより容易になりました。necessary.Cは一部分1つが言葉指向の言語から始まる場合に文字に対処する妥当性のある方法を提供するために発明されました。Bは、ベクトルvから第iの文字を抽出した2つのルーチン炭(v、i)、および第iの文字に値を格納したlchar(v、i、c)でそれを不器用に行いました。リチャーズは、初期に、BCPLが同様のルーチン(getbyte、putbyte)を持っていたと私に伝えます。BCPLは、オペレーター(%)の提供により、それ自身の言葉上で、その後よりよく解決を見つけました、アナログ、に、その!v%iがベクトル中の第iの文字と呼ぶそのようなもの。