BASIC以外にマシン語しかなかったから。
ゲームを作ろうと思えば、BASICでは遅すぎたり、メモリが足りない場合、選択肢はマシン語しかありませんでした。第2次パソコンブーム?の80年代のパソコン少年はみなそうです。
それでも数十KBのメモリを埋めるコードを書ける人はわずかだったでしょう。
私なんかは、ハンドアセンブルで数百バイトのブロック崩しモドキを書くのが限界でした。
市販ゲームを買うお金もないし、雑誌に載ってるプログラムを越えるものを生み出すチカラは到底ないとあきらめてしまったタイプですね。
ずっと後になってたぶん10年以上経ってから、C言語を覚えたときには、アセンブラのマクロだと思って取り組みました。
C言語の習得としては、それが最も正解に近いと思います。
そうでないルートで習得をした人はたぶん苦労したろうなと思います。
ポインタが分かりにくいというクレームももっともだと思います。
ですが、我々にとってポインタはメモリのアドレスにしか見えず、それ以上でもそれ以下でもありません。
変数はアドレスにつけた名前でしかなく、ポインタのポインタはアドレスを入れておくアドレスだからです。
ポインタの指すアドレスとか、ポインタを格納するアドレスという言い方にも違和感があります。そもそもアドレスはその名の通りアドレスしか指さないのであって、アドレスが指すアドレス=だから何?という感じがします。さらに、アドレスを格納するアドレスも、アドレス以外に何かを格納する場所を示すものがあるのかよ?というような具合なのです。
計算機の仕組みをちょっと知っていれば、ハナモゲラなポインタの解説に悩まされることもありません。そもそもポインタという名前をつけたKかRが戦犯なのではないかという気もしますが、ポインタと名前をつけることで抽象化レベルが一段あがるのですから、仕方のないところかもしれません。
私は処理系そのものについては、あまり興味がなく、道具としてしか見ることが出来ませんので詳しいことは分かりませんが・・・
コメント