日本語識別子を前処理でローマ字に変換
こんにちは、高木です。
先日、日本語識別子の話をしました。
今回はその話の続きになります。
前回は日本語識別子の命名についての話題が中心でした。
今回は、日本語識別子を自由に使えないような言語処理系で、強引に日本語識別子を使う方法について考えてみることにします。
実は、以前別のブログでこの話題に触れたことがあります。
そこでは、多バイト文字で書かれたソースコードからどうにかして国際文字名に変換してやろうという趣旨でした。
GDBでは、info localsコマンドを使えば局所変数については一覧を表示することができます。
けれども、非局所変数などではやはり不自由します。
関数の場合もしかりです。
この問題を打開する一案として、前処理で、国際文字名ではなくローマ字に変換するという方法を考えてみました。
ローマ字への変換はKAKASIというツールを使うのが楽です。
KAKASIというのは、漢字仮名交じり文を分かち書きしたり、ひらがなやカタカナに変換したり、ローマ字に変換したりできるツールです。
それらの機能を組み合わせれば、いったん分かち書きしてからローマ字に変換できます。
分かち書きしてローマ字にすることができれば、あとは下線でつないでスネークケースにするなり、頭文字を大文字にして空白を取り除くことでPascalケースにするなりできます。
漢字の読みを完璧に変換することは無理としても、日本人であれば容易に元の日本語識別子とのひも付けができることでしょう。
「日本人であれば」と書きましたが、外国人のことまで私は関知しません。
よく、日本語識別子に否定的な立場の方が「チームに外国人が入ったら……」ということを主張します。
けれども、ソースコードの識別子が日本語なのに不自由するのであれば、日本語のドキュメントを読み書きするのも至難の業です。
だとすると、要するにその人物は著しくコミュニケーション能力が劣るということであり、参画するにはスキル不足だというだけのことですね。
横道にそれたので話を元に戻します。
最初からローマ字で識別子を書くのは読みにくいですし、決しておすすめしません。
けれども、漢字かな交じりの日本語識別子の代替表記にローマ字を使うのであれば、かなり有用ではないかと思うわけです。