ブログっ...!

自分についてのメモしかないので、見る価値がないよ。(人に説明する思いやりが皆無に近いよ。)

ある音が嫌いな自分のことについて

昨日ミソフォニアという病名を知った。

ミソフォニア - Wikipedia

特定の音に強い不快感を感じ、強い怒りや逃避欲求に駆られ、正常心がかき乱されたりする障害らしい。

wikipediaのエントリーを何度も何度も読んで、私はこれだこれなんだと思って、わずかに安心した。
近しい人に「その音をやめてくれ」「向こうから聞こえる音がうるさい」と言っても、「神経質だよ」「気にしすぎ」と言われ、些細な音にいちいち反応してしまうのは自分の重箱の隅をつつくような悪い性格に起因しているのだ、と思い続けてきたわけだけど。。

今漸く、これが一つの障害だとわかって、自分の性格を否定してまでこの性質に向き合う必要がなくなったことに、なんだかほっとした。
風邪や喉の痛み・頭痛がしたときに飲み薬を飲むように、自分の性格とは独立した一つの症状として向き合って良いことが、この上なく嬉しかったり・・・

自分の経験

小学生の頃から今現在も続いているわけだけど、人が集まる場所はどれも苦痛だった。
鼻をすする音、喉を鳴らす音、咳、音として聞こえる息全般、あくび、ペンが紙越しに机に当たる音、キーボード音、カチカチ音、蹴伸びの声、癖のある笑い声、机を爪先でたたく音、、
人が立てる音が本当に嫌いだった。怒りが抑えきれなくて、無意識に睨んでしまったり、歯を食いしばったり、怒りのあまり泣いてしまったり、「ブッ*ろしてやる」と思わず小さく呟いてしまったことは数知れない。
家庭でもどこでも例外なく、家庭では、母親が昼間に春雨を食べるのも鼻を鳴らすのも咳をするのも嫌いだった。イライラしながら文句をいい、決まって音楽を聞くか自分の部屋に逃げるかをした。唯一母親にだけは文句を言って感情をぶつけていた。母親が風邪を引いて咳や鼻を詰まらせて辛そうにしていても、怒りが湧くのは変わらなかった。居間で父親や姉がご飯を食べ始めても、急いでご飯を終わらせて部屋に逃げた。

成人してからもその音がある閉じた空間に行くのが辛くて大学に行きたくなく、母親に泣きついたのは何度かあった。
教室内では音源は大体振り向かずとも、生活のうちに特定されていくので、音がうるさい人間ブラックリストは大体あった。鼻すすりの目撃は最も多いが、各人各人多様なすすり方があり、「特にこいつの鼻すすりが嫌い」「おっ、水タイプですか」「あいつはたまに鼻をかむことによって、すすり回数を削減しているので、まだ良い」などいろいろ考え、第三者の立場で分析することにより、怒りを抑えていたのかもしれない。

電車では音楽が手放せなかった。イヤホンを自宅に忘れたときは本当に死刑宣告に近い。息・ため・鼻すすり・咳などが四方八方から聞こえ、音源を特定することもできない。精神統一をして心を無心にして、何が別のことを考えて必死に意識を逸らした。用事が終わってすぐに新しいイヤホンを買った。(それからは私のリュックに予備のイヤホンが常備された。)

ここが許せない”すすり音”

麺を音を立てて食べるのは、時蕎麦由来の文化であるらしい。なるほどそういう文化。ラーメンは蕎麦じゃないが、とりあえず麺類全般音をたてて食べるのは文化だと仮定しよう。あと、熱い液体などを少量口に運びたいがためにすすってしまうのも、仕方がないと仮定する。
だとしても、私が許せないのは、水・缶ビール・ゼリーなどといった冷たい、且つ、全くすする理由が見出せないはずのものをわざわざすすること。横隔膜を下げるのに無駄にエネルギーを消費している。「お前意地でも全部すすろうとしてるやろ??」て人間がたまにいて、怒りを抑えられないのと同時に、理解に苦しむ。ゼリーをすするときの音は特に、ゲルが変形する音なのかわからんが、液体を吸い込むときよりさらに音が強くなる。ゼリーをすする人間は正直、本当に気持ち悪いと思ってしまう。

