Collocational Programming((そもそもこいつからしてGoogleで全くヒットしない.そのうちこのページだけヒットするようになるんだろうけど.))

プログラムを組む上で,変数や関数などの名前を決めるという作業は結構な負担である.ネイティブの人間でもスペルチェッカーぐらいは使っていたりするのだろうか.この辺はそれなりに興味があるところだ.
さて受験英語の思い出に「Collocationに気をつけろ」というものがある.特に英作文では何度も何度も痛い目にあった.LongmanよりCollocationを調べるとこうある.

collocation noun
the way in which some words are often used together, or a particular combination of words used in this way

  • 'Commit a crime' is a typical collocation in English.

つまりある単語同士は一緒に用いられることが多いというあたりまえの話である.逆に言えばそれ以外の組み合わせは基本的になされない,聞き慣れないものということになる.このあたりになるともう文法だけでは解決できない世界なので,本当にどうしようもない.憶えるしかない.英作文でこれほどきついものはない.
例として日本語でいってみよう.ちなみに括弧内はGoogleでのヒット数である.

特に他意無く並べてみたが,常套句のようなものから微妙に気になる表現まで印象は様々ではないかと思う.これは名詞+形容詞の例だが,経験上プログラミングで恐いと感じることが多いのは動詞+名詞のコロケーションと名詞+名詞のコロケーションの方だろうか.動詞+名詞でおなじみといえば以下のような組み合わせが挙げられる.

  • データをコミットする
  • バッファをフラッシュする
  • バッファをロックする
  • 要素を列挙する
  • ストリームを閉じる
  • 画像をレンダリングする

名詞+名詞あたりになるとかなり難しい.Googleで英語圏を中心に検索してみて,それなりにヒットすれば使うようにしている.ちょうどさっきもgoogle:EventBridge]と [google:EventBinderで迷って結局前者を使ったところだ.いっそのこと最初から公開されているソースコードに絞って検索できる仕組みがあれば面白いかもしれない.
ちなみに以下は手元のゲームのソースからとってきたシンボル名.まあここまで来ると省略の仕方まで絡んでいるんでCollocationの話じゃなくなってきているかもしれないけど.それでもそこそこ同類はいるみたい.