伊藤祥一「Springs of C - 楽しく身につくプログラミング」 ― 2012年04月10日 12時01分24秒
ASAHIネット(http://asahi-net.jp )のjouwa/salonからホットコーナー(http://www.asahi-net.or.jp/~ki4s-nkmr/ )に転載したものから。
---
献本ありがとうございます。
といって、受け取ったのは、2月下旬だから、1ヵ月以上経っているのか。
すみません。
http://www.amazon.co.jp/exec/obidos/ASIN/4627849516/showshotcorne-22/
Springs of C - 楽しく身につくプログラミング [単行本(ソフトカバー)]
伊藤 祥一 (著)
ぼく、C言語の入門書って読んだことないんです。
Cは、いまから35年ほど前、九州大学工学部情報工学科牛島研究室に入った
ころ、カーニハン&リッチーの「C Programming Language」を輪講したのか、
一人で読んだか忘れたけど、基本、それだけですね。
しかも、当時は動くCコンパイラがない(有田研究室にはあったが、使わせて
もらえるものじゃない)。Unixもない。完全に畳水練。
ポインタが、よく、わからなかった。
ぼくらは九大では、Pascalでプログラミング教育を受けた最初の世代ですが、
Pascalポインタに比べ、なんでこんな汚いものがあるんだと。
でも、アセンブラでプログラミングするようになると、Pascalのポインタっ
て、なんでアドレスを直接いじり回せないのか。それに比べ、Cのポインタっ
て、めっちゃ便利やん。\(^O^)/
そんな私だが、今回、本書を読んで、30年の月日を感じる。
だって、入門書なのに、OpenGLを使ってゲームまで作るんだよ。GUIだよ。
おれが普通に想像していた入門書は、せいぜい、コマンドラインで、テキスト
の出力くらいかと思っていた。
Cといえば、理解が難しいというので、多くの挫折者が出るとよくいわれる
のが、ポインタ。ポインタの話は、割と後ろの方、言語要素の個別解説の最後
にあって、割とあっさりと説明してある。
ポインタをちゃんとわかろうと思うと、やはり、コンピュータのアーキテク
チャなどハードウェア寄りの話がわかってないと難しいかもね。
ぼくも、アセンブラでプログラムしてみて、Cのポインタは便利、さすが高
水準アセンブラといわれるだけはあると思ったから。
ポインタ以降の章は、それまで解説してきたさまざまな言語機能を使って、
本格的にゲームを作り始める。
変数のスコープ(scope)の話では、エクステント(extent)の話もあったほう
が、今後のことを考えるとよかったかもしれない。
スコープは、変数がみえる範囲、空間的な範囲。エクステントは、変数の生
存期間、時間的な範囲。
Cだと、ざっくり、グローバル変数とローカル変数しかなく、グローバル変
数は、無限スコープで無限エクステント、ローカル変数は有限スコープで有限
エクステントという具合で、関係が単純だからいいんだけど、Lispはもちろん、
最近のスクリプト言語でもクロージャがあるような言語だと、話はもう少し複
雑になるから。たとえば、クロージャが参照する変数は、有限スコープで無限
エクステントなどなど。
それから、最近のセキュリティ重視の流れを受けてのことだろう。バッファ
ーオーバーラン(バッファーオーバーフロー)の話が、セキュリティホールの話
とともに出てくる。
入門者にこういうことを教えるのは、大変重要で、それ自体は、評価したい
が、だったら、コードでstrcpy, strcatを使うべきではない。全部、strncpy,
strncatで押し通すべき。
本書に限らず、いまどきのCの入門書は、strcpy, strcatは止めて、全部、
strncpy, strncatにしろとさえ思う。
Cのような低水準で、そしてセキュリティ意識の低い、スキルが低い連中が
使うには危険な言語を使わせるなら、最初からバッファの長さを意識させるこ
とは、とても重要と思う。
練習問題は、よく吟味してあると思った。ほどよいレベルに感じる。
森北出版にある紹介、目次、サポートページは、
http://www.morikita.co.jp/shoshi/ISBN978-4-627-84951-8.html
Springs of C 楽しく身につくプログラミング
長野高専准教授 博(理)伊藤祥一/著
をどうぞ。
練習問題の解答まであるのね。親切。
そうだ。本書は、書き方が、口調も内容も丁寧で親切だね。最後になって、
気づいた。すみません。
---
献本ありがとうございます。
といって、受け取ったのは、2月下旬だから、1ヵ月以上経っているのか。
すみません。
http://www.amazon.co.jp/exec/obidos/ASIN/4627849516/showshotcorne-22/
Springs of C - 楽しく身につくプログラミング [単行本(ソフトカバー)]
伊藤 祥一 (著)
ぼく、C言語の入門書って読んだことないんです。
Cは、いまから35年ほど前、九州大学工学部情報工学科牛島研究室に入った
ころ、カーニハン&リッチーの「C Programming Language」を輪講したのか、
一人で読んだか忘れたけど、基本、それだけですね。
しかも、当時は動くCコンパイラがない(有田研究室にはあったが、使わせて
もらえるものじゃない)。Unixもない。完全に畳水練。
ポインタが、よく、わからなかった。
ぼくらは九大では、Pascalでプログラミング教育を受けた最初の世代ですが、
Pascalポインタに比べ、なんでこんな汚いものがあるんだと。
でも、アセンブラでプログラミングするようになると、Pascalのポインタっ
て、なんでアドレスを直接いじり回せないのか。それに比べ、Cのポインタっ
て、めっちゃ便利やん。\(^O^)/
そんな私だが、今回、本書を読んで、30年の月日を感じる。
だって、入門書なのに、OpenGLを使ってゲームまで作るんだよ。GUIだよ。
おれが普通に想像していた入門書は、せいぜい、コマンドラインで、テキスト
の出力くらいかと思っていた。
Cといえば、理解が難しいというので、多くの挫折者が出るとよくいわれる
のが、ポインタ。ポインタの話は、割と後ろの方、言語要素の個別解説の最後
にあって、割とあっさりと説明してある。
ポインタをちゃんとわかろうと思うと、やはり、コンピュータのアーキテク
チャなどハードウェア寄りの話がわかってないと難しいかもね。
ぼくも、アセンブラでプログラムしてみて、Cのポインタは便利、さすが高
水準アセンブラといわれるだけはあると思ったから。
ポインタ以降の章は、それまで解説してきたさまざまな言語機能を使って、
本格的にゲームを作り始める。
変数のスコープ(scope)の話では、エクステント(extent)の話もあったほう
が、今後のことを考えるとよかったかもしれない。
スコープは、変数がみえる範囲、空間的な範囲。エクステントは、変数の生
存期間、時間的な範囲。
Cだと、ざっくり、グローバル変数とローカル変数しかなく、グローバル変
数は、無限スコープで無限エクステント、ローカル変数は有限スコープで有限
エクステントという具合で、関係が単純だからいいんだけど、Lispはもちろん、
最近のスクリプト言語でもクロージャがあるような言語だと、話はもう少し複
雑になるから。たとえば、クロージャが参照する変数は、有限スコープで無限
エクステントなどなど。
それから、最近のセキュリティ重視の流れを受けてのことだろう。バッファ
ーオーバーラン(バッファーオーバーフロー)の話が、セキュリティホールの話
とともに出てくる。
入門者にこういうことを教えるのは、大変重要で、それ自体は、評価したい
が、だったら、コードでstrcpy, strcatを使うべきではない。全部、strncpy,
strncatで押し通すべき。
本書に限らず、いまどきのCの入門書は、strcpy, strcatは止めて、全部、
strncpy, strncatにしろとさえ思う。
Cのような低水準で、そしてセキュリティ意識の低い、スキルが低い連中が
使うには危険な言語を使わせるなら、最初からバッファの長さを意識させるこ
とは、とても重要と思う。
練習問題は、よく吟味してあると思った。ほどよいレベルに感じる。
森北出版にある紹介、目次、サポートページは、
http://www.morikita.co.jp/shoshi/ISBN978-4-627-84951-8.html
Springs of C 楽しく身につくプログラミング
長野高専准教授 博(理)伊藤祥一/著
をどうぞ。
練習問題の解答まであるのね。親切。
そうだ。本書は、書き方が、口調も内容も丁寧で親切だね。最後になって、
気づいた。すみません。
コメント
トラックバック
_ ホットコーナーの舞台裏 - 2012年07月26日 07時40分04秒
ASAHIネット(http://asahi-net.jp )のjouwa/salonからホットコーナー(http://www.asahi-net.or.jp/~ki4s-nkmr/ )に転載したものから。
---
http://iiyu.asablo.jp/blog/2012/07/25/6521715
まつもとゆきひろ氏が語るRubyの新
---
http://iiyu.asablo.jp/blog/2012/07/25/6521715
まつもとゆきひろ氏が語るRubyの新
_ ホットコーナーの舞台裏 - 2013年03月08日 10時13分50秒
ASAHIネット(http://asahi-net.jp )のjouwa/salonからホットコーナー(http://www.asahi-net.or.jp/~ki4s-nkmr/ )に転載したものから。
---
忙しくて油断していたら、オーム社め、こんなものを出してきた。
---
忙しくて油断していたら、オーム社め、こんなものを出してきた。
コメントをどうぞ
※メールアドレスとURLの入力は必須ではありません。 入力されたメールアドレスは記事に反映されず、ブログの管理者のみが参照できます。
※なお、送られたコメントはブログの管理者が確認するまで公開されません。
※投稿には管理者が設定した質問に答える必要があります。