通信用語の基礎知識 IPv4
戻る
参加者募集中

B

辞書:電算用語の基礎知識 プログラミング言語編 (PTPROGN)
読み:ビー
外語:B: First letter of BCPL 英語
品詞:名詞
2007/08/23 作成
2011/01/03 更新

Cの1世代前の先祖にあたる手続き型言語。ケン・トンプソン博士により開発された。

Bの名は先祖言語BCPLの頭文字Bをとったところから来たとされている。ただ、これには異説も存在するようだ。

Bは、UNIXを高級言語で記述するために作られたプログラミング言語の最初のステップであり、UNIXの反面教師となった失敗作Multicsで動作したBCPLを元に開発された。

このBはPDP-7上で動作した。やがて研究所にPDP-11が導入され、この機能に対応するべく拡張が行なわれ、これがCとなった。

由来

Bは、UNIXを記述するため、高級アセンブリ言語として開発された。

BはALGOL系の言語で、ALGOLの影響を受けつつ、同系列のBCPLを参考に開発されたとされる。しかし、実際にはBCPLとは殆ど共通点はない。更に先代のCPLとはもちろん、現実にBCPLとの類似点は殆どない。文の構造の表現、文の区切り、注釈文の書き方すら共通性がない。

FORTRANの頃から存在する、どんな言語にも共通的にありそうな表現の他には、ビット演算の演算子程度しか共通点が見られない。

独自のもの

文の構造はBの独自の発想に基づくもので、{}で範囲を括る。現在のCでも使われている記述法は、Bで生まれたものである。ALGOL系言語でも、他の系統には見られない。

従来であれば、begin…endといった書き方で範囲を明示することになり、現役の言語であればPascal(Delphi)に影響が残るが、この方法ではbeginやendという単語が変数やステートメントと見分けが付きにくく視認性が悪いという問題があった。Bは、その問題を{}で解決させたのである。

ALGOLからの改良

BはALGOL系とされている。ALGOLは、文は区切り記号で1行に複数書けるが、最後は改行で区切られるという特徴があった。つまり改行の直前に区切りの記号は必要ない。これは、現在でもBASICなどに名残を見ることができる。

しかしBは、より記述の自由度を高める選択をした。行という単位を重視せず、段下げなどにより読みやすい記述を可能とするため、文末を表わす記号を常に必要とする仕様に変更した。これが、セミコロン";"を終端記号とした始まりで、Bの後継であるCにも仕様は引き継がれている。

これはALGOLに対する大幅な仕様変更であり、そして改良となる。B自体、さまざまな箇所でPL/Ⅰからの影響が垣間見られるが、この終端記号の仕様についてもPL/Ⅰからの影響であると考えることができる。

BCPLからの影響

BがBCPLから引き継いだものは、言語仕様ではなく、哲学のみであった。それは、CPL→BCPLで仕様化された「アセンブリ言語的ななにか」である。

CPL→BCPLのうちのBの部分ということもでき、Bの言語名がBであるのは、おそらく偶然であろうが、ある意味必然であったのかも知れない。

言語仕様という一面だけで見ると、BCPLからの影響は少なく、BCPLの先代CPLとの間に至っては完全な断絶が存在すると言える。

用語の所属
プログラミング言語
関連する用語
C
BCPL
手続き型

コメントなどを投稿するフォームは、日本語対応時のみ表示されます


KisoDic通信用語の基礎知識検索システム WDIC Explorer Version 7.03 (16-May-2019)
Search System : Copyright © Mirai corporation
Dictionary : Copyright © WDIC Creators club