カレンダー

2024/03
     
2930
31      

広告

Twitter

記事検索

ランダムボタン

自分に騙される

by 唐草 [2022/11/26]



 プログラミング言語の役割は、機械の制御を人間にとって分かりやすいものにすることにある。機械と人をつなぐ翻訳装置のようなものだ。
 
 C = A + B;

という式があったとしよう。これをプログラミング言語入門の教科書的に日本語にすると「変数Aの値と変数Bの値を加算したものを変数Cに代入する」という感じになるだろう。これでもかなり分かりにくい。
 ぼくは、先日書いたように頭に浮かべたゆるい計算機モデルでプログラムを考えている。それに従うと「Aと名付けたメモリの番地に入っている値とBと名付けたメモリの番地に入っている値を加算命令とともにCPUに送って、返ってきた結果をCと名付けたメモリの番地に保存する」となる。機械語に近づいた分、さらに分かりにくくなってきた。
 この分かりにくさを解消するのがプログラミング言語の役割。機械の構造を考慮せずに人の考えを実行することを可能にしてくれる。
 また、プログラムの変数名は、数学のxやyのような無機質な変数名と違って自由に名付けられる。上の無機質な式を次のように書き換えるだけでだいぶ違って見える。

 totalScore = mathScore + englishScore;

 合計得点は、数学の得点と英語の得点の和ということが式から読み取れる。値に名前をつけて管理することで処理を分かりやすくすることがプログラミング言語の大きなメリットだ。名前を付けられるのは変数だけでない。処理そのものにも名前を付けられる。
 だが、このメリットにも罠がある。今日は、その罠にハマってしまった。
 変数に処理の実体にそぐわない名前をつけてしまったので、自分で作ったアルゴリズムを自分で勘違いするという間抜けなことに陥ってしまった。
 実例を書いても意味が伝わらないと思う。ものすごく単純化すると”working”と名付けるべきところを”worked”としてしまい処理中なのか処理後なのかが分からなくなってしまったようなもの。
 そのせいで勘違いをして自分自身を騙すことになって2時間も停滞してしまった。これは数学力ではなく英語力の問題。