カレンダー

2022/01
      
     

広告

Twitter

記事検索

ランダムボタン

ゆるきゃら計算機モデル

by 唐草 [2022/11/16]



 「プログラムを学ぶ」というとCやJavaといった言語を学ぶ印象が強い。それは英語やフランス語といった人の言語を学ぶことからの連想だと思う。
 人の言語を学ぶのと同じ考え方でプログラミング言語を学ぼうとするのは、オススメできない。間違ったアプローチだからだ。
 もちろんプログラミング言語にだって言語ごとの特徴や癖がある。目的に合わせて何十種類ものプログラミング言語が存在している。だから、文法の勉強や辞典(リファレンス)の読み方を学ぶ必要がある。でも、それだけではプログラミング言語を使えるようにはならない。
 プログラムを学ぶ際に一番重要なのは、アルゴリズムを組み立てる能力だ。プログラミング言語なんてアルゴリズムを実装する手段にしか過ぎない。
 と言っても分かりにくいだろう。料理に例えると、重要なのはレシピであって道具ではないという感じ。プログラミング言語を学ぶというのは、料理道具の勉強をするようなもの。これでは料理の味の向上は期待できない。
 アルゴリズムを組み立てるには、数学の知識があるに越したことはない。論理代数は常に必要だし、画像をいじろうとしたらベクトルや複素数が必ず出てくる。AIは行列計算と微分の塊みたいなものだ。
 でも、数学の知識だけではコンピュータ用のアルゴリズムは作れない。やはりコンピュータという道具を理解している必要がある。でも、これはプログラミング言語の話ではない。もっと機械寄りの話。
 ぼくはアルゴリズムを作る際に、簡略化したコンピュータモデルを頭に思い描いている。どこでどんな処理が行われ、データがどこにあるのかというようなことをおぼろげに想像している。
 とは言え、ぼくは計算機科学が専門ではない。だから、ぼくの思い描く仮想のコンピュータモデルはとてもシンプル。
 コンピュータは、2の階乗が大好きというのが基本。CPUは整数が好きで、三角形が大好きなGPUは小数の計算をしたくてたまらない。ディスクとネットワークは遅くて信用できない奴ら。ファイルは4KB単位の紙束。と考えている。
 自分でもちょっとカワイイと思うゆるきゃら的計算機モデル。