このようなイライラ地獄の中で、私なりにいくつか行った改善の試みがある。


音を立てるってことはその人間が生きている証拠じゃん!

中学のときに考案した考え。なお、なんの効果もなかった。「飛行機の音がうるさい、でもこれって文明の進化の証拠じゃん★」と論点を変えているだけで、なんの問題解決もしてないじゃないかと今になっては思うが、まあ心構えを変えることで現状を変えようとした。

ブラックリストの人間を好きになろうと努力

自分の中で音がうるさいブラックリストに入ってしまった人といざ二人で話してみると、音以外に何の欠点も見当たらず、面白い人だったりする。私はその度に、自分が音のうるささだけで相手を判断したことに罪悪感を感じるのだが、やはり話終わったあと同じ空間に居続ければ、辛いのは変わりなかった。ある人を避けてしまったり、ある人が参加する何かの集まり(特に閉所で行われるもの)が怖くて行けなくなったり、自分の社交性にもわずかに影響しているんではないかと思う。どっちにしろ、部活にもサークルにも入っておらず、自宅/学校/バイトにしか行かない基本的に家を好む芋くさい人間なので、まあ社交性に関する問題はだいたい性格起因なのかなあとは思っている。

相手の立場で考えて見る

その音を出すのを実際に真似してみたり、なぜ相手はこんな音を自身のエネルギーを無駄にしてまで出し続けるのだろうなど想像して考えてみる。私も風邪を引いたときに、しかたなく鼻をすすってしまったり(直後に必ず鼻をかむが)、咳が出てしまったり、実際に音を出してしまうことはある。ならば、私も相手の気持ちを図って思いやることができるのでは、と思った。しかしこれも無効。 反応してしまうものは反応してしまう。

音楽を聴く

これは一番効く。なかなかの音量で。耳栓はだめだった。耳栓は聞こえる音の音量を抑えてはくれるけど、いやな音が完全にゼロにならないと、気持ちが荒ぶってしまうのは全く変わらないからだ。
音楽は幸い結構好きなので、まあたまに聴きすぎて耳や頭が痛くなったりするけれど、まあこれでいいかなとは思っている。しかし、イントロ・エンディングのフェードイン・フェードアウト、曲と曲のつなぎ目の静けさは恐怖なので、必ずイントロから飛ばす曲をかけ、エンディング近くになったら次の曲にスキップするということで回避。

逃げる

逃げる、というか、必要以上に我慢しない。これはもちろん効く。


ちらちら見てくる人間、貧乏ゆすり、ガムを噛むときの顎の動き、ペン回し、髪の毛をいじる手など、視界に入り込んでしまう動きのある動作にも不快な音を聞いたときと同じ反応をしてしまうんだけど、このあたり、wikipediaのエントリーがしっかり記述してくれていた。。
ミソフォニアは音に関する異常な反応に関するものと思いきや、視覚刺激に対しても反応してしまうケースがあるらしい。この二つが繋がっていることに驚きだった。より自分にとって信憑性が高くなった。

人一倍音に敏感だったからか、自分の音のたてなさっぷりは自賛するものがある。麺に関しては、麺を息を吸い込むことによる吸引力ではなく、箸を運ぶことによって行う。熱い汁を飲むときは、少々時間を待ち、一口一気に行く。火傷したこともある。人と一緒にご飯を食べる場面では「食べ方綺麗だね!!」と褒められることがあり、私は「フッ、まあな!!」と心のなかで囁き、とても嬉しい。
細心の注意を払ってご飯を食べているつもりだが、音は図らずして出てしまうことがある。たとえば、とても熱いものが唇にくっ付いて、焦って飲み込むときとか。(ほうとうとか美味しくて好きだけど、表面積が大きいせいで熱々の麺が唇に張り付いたときは本当「アッチィ!」って思う)私自身、音の小さい大きいに関わらず不快感を感じるので、ミソフォニアの人からは私の立てる音も不快に感じられることだろう…

自分が思うきっかけ

