CIST情報技術概論のC言語のサンプルがJISに従わない
例:
JISにおける規定
5.1.2.2.1 プログラム開始処理
プログラム開始処理において呼び出される関数の名前は,mainとする。処理系は,この関数に対して関数原型を宣言しない。この関数は,次の4種類の方法のいずれかで定義しなければならない。
− 返却値の型intをもち仮引数をもたない関数 int main(void) { /* ... */ }
− 二つの仮引数をもつ関数(仮引数は,これらが宣言された関数に対して局所的であるため,どのような名前を使用してもよいが,ここではargc及びargvとする。) int main(int argc, char * argv[]) { /* ... */ }
− 上に掲げた二つの方法のいずれかと等価な方法(9)
− 上に掲げた三つの方法のいずれでもない処理系定義の方法
つまり、int main(void)またはint main(int argc, char* argv[])
あるいはこれと等価なものか、処理系で決められたもの
処理系依存の書き方を教えたら、それを学生は無批判に受け取るのではないか? 一般的に正常なら0、異常ならそれ以外(例えば1)ではないか?
JISにおいて、
main関数を終了する}に到達した場合,main関数は,値0を返す。main関数の返却値の型がintと適合しない場合,ホスト環境に戻される終了状態は,未規定とする。
未定義動作を引き起こす書き方を教えたら、それを学生は無批判に受け取るのではないか? https://scrapbox.io/files/65426606576908001c0ec843.png
配列の問題からツッコミどころが増えてきたt6o_o6t.icon
先生と話したt6o_o6t.icon
現状
過去に作成されたテキストを使用している。
本質的な問題点
学生は、1年で覚えたおまじないを、2年で覚え直さなければならない
→ はじめから、一般的な書き方をおまじないとして学習するのが良いのではないか。
今後
改訂する場合、統一されたルールに従って内容を改訂するのが望ましい
改訂の必要性から議論を開始する
改定が必要であれば、どの規格に沿うべきか?について議論する
JIS?ISO?
上述の議論が必要 & 作業量があるため、今年中の改訂は難しい。