• 締切済み

規格書はどんなものですか?

大学に入ってからプログラムを勉強し始めた院生です。 最近自分のプログラムの知識に沢山穴が開いている事を実感します。 規格の厳密な部分が理解できていないと思います。 ですので、規格書のようなものが欲しいのですが、何を読んだらいいでしょうか。 FAQとかK&Rとかよく聞きますが、これらは実際書籍として購入して価値あるものでしょうか? 皆さんはどうやって知識の穴を埋めていきましたか? また、これは手元に持っておけというお勧めの書籍などもありましたらあわせてよろしくお願いします。

みんなの回答

  • MrBan
  • ベストアンサー率53% (331/615)
回答No.7

ANo.1にも書いていますが、参考URLに書いたサイトから JISの仕様書がオンラインで閲覧できますので、 本屋に行かなくても、お金をかけなくても、 まず「どんなものか」を見てみることは可能です。 # 「お礼」を見ていると、上記は参照されていないように見えますので念のため。

  • jacta
  • ベストアンサー率26% (845/3158)
回答No.6

> C99に関する書籍が少ないと言うことで、皆様はC99の知識は洋書で習得されているのでしょうか。 とりあえずは http://seclan.dll.jp/c99d/ に目を通せば大体把握できます(若干間違いもありますが)。 手軽に使えるリファレンスとしては、 http://www.amazon.co.jp/%E6%A8%99%E6%BA%96C%E8%A8%80%E8%AA%9E%E8%BE%9E%E5%85%B8-%E3%83%AC%E3%83%83%E3%82%AF%E3%82%B9-%E3%82%A4%E3%82%A7%E3%82%B7%E3%83%A5%E3%82%B1/dp/4894713985 が結構便利です。 ただし、 http://www.gihyo.co.jp/books/syoseki.php/4-7741-0432-9 ほどの厳密さはないので、そのレベルを期待しているのであれば不向きです。 > それともC99に対応した処理系が少ないので 必ずしも少ないわけではないのですよ。確かに、完全準拠という意味ではほとんどないような気もしますが、C99対応の処理系はそれなりに存在します。 Windowsではあまり見かけないだけです。

  • jacta
  • ベストアンサー率26% (845/3158)
回答No.5

> 規格書難しいですか、本屋でちょっと見ることができたらいいんですが、売ってないもので・・。 そのものズバリを見かけることは少ない(皆無ではない)のですが、JISハンドブックならあるかもしれません。 http://www.amazon.co.jp/JIS%E3%83%8F%E3%83%B3%E3%83%89%E3%83%96%E3%83%83%E3%82%AF-%E6%83%85%E5%A0%B1%E5%87%A6%E7%90%86%E2%80%95%E3%83%97%E3%83%AD%E3%82%B0%E3%83%A9%E3%83%A0%E8%A8%80%E8%AA%9E%E7%B7%A8-%E6%97%A5%E6%9C%AC%E8%A6%8F%E6%A0%BC%E5%8D%94%E4%BC%9A/dp/454212889X なお、私が知る限り、JIS X3010が掲載されているのは1997年版が最新で、当然C99(JIS X3010:2003)には対応していません。ただ、現在使われている処理系の多くがまだC99に対応していない状況を考えると、むしろこちらの方が有益な可能性もあります。

Directxq
質問者

お礼

引き続きご回答ありがとうございます。 ご紹介ありがとうございます。参考にさせていただきます。 C99に関する書籍が少ないと言うことで、皆様はC99の知識は洋書で習得されているのでしょうか。 それともC99に対応した処理系が少ないのでとりあえずC99の知識は下地が出来てから、普及してからでいいということで後回しにされている方が多いのでしょうか。

  • MrBan
  • ベストアンサー率53% (331/615)
回答No.4