幼稚園のときから、ご飯食べるときに膝ついたり、クチャ音をたてると父親に必ず注意されたので、姉妹間で粗探しをしていたのがきっかけだと思っている。姉がクチャると、「あー!お父さんに言っちゃおー!」って言うために、ずっと耳すませてた。しかし、今となっては私がお父さんに口うるさく文句を言うようになったけど。。(父親は決してクチャ音たてないけど、何でもかんでもすすったりする。)

病名を知ったきっかけ

今回、この病名にたどりつけたのは、自分の彼氏のおかげだと思っている。彼氏に「普通は脳が必要のないノイズをfilter outしてくれるのに、それができておらず異常に反応してしまうのは何かしらの神経症なのではないか」と言われる。
彼氏さんにもよく我慢できずに食べ方や音を注意してしまったり、レストランで隣の客の音が気になって機嫌が悪くなるなどのことが何度もあったので、それを怪しんでのことだった。 私自身、完全に性格起因だと思っていたので、病気という発想は完全に皆無だった。きにする人間とそうでない人間がいるんだなあということくらいだった。 彼氏さんのぐぐりにより「聴覚過敏」という病名を知るも、しっくり来ずそれはそのままにしていた。病気というのが信じられないという思い込みもあったので。
それから半年ほどがすぎ、音を立てる人間に対しての怒りが収まらないシーンがあった。そのときは音楽を聴いていたのだけど、音楽のわずかな間をかいくぐって聞こえてきた鼻をすする音だった。怒りや不快感、悲しみがどうしても我慢できなかった。なぜこんな思いをしてまでこの空間にいなければいけないのか、いつまでもこのままかと、急に悲しくなった。
そこで彼氏の聴覚過敏の話をふと思い出した。聴覚過敏ではなさそうだが、何かしらのアドバイスはくれるかもしれないから、病院いって今度見てもらおう、なんとかしてもらおう、と思った。
他に音由来の病気ってあるかなあと思い、「特定の音 嫌 怒り」とかで調べてみたところ、naverまとめの記事にヒットした。これがミソフォニアのことだった。

これから(*-_-)

周りに恵まれたというのもある。 感情をむき出しにして注意してしまった母親・父親・彼氏は、呆れながらも日常の音に気を遣ってくれた。(父親はふざけて音を大きくしたりもしてたが笑)
自分が怒りを収めきれずに学校で泣き出してしまったときに泣いた理由を聞いた友人が爆笑していたのがすごく好きだった。
音が原因になって嫌いな人ができてしまい、どうしても学校に行きたくなく、先生に号泣しながら相談したとき、(音が気になるからと言っては説得力にかけると思い、言わなかったが…)優しく対応してくれてしばらく様子を見てくれたりした。音が嫌で引きこもったりもしたけど、まあ総合的に見れば迂回しながらも各々の目的地には環境のおかげでたどり着けたのではないかな。。

しかし、今日も授業で学校に行き、周囲の音にイライラしてしまったので、まあ、これからもずっと向き合わなければいけないのだなあ(ゲンナリ)と泣きそうになりましたが。。

おつですし

うぉー
眠い

眠い、されど課題をやる。
ふと、ブログを書いてみたくなったので、課題を中断。
だったら仮眠とるのが一番理にかなっているだろうけど。。

ネムー

dq11を土曜日(4日目)の夕方から始めた。
嬉しい。。3dsでね。ようやく、ひと段落ついたので。。
rpgといえばドラクエしかやってない人間。
4/5/6 … 3ds
7/8 … ps2
てな感じでプレイしてまして。

この中で3dプレイてdq8だけよね。
dq8といえば、初現役ですよ。小4のとき。
一番好きといってもいいかもしれない。
「見渡す限りの世界がある」ていう文句の通りすごくcgが綺麗で、小学生ながら感動していたな。
大きなテレビに数メートル離れての3dプレイでも酔ってしまい、多くても連続2時間が限界だった。

3dsでの3dプレイは正直きついものがあり(3d視をオフにしても)、dq9-10はプレイしていなかった。
dq11について、ps4なんて買うつもりもなく、もちろん3dsでプレイしたい、と思うところだけど、3dプレイうぐーとおもっていたところ、dq11には2dモードがあると聞き・・・

