未来のいつか/hyoshiokの日記 このページをアンテナに追加 RSSフィード Twitter

2014-06-09

コンピュータの動作原理は進化しているのか?

温故知新と言うか昔の歴史をひもとくと、1960年代にバロース(Burroughs)というコンピュータベンダーがあって、その会社のB5000シリーズと言うコンピューターOSMCP (Master Control Program) といった。 Burroughs MCP - Wikipedia, the free encyclopedia

f:id:hyoshiok:20140609225945j:image

The Architecture  of the Burroughs B-5000 

そのコンピューターMCPはALGOL風の高級言語記述されていて、世界初高級言語で書かれたOSだと言われている。B5000は世界で初めてマルチプロセッサと仮想記憶をサポートしたことでも知られている。

商用的には成功したとは言えず、後にUnivacと合併し、今はUnisysになっている。

B5000シリーズ高級言語マシンで、ALGOL風言語を直接的に解釈実行するような仕組みになっている。高級言語機械語がみたいなものである。そのため、ソフトウェアバイナリ形式で配布するのではなく、ソースコード形式で配布していたそうである

MCPOSみたいなもの)も例外ではなく、カスタマイズソースコードレベルでの修正になる。

UnixC言語記述されたのは1973年頃なので、それより10年以上前に、そのようなマシンがあった。ただ、MCP記述した言語はB5000シリーズアーキテクチャーに依存していたので、他のマシンへの移植性はなかった。高級言語機械語みたいなものだったのである

バロースのユーザー会ではMCPパッチだけではなく、様々なものソースコードの形で共有されていたらしい。オープンソース時代が来る遥か昔にソースコード共有の文化があった。IBM世界ではソフトウェアバイナリで配布することが多かったので、そのような文化は育たなかった。

プログラミング言語は、多かれ少なかれ、それが動作するコンピュータの動作原理を反映する。Cのような言語が仮定している、フラットなメモリ空間とか、逐次的な動作とかが、言語のプリミティブににじみ出てくる。

コンピュータアーキテクチャ逐次実行ではなくて並列実行が前提になっていれば、機械語にも当然、そのような動作を記述する命令が出てくる。

http://shino.tumblr.com/post/49094483/c

別にCが悪いとかそういう話ではない。 ただ、「C言語的」なモデルが「ハードに近いレイヤ」であったのは歴史の一時点の ことであって、C言語をこれからもそのように扱うのは多分間違いだ。 たとえノイマン型は変わらないとしても、スレッドメモリバリア、 キャッシュヘテロなコアなどを最初から考慮に入れて新たに 「ハードに近い、高級アセンブラ」を考えるとすれば、 違ったモデルが出てくるだろう。 そして、それが例えば疎結合メッセージパッシングに基づいたものになったとしても 私は驚かない。その時C言語は、メッセージパッシングなプリミティブが エミュレートする「古き良き時代CPUメモリモデル」上で走る高級言語になるかもしれない。

― Shiro

というのをたまたま発見して、そのもとになるのが、Island Life - 100年後の言語で、その中で、ユメのチカラ: LL Future 引用されていたので、懐かしくなって読みふけってしまった。

1980年代くらいまでは、Lispマシンのようなコンピュータアーキテクチャ存在していたが、それ以降はVAXやi386などの汎用マシン市場を席巻してしまったため、C言語的なパラダイムに支配されてしまった。

ひょっとしたら、まったく違うアーキテクチャーが出てくるかもしれないが、それがどのようなものになるのかは神のみぞ知る。

クレージーアーキテクチャーが出てこないと面白くない。

スパム対策のためのダミーです。もし見えても何も入力しないでください
ゲスト


画像認証

トラックバック - http://d.hatena.ne.jp/hyoshiok/20140609/p1