第191話:関係と全体
~解析現場~
*えーと、この構造体で定義されているnameとやらはどこで使われているのだろうか。*
*……あー、なるほど、表示部分の部品でのみ参照されているわけか。*
*…割りと大事な情報だが、文法を使ってこの情報を宣言することもできないな。*
*valueは他のところでも使いまくっているから構造体そのものを隠すわけにはいかないし。*
*まあここは、補足情報として書いておくか。*
*「nameはここ以外で使わないでくださいねー」って書いても、文法的に他の部品での使用を禁止することはできないが、*
*なにか新しく書くときには普通は構造体の宣言くらい見るはずだし、これくらいの杜撰さでも問題なかろう。*
*……いや、一応隠蔽方法がないわけではないけどね?*
*隠蔽のためだけにわざわざ新たな型を宣言して、その型を隠蔽することでnameを隠蔽すればいいんだけど、*
*そんなのどう考えても無駄だし馬鹿馬鹿しいからやるつもりはない。*
*百害あって一利なしとまでは言わないけど、五害あって一利ぐらいはある、という程度の解決法になってしまう。*
*取りあえずどう考えても美しくないし、文法規則を乱用するのはやめておこう。*
*さて次。*
*……っと、これで全部150行程度に収まったな。*
*ぶつ切りもこの辺りで切り上げて、そろそろ部品どうしの依存関係を探るか。*
*……とは言っても、10個ぐらいの部品ならまだしも、*
*両手両足でとても数えられないくらいの部品数の依存関係を手動で探るというのは、流石にどう考えても正気の沙汰ではない。*
*ということで、それぞれの冒頭の宣言を読み取って、まずは全体像を自動生成。*
*ただしそれだけでは人間の目には見るに耐えない代物が出来上がることが確実なので、*
*そこからは手動で解きほぐしていかねば。*
*特に、基本的な関数の定義からなるようなものは全体のうちかなりの割合のもので使われているからな。*
*……というか、具体的にどれくらい使われているんだろう。ちょっと検索かけてみるか。*
~検索中~
*えっ、全体の4割?いやそれはどう考えてもおかしい。*
*多分、実際には使われていないのに依存関係が「あることになっている」のが殆どだろう。*
*取りあえず、全ての関数について一つ一つ全探索し、一度も現れなかった部品を数え上げてみよう。*
*一度も現れないということは一つも関数を使っておらず、つまり無駄だということだからな。*