しかしいざプレイを開始してみると、上画面に3dモード、下画面に2dモードという状態。
どちらのモードを使うかによって動かすボタンも変わり、3d用のボタンを動かして下画面を見てしまったり、その逆もしかり、という感じで誤動作も増え、酔わないわけがなかった。
下画面だけ見て一生懸命操作してても、上画面のほうがダイナミックに動くので、思わずそっちに目がいってしまったり。。目が回ってしまっていた。
おかげで全くストーリーに集中できず、こんな状態ではプレイできない… と、不安がつのる。。
しかし、次の日に、2dモードだけに完全に切り替える選択肢が教会にあることに気づく!
こっから!こっから!どんどんのめり込んでいったきがする。

過去ネットの攻略を頼っていたときもちらちらあったが、今のところ一度もみずにトントン拍子。。。
たのし〜
昨日は1日暇になったので、午後13時から翌日5時までプレイした。
おかげで今両手が痛いです。あと眠いです。

ネタバレ怖いから、はよ終わらせて、みんなの感想見たい。
もうちょいでラスボスかな。。
今は空飛べるようになったくらい。
レベル上げ好きだと思っている。今49lvかな。ガチ勢いるからあんま大きい声でいえないけど。
ラスボス時には60は行きたいなあと思っている。

すごくストーリー展開がすき。
あーでも吐きそうなくらい眠い、家帰ったら寝るかプレイするかまよう。。

うぐー

以前からよく感じていたことなのだけど、ちょっと思いが抑えきれなくなったので書く。

人の曲を聞いて下腹部が熱くなるという感覚、一般的ではないだろうか。どうなのか。
少なくとも私はそうだ。
曲が素晴らしいのかボーカルが素晴らしいのか知らんけど、特定のアーティストの曲を聞けば、結構な頻度で下腹部の内側から痒くなる感覚。

恋愛しなくても、これで女性ホルモンが分泌されて、健全な女性として暮らせる自信が湧いてくる。
自分が曲を聞いている間は「孕んでいないか」心配になるほどに、胸のドキドキも、下腹部の熱も止まらないのだ。
しかもこの現象を起こすアーティストさん全てボーカルが男性の場合なので、わりと確信を持って女性ホルモン分泌されている気がする。

(一応言っておくと、曲を聞いたあとにムラムラするような感覚は一切ない。その辺はドライ。)

まあ、何が言いたくてこうやってエントリ書いたっていうと、自分にこのような感覚を味あわせている(?)アーティストさんについての感想を描きたくなったからというのがある。

