
第4回 国語力とプログラミング力の関係 解説編
竹内郁雄(東京大学 教授)
2009/3/18
■良い文は人間の認知負荷を下げる
ミクロな例を見てみよう。
| (例1) |
| 今年10月からの新入社員の中間研修会参加は任意とします。 |
(例1)の文は、新入社員は通常4月に入るものだという一般常識を使えば、
| (例2) |
| 新入社員の今年10月からの中間研修会参加は任意とします。 |
と、(例2)のような解釈が可能であるが、今年10月にも社員が入る可能性は残る。誤解を避けるためには語順に気を付けて、最初から(例2)のような書き方をしないといけない。日本語の係り受け構造には理解のための「解釈エネルギー」のようなものがあり、解釈エネルギーが最小になるような文が良い文である。つまり、人間の認知負荷を下げるのが良い文である。実は似たことがプログラムについてもいえる。ループの中で不変な値を、繰り返しごとに毎回計算し直すようなプログラムを書くと、プログラムを読むための解釈エネルギーのみならず、「計算エネルギー」も多く消費してしまう。文章でもプログラムでも無駄を排除することが必要である。もし、その値がループの中で不変であることに気が付いていなかったとすれば、それはそもそも問題の理解が足りなかったということにほかならない。
次に2つの文からなる少し長めの文章例を見てみよう。(例3)は、とある会社(ABCとしておく)の安全管理室が事故事例の報告として、社内に発信した公式文書から抜き取ったものである。
| (例3) |
| ABC社員は、愛甲石田駅からバイクで出社途中、反対車線の車が右折するためいったん停止したので、バイクの横の車が道を譲るためライトをパッシングさせ合図し停止した。ABC社員はこれに気付かずそのまま走行したため相手車両は急ブレーキをかけたが間に合わず衝突したものである。 |
(例3)の文章を読んで、読者がなんの疑問も感じなかったら、ぜひ反省していただきたい。よくあるパターンの事故なので、この事故の状況は容易に想像できるが、だからといって文章構造の整合性の乱れを看過して分かってしまってはいけない。別の珍しい状況をこのたぐいの文章で記述されたら、理解に必要な解釈エネルギーが非常に大きくなる。これと同様に乱れた構造を持つプログラムが、ソフトウェアとしていかに質の悪いものかは、これまた容易に想像できるだろう。なお、(例3)の文章を良い文章に直すのは、文章構造を理解するためのいい練習問題となるので挑戦してみてほしい。
■日本語は“抜け”が多い言語
| PR:@ITジョブエージェント主催セミナー |
| 萩本氏と新野氏が、成長の秘けつを語る! 「プロジェクトメンバーのためのスキルとキャリア」 3月28日(土) 14:30〜、秋葉原、参加無料 |
言葉力というのは、上記の例のような文章やプログラムを書かないように十分に気を配る力のことといってもよい。わたし自身、了解性と厳密性が要求される書き物を日本語版と英語版の両方で用意しないといけないことがよくある。その場合、まず日本語で書き、次に英語で書く。すると、日本語の記述で“抜け”に気付くことが多いのだ。日本語では気にならない記述の省略が、英語にすると情報の欠如になることがある。つまり、異なる意味や構造を持つ2つの言語で同じことを書くと相補的に文章の正確さを高めることができるということだ。ソフトウェア開発の各段階で、コーディング言語以外にいろいろな言語を使うことの意義はそこにある。
■林くんを鉄道マニアに例えれば「作り鉄」?!
冒頭で名前を出した林くんは、一般の高校生の水準を超えた確かな言葉力の持ち主だ。言語(彼の場合、現在はプログラミング言語)の内部構造に非常に鋭敏な感覚を持っている。普通のプログラムをほとんど書かないのに、プログラミング言語を設計・実装してしまうというのは、鉄道マニアの乗り鉄、撮り鉄といった分類にならっていえば、作り鉄(そんなのあるかどうか知らないが)相当だ。
一般に言葉力は文系的資質であるとされる。わたしは林くんの根本は理系よりもむしろ文系と見た。文系の学生が趣味でプログラムを書くと、とてもいいプログラムができる。少し前にある会社の社長さんから聞いた話だが、文系大学のトップ校の1つである一橋大学は優れたソフトウェア屋さんをたくさん輩出しているという。さもありなんである。言葉を駆使しつつも、(一橋大学が強い)経済という実はかなり数理的な現象を扱うセンスは、ソフトウェアに対するセンスと相通ずるものがあるのかもしれない。わたしが未踏ユースで見つけた英才たちの多くは、何らかの方法で中学ぐらいまでにかなりの言葉力を身に付けている。あるいは、そうでなくても未踏ユースのプロジェクト期間内でソフトウェアを真剣に開発していくうちに国語力をめきめき伸ばす人がいる。
良いプログラムを書く力と、良い文章を書く力の共通の根源には言葉力があり、この両者には強い相関関係がある、とわたしは考えている。これまでたくさんの研究者や学生と付き合ってきた経験に基づくと、あえて1.0とはいわないが低くない相関係数がはじき出されるだろう。良い文章を書く練習をすれば(その前に他人の文章を構造批判的に読む)、きっと良いプログラムを書く練習にもなっている(その前に他人のプログラムを構造批判的に読む)というのがわたしが強く信じている仮説である。
| 筆者プロフィール | ||
|
【写真】天才プログラマに聞く10の質問 バックナンバー
- 第1回 Lispの仏さま竹内郁雄の目力
- 第2回 麗しの天才科学者、五十嵐悠紀の「科学って素敵!」
- 第3回 Cyanを設計した高校生、5カ月で5つの言語を習得
- 第4回 国語力とプログラミング力の関係 解説編
- 第5回 Rubyを最大63%高速化した中学生は超多忙!
| リサーチャーが語る「Webサービス業界の勝ち組の特徴」と「求められるスキル」 マーケットプランニング、コミュニケーション、柔軟なアーキテクチャ設計が鍵 |
| 『本当にあった危ない話』システム開発における法的トラブル事例を紹介! 紛争を事前に防ぐために、専門家への相談が大切です。 |
| 気になる「社会人大学院」という選択肢 仕事との両立は本当に可能? 独学とは何が違う? 実際の学生・卒業生6人に聞いた |
|
|
| 1日1問、模擬試験問題をメールで届けます | |
| ITスキル研修4000件、最新情報の検索できます |
スキルアップ/キャリアアップ(JOB@IT)
スポンサーからのお知らせ
- - PR -
お勧め求人情報
| ◆あなたのプロジェクトは大丈夫? システム開発における法的トラブルの事例 |
||
| ◆気になる社会人大学院。興味はあるけど仕 事と両立可能?実際に通った6人に聞いた |
||
|







「秘密のファイル世界デビュー」――日立システムがセキュリティかるた大会