[Subject Prev][Subject Next][Thread Prev][Thread Next][Subject Index][Thread Index]

[OSASK 2693] from OSASK BOARD



このメールは、OSASK伝言板に書き込まれた内容です。
この書き込みに返事を書く場合は、下のURLから書き込みを行なって下さい。


http://www.imasy.or.jp/~mone/osask/index.cgi?REFER=3c163775_d74d

From: LightCone
Message-ID: 3c163775_d74d
Date: 2001/12/12 01:42
Subject: Re: 一言だけ言わせて下さい

こんにちは。

 色々ありましたが、ともかく、OSASK にも、頑張れるところ
まで頑張って見てほしい、と最近思うようになりました。
 とりあえず、私の本心は、OSASK の足を引っ張るよう
なことはしたくはないのです。ただ、現実的な路線を見て欲しい
とは今でも思っています。

 さて、仲裁的なご発言をしていただいたようで、ありがたく
思っています。

 ただし、一点だけ、私の経験から考えて少し見解が異なって
いる個所がありました。それは、OS 作りと コンパイラ作り
の難しさに関してです。

>通常のプログラムにおいて、時間をかければできる物と、
>発想力が無ければできない物があるかと思います。
>コンパイラは前者、OSは後者だと思いますが、いかがでしょう?
>(もちろんある一定のレベルにおける区分けです、ただ作るだけなら
>どちらもできるでしょう<早い遅いの違いはあれ)

 これは私から見ると逆のように思えます。OS は、基礎から
徐々に構築していくことができるので意外に楽なのに対し、
コンパイラ作りには、非常に数学的能力が要求されるために、
下手をするとバグがいつまでたっても取れないようにしか作れない
ようなものだと思えるのです。特に最適化の周辺を 100 % 正しく
プログラミングするには、無限の場合を有限のプログラムで
行うために、高度な数学的証明能力が要求されるように
思います。OS の設計には、必ずしも抽象的な参考書は
必要ありませんが、コンパイラ作りには、分厚い参考書が
必要だと思います。コンパイラ理論の「文法」と呼ばれる概念
や、(非)決定性オートマトンから始まって、「4つ組み」や
「3つ組み」と呼ばれる中間コードの考え方、レジスタ割り当
ての技術、条件式の最適化、共通部分式の最適化などは、
基礎事項としてよく理解している必要があります。その他に
C/C++ 言語などでは、導出型の内部形式などをよく定義する
ところから始める必要もあります。

 正直言って、実用ギリギリラインの簡単な OS ならば、結構
な数のプロのプログラマは作ることが出来ると思います。
ただ、GUI の API の設計などは、かなり個性が現れてくる
ものだとは思います。しかし、実用ギリギリの OS から、
発展させていくことも十分可能なはずなので、意外にOS開発
はスムーズに進むものだと思います。コンパイラ作りはそうそう
簡単ではないと思いますよ、、、。