ので、以下。

  • 玉置浩二さん(安全地帯)
    数年前にカラオケのお手洗いで流れていた曲に驚いた、すごく良い曲だった。
    「サーチライト」という曲。
    調べるとすぐに玉置浩二さんの曲だということがわかった。
    後日安全地帯のCDを手に入れ、同時に動画をあさりはじめる。
    私がこのときからそして今も含めて個人的に思っていることだが、表現力・歌唱力の素晴らしさで言ったらこの方が一番。
    安全地帯デビュー当時〜アンプラグドライブ!を主に漁っていたが、当時の玉置浩二さんの細い腰・雄々しさを目の前に、例の現象が起きたのは言うまでもない。

  • 稲葉さん (びーず)
    父の影響で昔から好きなんだけど、より刺激的に感じるようになったきっかけはCDだけでなく動画を漁るようなってから。
    Bad communication (pv), love me i love you (pv), 結晶, dont leave me (ライブ), MOTEL (ライブ), FUSHIDARA120%, long time no see, 雨だれぶるーす、ぱるす
    特に、Bad communication (pv), love me i love you (pv) がやばい。刺激という意味でやばい。
    あとライブはもう全般にすごいぞ。色気が。

  • 桑田佳祐さん (さざん)
    これも父の影響。稲葉さんと同じように、刺激的に感じるようになったのはわりと最近。
    C調言葉が一番くる、もう全てかっこいいよ。

  • 草野マサムネさん(スピッツ
    昔から姉がファンだったので、わりとよくアルバム曲を聞く機会があった。
    いい声だなー大学生みたいだなーと思っていたけど、特にハマることもなく。
    しかし、不意に姉がよく流していた「魔法のコトバ」を聴きたくなって動画サイトをあさり始めてから、闇ははじまた。
    いろいろライブ動画を見るうちに、驚く。
    「え、これで40後半… うそだろ、大学生だろ…」
    姉がよく聞いていたのはCD音源のみだったので顔を見る機会がなかった。
    いざ見れば、「少年」すぎるぞ!と驚くばかり。ハマる。
    姉と好きな曲を共有しなくなってからスピッツの曲を知る機会を失ってしまっていたので、知らない曲も多かったけど、どれも楽しんでいた。
    爽やか、軽い、というか、しっとり、というか、ああ語彙力ないのでわからん。とりあえず声が好きだった。同じくらい顔も好きで、動画見る度ドキドキしていた。
    それでも見た目が少年なので、冒頭に話したような現象は起きなかった。だから油断していた。
    それはスパイダーのpvを見たときに突然やってきた。
    今まで少年だった、草野氏が、色気スゲェ江、腰、腰、、つむじ、。。
    食い入るように画面に釘付けになった記憶は昨日のように思い出される。
    これを機に、だいたいの曲に反応するようになってしまったというオチw
    「童顔の女の子の色気に気づいてしまった以来、意識してしょうがない」感じか。。

思い出されるアーティストさんはこの4方。 順不同だけど、最後のひとつは不意打ちを食らってしまってせいか、なんか凄まじい。

あとは、「偶然的に知った曲があって、それがとても例の現象を引き起こす」アーティストさんとして、ラルクさんの花葬だったり。。

どうでもいいけど、このエントリを書いている間はずっと、たまさんの「さよなら人類」をリピート再生して聞いていた。

あわわ

あ、ありのまま起きたことを書くぜ…

来月から三ヶ月期限でフルタイムエンジニアだぜ!!

あの、学生がオプンソスにコミットできる某夏のプロジェクトに採択されまして、、
結果はどうなるかはわかりませんが、来月から苦しむチャンスをいただくことになりました。

うーむ、さてどうなるかな

  • アルバイト2つ
  • ゼミ
  • TAの仕事
  • 2コマの授業

TAの仕事はもういろいろ契約してるのでやるしかないとして、
まあこの誰にもapplyしていることさえ話していない現状からどうお話をつけるのか。

あわわわ

大変なんだろうな、死ぬんだろうな。。

でも最後のT-shirtsほしさにやるのです。。

私が怖さに怯んだときに、小学生のときから自分に言い聞かせてきた20世紀少年のケンヂのセリフを、今もう一度反芻してみる。。

「 人には一生に一度、どうしてもやらなきゃいけない時がある 」

いいチャンスをもらったので、ほどほどに頑張るのだ!! おk!

Unicodeでつまずく

プログラム書いてると、目視すれば明らかにあっているのに、予想したような答えにならない!てなことはよくある。
だいたい、自分の不注意。

しかし極たまにその「だいたい」に例外的に当てはまらないときがあって、
一例として日本語文字列操作のとき。

今日自分がTAをやっている授業で、emacsを使う生徒にそういう類の災難が。
「"… で … “ = ”… で … “ が false にevalされる。なんで??」
と困っている生徒。

emacs上でevalしても、
ターミナル上のOCaml対話モードで実行しても同じ結果。

ぐっ、これはUnicodeのアレがアレでこうでは…

こういういわゆる汚い部分は実は去年結構聞いたことがあった。
(汚いと言っては失礼かもしれない、けど実際汚い。)

数学やってるときに、「レジスタにこの数字を mov してー」と言わない。
日本語話すときに、「その発音を文字コードに書きあらわすとー」とか言わない。
まるで数学の式を書くようにプログラムを描きたいし、喋るように日本語をpcに打ちたい。
そんな願望を叶えるため、裏方でわっせわっせと汚い部分と触れ合っているお方がインターン先にいらっしゃった。

実際自分もインターン初期頃に bidi 関連の小さいバグを直していて、
そしてインターン先で初めて気づいた。
「あらゆる言語を表示すんのって、大変なんだな…」
初めてそっちの話を聞いたときは、あまりにも日常にない会話だったので目眩がした記憶があるw
まあ実際、私もそのときになるまでそのへんの汚い問題は知らなかった。
先代(?)が標準作ってわっせわっせ綺麗に隠蔽してくれてたので、
そんな汚いところは知らず平和に生活をしていたわけである。
(汚い汚い連呼してすみません。。)

しかし、先に戻って、このエラーである。
「"… で … “ = ”… で … “」
一体どうしてこの右の「で」が「で」ではなく「で」になってしまったのかわからないが、
で (\u3067)
で (\u3066\u3099)
この見た目が同じ「で」っぽく見える二つが混在してたのが原因。

ばびぶべぼ
(\u3070\u3073\u3076\u3079\u307C)

ばびぶべぼ
(\u306F\u3099\u3072\u3099\u3075\u3099\u3078\u3099\u307B\u3099)

う、う、、

/(>__<)\

結合文字つかった濁音つきの文字は、
後ろにカーソルキー合わせて delete キー押すとその結合文字だけ消えるし。
前方の文字に結合しているから、カーソル移動させても2つ飛ばしになるし。

emacs で、結合文字使った濁音を入力する方法あるんだろうか。
(外部からのコピペではなく、素直に入力して)
一体この「で (\u3066\u3099)」どこからきたのか、結局わからなかった。

私もエディタ作らないと、この類の問題には触れ合えないきがするぞ。。
しかし、下の参考にした3つ目のサイトも言っているが、ページ内検索すると 「で (\u3067)」「で (\u3066\u3099)」どっちもハイライトされてるのが微笑ましい(^ - ^ ))にこにこ….

