今、かってにお休み時間と決め?、あの浜銀総研の萌え市場は888億円 (PDF)のレポートを読んでいました(このレポートのありかは、みかままさん経由で知りました)。
でもでも、このレポート、このレポートが出てから、急激に株価が上がった、ブロッコリーについては、書いてないんですね!目からビーム!!
でも、そのかわりに、「新世紀エヴァンゲリオン」については、やたら詳しいような。。このレポートの最後に、
注については、当社戦略研究部の宮島耕史副主任研究員の全面的な協力により作成した
って、あるんですけど、そう書くと、この「宮島 副主任研究員」って??って、おもわれてしまうような気が。。
それとも、レポートを書いた人は、「メイド喫茶のウェイトレスは、客の入店時には「いらっしゃいませ」のかわりに「お帰りなさいませご主人様」(もしくはそれに類する言葉)、退店時には「ありがとうございました」の代わりに「いってらっしゃいませご主人様」(もしくはそれに類する言葉)と挨拶する なんちゅー注は、自分が書いたんじゃありません」と主張したいのか。。
エヴァで思い出したけど、たしか、エヴァの用語辞典みたいのが、むかしあって、A10細胞とか、いろいろ説明してあるんだけど、そこに 「intのc」っていうことばがあるんですよ。
で、それが、裏技として、メモにのこしてあると。。(だれだったか、お母さんが研究員で、そのお母さんが残したメモじゃなかったっけ?記憶定かでない)。
当時エヴァをみてたときは、「intのc」って、裏技でもなんでもなく、あたりまえじゃん!普通に書くじゃんって思ってたんだけど、今考えると、たしかに、あと何年かしたら、そうなるのかもね。。
ちなみに、意味通じない人と、なんで、あと何年かしたら、intのcが裏技と思われるかについて。
intのcっていうのは、C言語などで
int c;
と取ることからきます。このときは、たいてい
int c; FILE *fp; if ( (fp = fopen("yomikomi.txt","r") ) == NULL ) return; while(( c = getc(fp) ) != EOF ) { switch(c) { case '<' : /* タグの開始 */
break;
case '>' : /* タグの開始 */ break; /* いろいろつづく */ } } fclose(fp);
等のように、ファイルから読んできた文字を入れるのに、使います。
ファイルから読んでくると、符号なしのキャラクターです。だけど、EOFは、-1なので、unsigned charだと、-1は表現できないので、EOFにならないです。
そこで、intでとり、変数は、文字(キャラクター)をあらわすcで取ります。
で、「なんで、あと何年かしたら、intのcが裏技と思われるか」。
それは、現在のXML利用の風潮を見てもらうとわかるのですが、最近は、パーザーがあるから、自分はパーザーを作らないという傾向にあると思います。大学なんかでも、自分で、言語をつくって、パーザーをつくるということは、しないと思うんです(yaccとかlexとかからじゃないかな)。
そういうパーザーを使う場合、1文字1文字処理しません。
まず、ファイルの大きさを確保し、ファイル全体の領域を取ってきて、ファイル全体を読み込んでしまうか、ファイルポインタやファイルのストリームを取得して、それをパーザーに渡すという感じだと思います。
しかし、エヴァの場合、ファイル全体を読んできてから処理するのでは遅いし、そもそも、通信だったら、通信の終わりまで来る前に処理を始め、処理内容に応じて、どんどん動いていかないといけないです。じゃないと、解析してる間に、敵に目からビームを浴びちゃいます(って、でじことエヴァが戦うわけないけど)。
そのような場合、頭から1文字1文字読み込んで言って、現在の状態と、読み込んだ文字に応じて、次の処理を決定するという形になります(つまり、XMLでいうと、SAX系のパーザーに相当する)
で、そうした処理の場合には、設計段階で、あらかじめ、状態遷移を書いておいて、それに応じて動くわけです(そういう状態遷移の例は、ここにありました)
ただ、エヴァの時代には、そういうのが、普通のやり方ではないと(パーザーを使って、処理するのがふつうと)。そこで、intのcで1文字1文字とってくるのが、その時代では、裏技になってしまうと。。。なるほどお、奥が深いわけですね。
さらに、intのcというC言語でやっていそうな雰囲気を出しているのも、javaは、人命にかかわるのには使ってはいけない(とか、同意書のところにありますよね。たしか)から、人類を救う、エヴァには、使えないと。。。なるほど
(単に処理スピードの問題で、処理してる間に、敵から、口からバズーカを浴びてしまうからかもしれないけど)
そんなことまで、想像して、作ってあるエヴァ、ある意味すごいかも
って、本当に考えているのかあ??
さ、まじめにお仕事しようっと!