> また、本だと値段が高くなってしまうなと思っていたのですが、PDF形式の販売があるんですね。 ANSI経由だと$18位だったかと。 > 規格書難しいですか、本屋でちょっと見ることができたらいいんですが、売ってないもので・・。 これは都内でも一緒だと思います。一般書店にはまずないでしょう。 > 規格書を無理に買わなくても詳しい参考書を買ったほうがいいのでしょうかね。 規格書って、仕様がえんえんと書いてあるだけなので(解説とかは付いてない)、 それだけ読んで理解するにはかなりの下地が必要です。 # 六法全書(ただの条文の羅列)をよんだら裁判ができるようになるか、みたいな。 「規格書でしか分からない何か」も見つかるとは思いますが、 「規格書だけ読んでも全部分かるか」というとそんなこともないです。 参考書とあわせて読む方がよいかもしれません。 あと、自分で書いてみる/複数の処理系を使う、というのは確かに有用なので私もお勧めです。

Directxq
質問者

お礼

>これは都内でも一緒だと思います。一般書店にはまずないでしょう。 そうだったのですか、梅田の紀伊国屋本店などに行けばおいてあるかと思っていたのですが、それだと買ってみないと中身がわからないのですね。 >規格書って、仕様がえんえんと書いてあるだけなので(解説とかは付いてない)、それだけ読んで理解するにはかなりの下地が必要です。 規格書をどんなものか見たことも無いのでご意見参考になります。 ※3様と同じご意見をお持ちと言うことで、こちらのご意見も重宝させていただきます。 ありがとうございました。

  • jacta
  • ベストアンサー率26% (845/3158)
回答No.3

JISであろうがISOであろうが、規格書を読んだだけでは知識の穴はかなり残ったままになります。 やはり、実際にプログラミングを行いながら、穴を埋めていく必要があります。そのためには、標準ライブラリを自分で実装するのが一番です。実装するとなれば、そのレベルで仕様を把握しなければなりませんので、単に読むだけの場合とは理解の度合いが随分違うはずです。 もう一つは、複数の処理系を使うことです。異なるコンパイラというだけではなく、OSが異なるもの、組み込み用のものなども含めてです。特に、組み込み用の処理系(中でもDSP用)はバリエーションが豊富で特殊なものも多く、それらを使ってみるだけで新しい気付きがいろいろあるはずです。 ところで、JISの規格書に関しては、私は他の回答者がいわれるほど読みにくいとは感じていません。PDFの「しおり」がないとか、そういった不便さはありますが。

Directxq
質問者

お礼

ご回答ありがとうございます。 規格書は読んだことが無いので、ご意見参考になります。 また標準ライブラリを自分で実装するという手段確かに納得します。 私はいつもwindowsなので、先日Linuxで久しぶりにプログラムを動かしてこの前初めてRAND_MAXが違うことを知りました。 処理系を色々かえる必要もあるようです。 ありがとうございました。

  • liar_adan
  • ベストアンサー率48% (730/1515)
回答No.2