見た:

Text Escaping and Unescaping in JavaScript

Unicodeのgrapheme cluster (書記素クラスタ) | hydroculのメモ

日本の文字とUnicode 第3回 | 大修館書店 WEB国語教室

久々に

これは久々の更新である。三ヶ月ぶり。

何をやってもうまくいかない日、そう錯覚してしまう日、 何のやる気も起きない日、 やる気はあるが「やることがたくさんある」と思うと始まりが億劫になる日。。

こうやって忙しさにかられない生活をのんびり送っていると、 そういうパッとしない日の数が多くなったように感じる。

ベッドから出るタイミングを逃し、空腹に我慢できなくなると、漸く立ち上がる。
パンにケチャップやチーズ、バターや砂糖をかけるのも面倒くさい。でもちゃんとかける。
何も考えたくないので、オーブントースターの扉越しに焼き目がつくまでの過程をひたすら観察。
食べる。
まだお腹が減っている。
次はパンにマヨネーズをかけて焼く。再び観察。
食べ終える。
すると、喉が乾いてくる。

水を飲むのはあまり好きではないのだけど、まあ飲んでみる。
水道水一杯。
そういえば、パンの食感がぱさぱさしていた。買って2週間たったパンだった。
いい加減、仕事をしなくてはと、pcに向かう。

いや、これが不思議なことに全く!全く何もする気が起きない。
ツイッターを適当に流し見て3時間経った。頭がパッとしないのでよし風呂に入ろうと、今湧かしたところ。 朝起きてお風呂に入ろうか、でも面倒だ、という葛藤(?)を六時間経ての快挙である。

頭の中のもやが風呂に入って少し薄くなるといいのだが。
極端に言えば、「19 + 19の計算に10秒かかる」(これはただの例だけど)
いつも行う簡単な作業が、明らかに時間がかかる。
出た答えにも自信が持てない。やもすると、どのように導いたのか忘れる。

昨日、一日中「寄生獣」という漫画を読んでいた。
物語を読む人には、考察好きな人、主観で入る人、キャラクターの個性を見る人、様々だと思うけど
自分は圧倒的に物語に入り込むタイプ読み方をする。

人間の周囲に見えないカメラが浮かんでいるイメージ。
連続したコマの間に省略されたシーンも頭で補正して、滑らかに動かす。
人物の移動した距離、その世界で経った時間も含め、
並行して違う場面で生活するそれぞれの人物をなるべく考える。
各ワンシーンに対して思考を巡らし、疑問を持つようにする。

(しかし、これは作品による。
読者の想像を掻き立てるような構図のセンスや展開がなければ保たない。 )

