« 光より速いニュートリノ:これを機に科学技術へ興味を持つ中高生が増えて欲しい | トップページ | XDev2011の川口淳一郎氏の講演で印象に残ったこと »

2011年9月25日 (日)

C言語で実行コードが動くときのメモリーイメージを解説した記事:日経ソフトウエア11月号

 ソフトウエアの世界はコンピュータの素のアークテクチャであるフォンノイマンアーキテクチャを隠蔽し、プログラマがコードを書きやすい方向で発展してきた。プログラマと素のコンピュータの間のギャップはコンパイラや仮想マシンが埋めるのである。組み込み技術関連の技術者は、その傾向とは真っ向から逆らい、コンピュータの素の形を理解しないとやっていけない技術分野である。私のような古い技術者は、そもそもそこを理解せずになにがソフトウエア技術者だ、と言っていたりもする。そんな訳で、一定のニーズがあるんだろうが、前にも書いたようなアセンブラの特集があったりもする。
 でも、実際問題として、どこまで詳細な理解をすべきかは難しい。CPUとしてはARMが組み込みからタブレット端末までを広くカバーしそうな状況なので、ARMを勉強するというのも一つの選択肢である。しかし、ARMというやつは、実は、ARM7あたりのアークテクチャと最近のARMとでは、本当に同じCPUなの?というくらい異なる。ARM社が設計したアーキテクチャだが、異なるものだと思った方が良い。
 全てのソフトウエア技術者が、アセンブラを理解しないといけない、というのは、組み込み技術の現場だから公言できることで、実際には難しいだろう。では、せめて、ということになると、メモリーイメージだと思う。
 配列や構造体がどのようにメモリーに配置されるか、ローカル変数とグローバル変数の配置される場所が異なるのはなぜか、引数がどのように渡されるのか、などを理解することは、アセンブラではなくC言語の仕組み理解できることにつながる。
 日経ソフトウエア 2011年 11月号の第1特集「図解でわかるC言語の仕組み」は、そのあたりのメモリーイメージについて解説してある記事で、わかりにくいところを何とか理解させようとしている。ただ、この記事が初学者にとってわかりやすいかどうかは、私にはわからない。自分が初学者の頃に何がわからなかったかを覚えていないからだ。ただ、この記事を理解できる程度の知識がC言語プログラマに必要なのは確かだ。
 個人的には、本誌の第3特集のjQuery入門が面白かった。プラグインを紹介しているのだが、こんな強力なプラグインがあれば、ソフトウエアの作り方が1から設計して作る、というより、何か使えるものを探して、それを使えるように仕様を書いて、作るという作法になることがよくわかる。

« 光より速いニュートリノ:これを機に科学技術へ興味を持つ中高生が増えて欲しい | トップページ | XDev2011の川口淳一郎氏の講演で印象に残ったこと »

スキル」カテゴリの記事

書籍・雑誌」カテゴリの記事

組み込み技術」カテゴリの記事

コメント

コメントを書く

(ウェブ上には掲載しません)

トラックバック

この記事のトラックバックURL:
http://app.cocolog-nifty.com/t/trackback/568535/52825858

この記事へのトラックバック一覧です: C言語で実行コードが動くときのメモリーイメージを解説した記事:日経ソフトウエア11月号:

« 光より速いニュートリノ:これを機に科学技術へ興味を持つ中高生が増えて欲しい | トップページ | XDev2011の川口淳一郎氏の講演で印象に残ったこと »

2017年5月
  1 2 3 4 5 6
7 8 9 10 11 12 13
14 15 16 17 18 19 20
21 22 23 24 25 26 27
28 29 30 31      

公告

  • Google Adsense
無料ブログはココログ