仕事上の必要があって、C言語の本は40冊ほど買いました。 その中から紹介します。 たしかに日本語の企画書は読みにくく、 それを読んだだけではあまり理解の役には立たないと思います。 必ず持つべきだと思われるのは、 平林雅英著『新 ANSI C言語辞典』です。 http://www.amazon.co.jp/%E6%96%B0ANSI-C%E8%A8%80%E8%AA%9E%E8%BE%9E%E5%85%B8-%E5%B9%B3%E6%9E%97-%E9%9B%85%E8%8B%B1/dp/4774104329/ 規格的なことはこれでレファレンスできます。 C99には対応していませんが。 同じ著者で、C++も含めた同様の本がありますが、 こちらは、現在一般的なC++第3版に対応していないので、 利用価値はあまりないと思います。 C++の辞典であれば別の著者のものを探した方がいいでしょう。 C++についてはよくわかりません。すみません。 「FAQ」というのは以下の本だと思いますが、 これは持っておくべきです。そして一通り目を通すといいと思います。 『CプログラミングFAQ―Cプログラミングのよく尋ねられる質問』 http://www.amazon.co.jp/C%E3%83%97%E3%83%AD%E3%82%B0%E3%83%A9%E3%83%9F%E3%83%B3%E3%82%B0FAQ%E2%80%95C%E3%83%97%E3%83%AD%E3%82%B0%E3%83%A9%E3%83%9F%E3%83%B3%E3%82%B0%E3%81%AE%E3%82%88%E3%81%8F%E5%B0%8B%E3%81%AD%E3%82%89%E3%82%8C%E3%82%8B%E8%B3%AA%E5%95%8F-%E3%82%B9%E3%83%86%E3%82%A3%E3%83%BC%E3%83%96-%E3%82%B5%E3%83%9F%E3%83%83%E3%83%88/dp/4775302507/ その他、有用だと思われるのは、以下の本です。 『Cプログラミング専門課程 』 http://www.amazon.co.jp/C%E3%83%97%E3%83%AD%E3%82%B0%E3%83%A9%E3%83%9F%E3%83%B3%E3%82%B0%E5%B0%82%E9%96%80%E8%AA%B2%E7%A8%8B-%E8%97%A4%E5%8E%9F-%E5%8D%9A%E6%96%87/dp/4774100900/ 『エキスパートCプログラミング―知られざるCの深層 』 http://www.amazon.co.jp/%E3%82%A8%E3%82%AD%E3%82%B9%E3%83%91%E3%83%BC%E3%83%88C%E3%83%97%E3%83%AD%E3%82%B0%E3%83%A9%E3%83%9F%E3%83%B3%E3%82%B0%E2%80%95%E7%9F%A5%E3%82%89%E3%82%8C%E3%81%96%E3%82%8BC%E3%81%AE%E6%B7%B1%E5%B1%A4-%E3%83%94%E3%83%BC%E3%82%BF%E3%83%BC-%E3%83%B4%E3%82%A1%E3%83%B3%E3%83%BB%E3%83%87%E3%83%BB%E3%83%AA%E3%83%B3%E3%83%87%E3%83%B3/dp/4756116396/

Directxq
質問者

お礼

ご回答ありがとうございます。 よ、、40冊ですか^^; ベテランならではの余裕のあるご意見で参考になります。 本の評判いいみたいですね、前者2冊についてはすぐに購入したいと思います。 本屋で立ち読みが出来れば一番よいのですが、何しろ田舎ゆえ専門書が全く無く・・。 後者2冊も参考にさせていただきます。今度都会に出て本を探してきます。 貴重なご意見ありがとうございました。

  • MrBan
  • ベストアンサー率53% (331/615)
回答No.1

規格書は、C言語ならISO/IEC9899ですが、今の規格書は1999年に更新されてます。(通称C99) VCやBCCなどは一つ前の通称C90(1990)のコンパイラで、多分今後もC99には対応されないと思いますので、 個人的にはちょっと微妙だと思います。 勿論英語です。日本語版はJIS X3010として翻訳されていますが無理に日本語化されていて読みにくい面があります。 C++ならISO/IEC14882が規格書です。日本語版はJIS X3014。 こちらも、無理やりな日本語は個人的には分かりにくいと思ってます。 また、実際JIS版では、ISO/IEC版と微妙に規定内容が違ったり、 ISO/IECの複数の版の記述が混ざっていたりすることもあります。 原典を買うなら、ANSIからPDFで買うとISOより安いので比較的お徳かと。 JIS版は、非常に読みにくくて、サイズも巨大で、保存も、検索もできないPDFならオンラインで閲覧できます。 # [日本工業標準調査会]のJIS検索 購入前に、参考にされてみるのもいいでしょう。 いきなり言語の規格書を読んでも理解するのはかなり大変だと思います。 頑張ってください。 # C++の書籍なら、比較的厳密なのは設計者自身が著者の「プログラミング言語C++」でしょうか。 # C言語については(経緯から辿るのでもなければ)いまさらK&Rはないと思います。

参考URL:
http://www.jisc.go.jp/
Directxq
質問者

お礼

ご回答ありがとうございます。 なかなか洋書は読み辛いですが、勉強もかねて読んでみようと思います。 また、本だと値段が高くなってしまうなと思っていたのですが、PDF形式の販売があるんですね。 規格書難しいですか、本屋でちょっと見ることができたらいいんですが、売ってないもので・・。 規格書を無理に買わなくても詳しい参考書を買ったほうがいいのでしょうかね。 ありがとうございました。