この読み方の場合、バトル漫画(私は寄生獣をバトル漫画だと思っているが…)だと、
入り込めれば入り込めれるほど(それほど素晴らしい作品であるほど)、
休憩を入れずに一気に読み進め読み終えたときの疲れというのは、もう凄まじい。
現実と物語の区別がつかなくなる。

良い作品であるほど、疲れる読み方だと思っている。

んで、寄生獣はすごく良かった。素晴らしかった。 今日疲れている理由はそれじゃないかな。

読み終えて頭がボーッとしているというのに、 もう一度あの物語の世界に入っていたくって、朝方まで、1巻から10巻の最後まで再び読んだ。

あー、なんだが。
すごく一服したい気分だ。

お風呂入って少しはさっぱりしたけど。
どっちつかずのまま、中途半端な世界でぼんやりするのは。

良い漫画を読むといつも死にたくなる。

まなび1

トライ木の話になった。
トライ木って、人工知能の辞書とかの恐ろしく大きいデータのためのデータ構造だと思っていたのだが。

私はほぼ毎日と言っていい程、このトライ木にお世話になっていたらしい。

以下はMakefileの一例。
all : foo.exe
foo.exe : foo.o
gcc foo.o -o foo
foo.o : foo.c
gcc -c foo.c -o foo.o

MakefileのこのA : Bという記法は、Aの生成にはBが必要という意味。
make Aとやれば、Aが生成される。
$ make
は make all の略。

この各々のファイル (func.o, func.cなど) は
C言語がコンパイルされて実行可能になるまでの流れ - にょきにょきブログ
で丁寧に説明されている。

foo.c から foo.exeに至るまで、

foo.c --cpp--> foo.i[-E] --cc1--> foo.s[-S] --as--> foo.o[-c] --ld--> foo.exe [-なし]

こんな過程がある。
・cpp : Cプリプロセッサ
・cc1 : Cコンパイラ
・as : アセンブラ

(A)「 --cpp--> --cc--> --as--> 」部が gcc がやっているもの。 gccのことをコンパイラだと思っていた今までだったが、実は「コンパイラドライバ」 コマンドを実行していろいろなツールを動かす役目。 clangは (A) 部をまとめて行うため、コンパイラと呼んでよいらしい。

foo.c
int main() { puts("hello"); }

foo.sを生成すると、アセンブリ語がこんな感じで並んでいるイメージ 左はアドレスだと思って

foo.s

a ラベル 命令
0 main: push hoge
5 call _puts
10 ret
12 hoge: .string "hello\0"

foo.sからfoo.o間はアセンブラの仕事。 上記の例だと、hogeが示すアドレスは一体何かを具体化する。hoge は 12 に置換されるイメージ。 ファイル内で閉じてアドレスの解決を行うために、並列作業が可能である。(.oを作るまではマップ並列)。 たとえfoo.c, bar.c の中に依存関係があっても、ファイル内で閉じていた解決なので。 この時点ではputsのアドレスはまだ解決されない。 プロトタイプ宣言はされているが、実体は定義されていない。 (他のファイルでputsが定義されている場合はリンカのお仕事、この場合はlibcの関数なので後のローダのお仕事) これ以降はローダのお仕事。

リンカは規格の決まったヘッダーを用意する。
ELF, Mach-O (object file format) $ file file.o で見るとよい。
-------
|header|
-------
| text |
-------
| .data |
-------
| .rel |
-------
まだ解決されないアドレスを rel に載せ、relはtextを参照する形になっている。

一方、libcも同じ過程を経て、リンカに渡る。 リンカは puts は アドレスA, printf は アドレスB, ... みたいな巨大な参照関係を示したトライ木を作成し(Mach-Oの場合. ELFはハッシュ)、それをローダに引き渡す。 libc.so/ libc.dylib

ローダーは「実行時になるまでわからないメモリのどこか」にプログラムが配置された後、 これによって決定された実際の(?)アドレスを各ファイルに教えて、参照関係を再びただす。

実行時には各ファイルのアドレスが依存するために、ローダーの作業を並列化しても高速化は望めないらしい。 リンカもリデュース。