Comments
Description
Transcript
特集1 - ITpro
特集1 3日で学ぶ printfでの文字出力から、メモリー確保と ポインタ、テキストエディタ作成まで一気に! 20 NIKKEI SOF T WARE 2010.11 Photo : Purestock/Getty Images 言語 1960 年代から70 年代にかけて作られた UNIX オペレーティングシステムとC 言 語は、コンピュータの世界に非常に大きな影響を与えました。Windows をはじめと する今日のコンピュータを理解して使いこなすには、C 言語を学ぶのが最も良い方 法です。難しいと言われることの多いC言語ですが、文字列をポインタで扱うことで、 核となる考え方をつかめます。3日間、真剣に取り組んでみてください。 (原田 英生) Introduction 始めはやっぱりC言語 p.22 第1日 短いサンプルで慣れる! Cプログラミング最初の一歩 p.23 第2日 必修!ポインタを使った 文字列の「正しい」格納法 p.35 第3日 WindowsでもLinuxでも使える テキストエディタを作ろう p.42 NIKKEI SOF T WARE 2010.11 21 コンピュータを使いこなすにはプログラミング技術を身 インスタンス、オブジェクト、コンストラクタ、デストラク に付けるのが一番です。仕事や日常生活で困っていること タ、継承、ポリモーフィズム、メンバー、メソッド、仮想 がある場合、コンピュータがあってプログラミングができれ メソッド、可視性、オーバーロード、オーバーライドなど、 ば、新たな解決策を得られるかもしれません。現代社会で 理解すべき用語と概念が多過ぎます。 は多くのプログラムが作られ使われており、新規開発や既存 実はオブジェクト指向が一般化する1990年代までは、オ プログラムの更新を行う技術者は今後ずっと必要でしょう。 ブジェクト指向について知らなくてもプログラミングができ プログラミングを学び、その技を会得すれば、あなたが社 ていたのです。最初は「非オブジェクト指向言語」のC言語 会に貢献できる可能性が広がります。さらにプログラミング で始めれば十分です。C言語でプログラミングをしてみて、 の知識は、開発を他者に依頼するときにも必ず役立ちます。 次第に大規模なソフトウエアを作るようになったとき、初め と述べると、 「じゃあ、どのプログラミング言語を学べば てオブジェクト指向プログラミングのメリットを理解できる いいの?」という質問を受けることになるでしょう。 「最初は ことでしょう。 やっぱりC言語」 、そう筆者は考えています。この特集は、 C言語には他にも良さがあります。仕様がコンパクトで、 C言語をこれから始めようという人のためのものです。 「他の 学習者が覚えることが少なくて済みます。 「プログラミング 言語は使ったことがあるけれどC言語はどうも…」という人 言語C」というわずか343ページの本*1を買ってくれば、そ も、 「C言語に何度も挑戦してきたんだけど…」という人も、 こにC言語のすべてが記されていると言っていいほどです。 ぜひ読んでみてください。C言語を習得するための道は1本 UNIX、Windows、FreeBSD、Linux、Mac OS Xといっ ではありません。いろいろな道を試してみることで、目的地 た今日広く使われているオペレーティングシステム(OS)は にたどり着けることがあるものです。 C言語を基盤として発展してきました。C言語はこうしたOS の機能を最大限に活用できる、トップエンドの言語です。 オブジェクト指向でないのがメリット 仕様がコンパクトで移植しやすいため、機器組み込みソフト 筆者が最初のプログラミング言語としてC言語を推薦する ウエアの開発にも広く使われています。 理由は、ひとことで言えば「オブジェクト指向でないから」 C言語の短所を一つ挙げるとすれば、 「文字列の扱いが面 です(図1) 。 倒なこと」でしょう。今回の特集では、 「第1日」でC言語の プログラミング言語には逐次翻訳を行う「インタープリタ 基本(if文、for文、while文など)を学んだらすぐに、 「第2 型」と、一括翻訳を行う「コンパイラ型」があります。コン 日」でポインタを使った文字列の正しい格納方法を学びます。 パイラ型の方がコードの問題点を発見しやすいので、入門 その方法をベースに「第3日」ではテキストエディタを作って にはコンパイラ型が適していると思います。今日のコンパイ みます。できれば3日をかけて一つひとつのコードを入力し ラ型の代表的な言語は図1のようなものです。C++(シープ て動かし、あなたの技術としてください。 ラスプラス) 、Visual Basic、C#(シーシャ ープ) 、Delphi、Javaはいずれもオブジェク ト指向言語で、C言語だけが違います。 オブジェクト指向プログラミングは、入門 者にとっては理解しにくいものです。クラス、 図1●入門は「非オブジェクト指向」でいこう 非オブジェクト指向言語 C言語 ◯ 仕様がコンパクト オブジェクト指向を意 ◯ 識せずに始められる *1「 プ ロ グ ラ ミ ン グ 言 語C 第2版 」 (Brian W. Kernighan、Dennis M. Ritchie著、 石 田 晴 久 訳、 共 立 出 版、 1989年6月、343ページ、税込2940円) のことです。 22 NIKKEI SOF T WARE 2010.11 ◯ UNIX、Windows、Linuxなど の基盤となっている言語である × 文字列の扱いが面倒 オブジェクト指向言語 C++ × C言語を先に学んだほうがよい Visual Basic C# Delphi × Windows以外で使いにくい Java × オペレーティングシステムの 実力を引き出しにくい