さてさて、そろそろ何か始めないとな

さいたま市のソフトウェアエンジニアのブログ

あらためてC言語を新人に教えてみた。C言語は本当に難しい

新人教育用にC言語を教える講義をグループのメンバーで1時間ずつ持ち回りで実施してもらっている。

あらためて人にモノを教える難しさ、1時間という時間配分の中で講義をまとめる難しさ等を旧人さんにも学んでもらおうという考えで始めました。

最近の新人さんは、全員学生時代にC言語を学んでくるので、今更教える必要もないだろうと思う反面、授業で教えるC言語は仕事には使えないということも想像しています。

初回は、「基本構文」というテーマで、始めてみると伝えたいことが多くてあっというまに1時間が過ぎていきました。

逆に、大事なことを伝え忘れていたりして、反省するところもあります。

あとでフォローしておかないといけません。

今日は、「関数」とはという内容で講義してもらう予定でしたが、講義担当者が急用のため、代理で講義してみることにしました。

やっぱり、1時間では、語り尽くせずでした。

 

C言語って、本当に難しいです。

 

C言語っていうのは、非常に良くできた言語なのですが、自由度が非常に高いのです。 

プログラミング言語C 第2版 ANSI規格準拠

プログラミング言語C 第2版 ANSI規格準拠

 

自由度が高いというのは、 いろいろな書き方ができてしまいます。

いろいろな書き方ができてしまったときに、曖昧な規格定義によって、処理が不確かになってしまうことが度々起きます。

そのために、たくさんのコーディングルールというものを定義しなければいけない状況になってしまうのです。

「こういう書き方はしてはいけません」

「こんな書き方もしてはいけません」

「あんなことも、こんなこともしてはいけません」

という風に沢山定義されています。

 

MISRA-C:2012というコーディングルールをまとめた設計基準では、143件の規則が定義されていて、そのうち10件が義務、101件が必須、32件が推奨事項となっています。

組込み開発者におくるMISRA‐C―組込みプログラミングの高信頼化ガイド

組込み開発者におくるMISRA‐C―組込みプログラミングの高信頼化ガイド

 

 こういうルールを守らないでC言語のコードを記述していくと、どこかで謎の不具合に出会えます。

困ったものです。

これだけ曖昧な言語を使わなければいけない状況が困ったものです。

それでも、数多くのプログラム言語の中で、C言語が一番曖昧さが少ないのです。

 

だから、不具合は嫌いになっても、C言語は嫌いにならないでください。

 

プログラムを勉強中の皆さん、ぜひ楽しくプログラミングを勉強しましょう。