プログラミング言語 - みる会図書館


検索対象: 月刊 C MAGAZINE 1992年2月号
117件見つかりました。

1. 月刊 C MAGAZINE 1992年2月号

SOFT 日 K 言語の本 ・ MS ー C 活用の王道を示す ・ C 言語実用マスターシリース MS-C Ve 「 .5.1 プロクラミング 齪新 C 言語入門ビギナー編 基巣作からコンパイラの内部処理まて詳細に解説。 複雑な C 言語の規則を整理、数多くのサンプ 最産化のための手法、 ANSI 準拠のプログラミング作 ルプログラムを駆使して、 " 誰て、もわかる C " を実現し 石田秋也ほか著定価 3 , 300 円 法なども紹介。 林晴比古著定価 1 , 900 円 に ・ Quick C 活用書の決定版 ・ポインタ理解の秘伝を伝授 Quick C Ve 「 .2.0 プログラミンク Quick C 秘伝 C 言語問答ポインタ編 22 プログラミング 本書は、主要な機能からライプラリ関数、エラーメ C 言語を習得する上て、最大の難関と言われるポイン ポインタ・ ッセージまて、を網羅した全 C プログラマ必携の書。 タについて、先生と生徒との間答形式て初心者にもわ かりやすく解礼 柴田望洋著定価 2 , 600 円 本田正隆・三浦義武共著定価 2 , 900 円 物・第の一第 ・ C STEP UP シリース① ・ C 言語の秘められた能力を解き放つ C プリプロセッサ・パワー 上級・ C 言語の応用 50 例 0 画面制御埓矗、ディスクドライフ。制御騙ほか大きく 4 C 言語の中て、も、とりわけ秘められたパワーをもっ プリプロセッサ機能の潜在能力を使いこなすにはどう つに分け、それぞれくふうを凝らしてプログラムを作成。 上原・中山・石田・井上共著定価 2 , 480 円 すればよいかを解礼林晴比古著定価 2 ′ 270 円 C STEP UP シリース② ・最新 ANSI C 標準規格に完全対応 + + プログ ? ~ 0 C 十十プログラミンク 詳説 C 言語 H & S リファレンス 今話題の言語、 C 十 + の本格的入門書。本書の各項目 C 言語プログラマから高い評価を受けている「 C : 第 をカード別にまとめ、サンフ。ルリストや図版を豊富に A Reference Manual 」第 2 版の完訳。 掲載。 門内淳・赤堀一郎共著定価 2 , 680 円 S ・ハービソン & G ・スティール共著定価 4 , 500 円 ・ C STEP IJP シリース③ bo C ・ Turbo C の奥義を示す yacc による C コンバイラブログラミング 0 TurbO C Ve 「 .2.0 プログラミンク 「 C マガジン」連載記事を大幅に加筆。字句角斤・構 基本操作はもちろんのこと、内部処理の角財斤をはじ 文解析の基礎からコード生成・商化まて、、 C コンパイ め、 BGI の活用方法など上級操作も詳細に解 ラの内部を徹底詳解。近藤嘉雪著定価 3 , 300 円 井上哲理・酒井恵光・佐藤隆共著定価 2 , 900 円 ・ BAS ℃からのアプローチ ・初級 C 言語講座 C 言語の活用理解 PIay the C ( 上・下 ) 具体例を数多く取り上げ、 BASIC の知識を有効に C を身につけたい、これまて、の解説書て、はもの足り 利用しつつ、 BASIC から C へ順次移行て、きるように ない、そんな要求に応え C の世界を系統的にとらえ直 保坂光・若林淳共著定価 2 , 060 円 解説。 して解説。 林晴比古著定価各 1 , 550 円 ・最も簡潔で、最も完全な AN 標準 C の決定版 ・基本からのアプローチ STANDARD C C 言語の基礎知識 ANSI 標準 C の特徴をわかりやすく解説した 短いけれど実用的なサンプルプログラムを紹介しな 「 ANSI C の教科書」ともいえる一刪。 がら、 C 言語の基礎知識を解説。 P. J. プラウガー・ J. プロティ共著定価 3 , 200 円 門内淳・乗呆智・上原哲郎共著定価 2 , 580 円 ・実践からのアプローチ ・自然流プログラムのノウハウを公開 C によるプログラミング・スタイルブック C 言語の応用 50 例 C 言語を使い 98k て、どのようなプログラムがイ 1 ミれる 「美しいプログラムはよいプログラムて、ある」という のかを、豊富なサンフル例によって紹介。 持論とその成果を実証する、待望の一冊。全 C プログ 上原・石田・乗松・中山・高木共著定価 2 , 370 円 林晴比古著定価 2 , 300 円 ラマ ! 之、言売 , 五ロ 基礎 C 言語の応用 50 例

2. 月刊 C MAGAZINE 1992年2月号

0 0 ロクラニン言語 A こ C 言語が主要なプログラミング言語の地位を獲得したことは異論のな いところではあるが , C 言語がオールマイティであるわけではない。 様々なプログラミングフェーズにおいては C 言語よりも優れたプログ ラミング言語が存在するのも事実である。プログラミングという行為 を広義に捉えれば , C 以外の言語を知る意義は高い。本特集ではフリ ーソフトウェアとして入手できるプログラミング言語に焦点を当て , 幅広いプログラミング活動の一助にならんことを目的とした。 1 P A T きだあきら ープログラミング言語概論 がなければそれはコンヒ。ュータて、はないと らず , このためプログラムを表現するため すらいえる。特定の機能を果たすための機 の手段が必要となった。 械て、はなく , プログラム次第て自由に動作 最初のコンピュータといわれている ENIA や機能を変更て、きる「汎用処理機械」という C の場合には , プログラムは物理的な配線の コンビュータの最大の特徴は , それがプ ところが際だった点て、ある。必然的にコン 形て、表現された。つまり電気端子をどのよ ログラマプルだという点にある。 この特徴 うに結線するかて機能を定義したわけてあ ピュータにはプログラムを与えなければな そもそもプログラミング言語とはどのようなものなのか , あるいは , なせ多数のプログラミング言語か存在するの 。その原点から見つめ直し現代のプログラミン グ言語の背景を探る。 語 ラか グ何 ロは プと 28 C MAGAZINE 1 2 2

3. 月刊 C MAGAZINE 1992年2月号

FEB. 199 VOI. 4 No. 2 CONTENTS は 992 年 2 、月い ( 毎月一回 4- 日発行 ) 第 4 巻第 2 号通巻 29 号 - 円 90 年 2 明 2 日第 3 種郵便物認可 : Motif アーキテクトグループ ( Ⅱ ) Programnung on Purpose rwatching the watchersJ p. J. Plauger ・ 自分の書き方スタイルを持とう You G0tta Have Style フリーソフトウェア最新レポートく第 26 回〉「芋づる式」フリーソフト探索法野口雄平 COMPUTER LANGUAGE 提携記事 巻頭インタビュー dj g cc 詳解講座 C プログラマのための 特別レポート 痛快工ッセイ C 言語フォーラム 実力養成講座 応用 C 言語 X68k 活用講座 最新開発環境レホート 新連載 BOOK REVIEW 。 = プログラミング言語 AtoZ PartI ・プログラミング言語概論きだあきら Part1 ・主要処理系詳説 セクション 1 C コンノヾイラ「 LSI C ー 86 試食版」乗松保智 セクション 2 ピジネス AP 記述用言語℃ a 「「 ot BASIC 」榎本宏 セクション 3 Pasca12YJX イラ℃ ABEZON 」松田晋 セクション 4 凵 SP コンノヾイラ「 SF 」 suto セクション 5 P 「 olog インタブリタ「 S ー P 「 olog 」佐藤隆 Pa Ⅲ・ 24 処理系オーノヾピューきだあきら プログラミンクの工ッセンスく第 1 回〉。繰り返し。結城浩 刀レゴリズムとテータ構造入門く第 16 回〉基数ソート近藤嘉雪・ H 0 GCC W0 く第 4 回〉。。のライプラリ関数 ( 3 ) 安田英之 新 MS ー DOS プログラミンク入門く第 17 回〉 ADDDRV/DELDRV コマンドの作成 ( 1 ) 中島信行 皿Ⅸ System V ReIease 4.0 V 部 . 3.0 く後編〉℃。。 i 。。 3 とにンヾイラ詳説天元広海・・・ = 田典玄のランタムアクセスく第 8 回〉パソコンの行方・・ 恥すかしながらドジりましたく第 27 回〉名前空間のトボロジーを疑う岩谷宏 ANSI C ー more く第 11 回〉構造体きだあきら・・ 明解 AN C 言語入門講座く第 11 回〉入出力処理とライプラリ ( その 1 ) 柴田望洋・ スタートアップ C 十十く第 10 回〉クラスを用いたプログラミング木戸研ー・龍崎昌平・白倉伸一郎・山本浩文・・ の道具百く第 20 回〉 UN Ⅸプログラムの MS ー DOS への移植豊国永健・ GCC で学ぶ 68 ケームプロクラミングく第 8 回〉ゲームの仕様と設計吉野智興 ワンポイントプログラミング講座く第 19 回〉マウスを使。てみよう上田哲ニ MS LibrariestGraphic Window Libra Ⅳ』円羽信夫・・ C マガ電脳クラブく第 11 回〉最小の素数 ? 吉柄貴樹 円羽信夫の迷走プログラミングくその 2 〉出無精・ C MAGA News Square ・ lnformation from Compiler Makers Readers' Room 70 ・・・ 100 102 ・・・ 164 ・・・ 156 ・・・ 154 ・・・ 152 ・・ 150 ・・・ 148 ・・・ 145 ・・・ 139 ・・・ 131 ・・・ 122 ・・・ 114 ・・・ 106 ティスク内容のお知らせ 167 C EDITORS' ROOM ・本記事中のプログラム名 , システム名 , CPU 名は一般に各メーカーの登録商標です。本文中では TM , ⑧マークは明記していません。 ・本誌および付録ディスクに掲載されたすべてのプログラムは著作権法上 , 個人で使用する目的以外で無断で複製することは禁じられています。 表紙・イラストレーション・秋山育 / テサイン・持田哲 MAGAZINE EditoriaI: Phone ( 03 ) 54 -1318 Sales. Phone ( 03 ) 54 -1360. Advertising. TOkYO. Phone ( 03 ) 5488-1365 Osaka. Phone ( ) 2 -1471 EditoriaI and Busi ness Offices. NS Takanawa Bldg. , 2-19-13. Takanawa, Mi nato-ku, T0kYO 108. Japan Publisher: Masayoshi Son PubIishi 凹 Director: GO 「 0 Hashlmoto Editor-in-Chief: Shimchl HOShino Manager Of Sales and Advertising. YOS 加 0 Goshima ・・・ 168 Copyright ⑥ 1992 SOFTBANK Corporation. TOkYO. 則 rights reserved. NO materialin this publication may in whOle 0 「 in part, in any 行 om WIthout *. Printed in Japan.

4. 月刊 C MAGAZINE 1992年2月号

五ロ - 三ロ ン グ ロ プ パラダイムと呼ばれたりするが -- ーーの ング言語が最適て、あると述べるためには , 有効性を試すためには , そのパラダイムに A 以外の言語はすべて A よりもその用途に向 しかし , この形態はすぐに革命的なフォ いていないことを知っていなければならず , 沿った言語を作らねばならない。あるいは , ン・ノイマン (von Neumann) のアイデアに つまりすべての言語を知っていなければな 単に特定の用途に限定して考えると , 既存 よって淘汰されることになる。プログラム の言語て、はすべてが非常に回りくどい表現 らないということになるからだ だから , そのものをデータ同様にメモリに格納し , になったり , 効率よく表現するための手段 現実には「用途に向いているて、あろう言語」 このメモリ中の命令を順次取り出して ( ハー を学ぶことがて、きればよい が備えられていなかったりする。 ドウェアによって ) 解釈実行するという形 ところが , 世の中にはこちらの予想を上 もちろん , これまて、にも「すべての用途に 式 , すなわちストアドプログラム (Stored p 回る質問も存在するものて、 , プログラミン 向く言語」なるものを作ろうという企てはあ rogram ) 方式が誕生したためて、ある。この形 グの用途すらはっきりしない場合にはどう ったし , PL/I など , ある程度それを実現し 態は発明者の名前を冠して「フォン・ノイマ すればいいのてしようかという質問を受け ンアーキテクチャ」と呼ばれている。もっと た言語もある。しかし , 仮にそのような言 語の作成に成功したとしても , それは「その たことがある。これは「私はどんなプログラ も最近て、はこのアーキテクチャはコンヒ。ュ ムを作ればいいて、しようか ? 」というのと同 当時のすべての用途」て、しかない。コンヒ。ュ ータの速度向上の障害になるとして批判の じて、 , さすがに返答に窮した。無難な線と ータの用途は次々に拡大している。パラダ 対象てあり , 非フォン・ノイマンアーキテ イムにしてもしかりて、ある。このため , 新 して , そのような人には正しいプログラミ クチャの可能性が模索されているのも事実 しい言語は今後も生まれ続けるて、あろう。 ング作法が身に着く言語をお奬めしたい て、はある。 たとえば , Pascal や Modula-2 などに代表さ 取り敢えず言語の数が増えることはあれ , 初期のコンピュータブログラマは , 10 進 れる言語て、 , 柔軟なユーザ定義のデータ型 減ることはないという事実を受け入れるこ なり 2 進なりの機械命令を直接書き下して と , 強い型づけ , そして洗練された制御構 とにすると , ここて、切実となるのは「いった プログラミングしていた ( 当時のマシンは 造を持った言語てある。 いどのプログラミング言語を学べばいいの 10 進べースのものが多い ) 。そして , しばら Ada も悪くないが少し複雑すぎて入門には か ? 」という問題て、あろう。実はこれは誰し く後に「プログラミング言語」の概念が発生 どうかと思う。パソコン上て、手軽に使える も明快な回答を出せない難問て、ある。ひと した。おそらくそれはプログラミングとい 処理系がないのも問題て、ある。 PascaI なり つ注意したいのは , この手の議論をすると う困難て、複雑な作業をいかに容易なものと Modula-2 なりを手始めに学んておけばプロ 必ず次のような意見が出てくることてある。 するかという努力の産物て、あり , 現在もな グラミングに対する基礎が固まるのて , 後 すなわち , 「どのような言語を使うとして おこの努力は連綿と続けられている。 て、どのような言語を使うにしても比較的容 も , 最終的には CPU が解釈するのは機械語 この世には有名無名を合わせると , すて、 なのだから , 機械語あるいはアセンプラだ 易に移行て、きるものと考える。 に 1 , 000 を越えるプログラミング言語が存在 けを学べばそれて、よいのだ」という意見て、あ いずれにせよ , ひとつの言語に固執する する。しかも新しい言語は今日もなお続々 ことだけは避けたい。複数の言語を学ぶこ こまて、極端て、なくても , 大同小異の と生み出されている。コンピュータの世界 る。 とは重要て、あると考える。筆者の経験から 意見を述べる人がいるのは事実だ。 に足を踏み入れたプログラマ志望者は , して , いろいろな表現方法があることを知 だが , これは極論もいいところて、 , しか の事実に恐れをなすとともに なぜそれほ ることは絶対に損にはならない も本末転倒て、あるとしか思えない。プログ ど多くの言語が必要なのかといぶかるかも ラミング言語とは , 本来機械語によるプロ しれない プログラミング言語 グラミングに付随する煩雑な作業 , 非本質 おのおののプログラミング言語は , それ の歴史 的な部分て、労力を浪費することを避けるた ぞれ特有の背景を背負って誕生している。 めに生み出されたものてあることを忘れて 新しい言語が作り出される理由は簡単て、 , プログラミング衄はコンピュータハ 要約すれば既存のどの言語にも満足て、きな はいけない 「 4 ロロ ードウェアの進歩と , プログラミング技術 結論からいえば , 学ぶべきプログラミン いからて、ある。既存の言語て、は機能が多す あるいはソフトウェア工学の進歩の両方の ぎるからという理由から新しい言語が生み グ言語は , 自分の用途にもっとも適した一 こては大ま 出されることも珍しくない 語て、あるということになる。非常に当たり 影響を受けて発達してきた。 かにプログラミング言語の歴史を追いつつ , 前のようていうまて、もないことに聞こえる しかし多くは既存の言語には含まれない どのような背景から個々の言語が生まれて 新しい機能の登場が新しい言語を生み出す かもしれないが , 実際にはなかなか奧が深 きたのかを考察してみよう。 ことになる。新しいプログラミングの概念 い。ある用途に対して , A というプログラミ 特集プログラミング言語 A to Z 29

5. 月刊 C MAGAZINE 1992年2月号

五ロ グ ン グ ロ プ バッチ指向て、定義されているということて、 構造そのものてもあり , LISP はプログラム ためのべース言語としても広く使われてい 自身とプログラムが扱うデータ構造が一致 る。たとえば , CLOS と呼ばれる拡張は Co ある。たとえば , PascaI の標準的なプログ mmonLisp にオプジェクト指向プログラミ している数少ない高級言語て、ある。このこ ラミング作法て、は , まず標準入力ファイル ング機能を付加したものて、ある。ほかにも とはプログラムを合成したり自己増殖した (input) が EOF(End Of File) て、はない LISP の一方言て、ある Scheme は , その簡潔な りするアプリケーションを構築するのが極 を確認した後に read を行うことになってい セマンティクスと , 継続 (continuation) と呼 めて容易て、あることを示しており , そのこ る。、これはあらかじめ入力データがプログ ばれる強力な制御機能を備えることから多 ラムの実行開始時点て、すべて用意されてい ともあって人工知能用言語としても広く用 くの言語を実験的にインプリメントするた るバッチ処理を想定しているからこそ可能 いられている。 めに盛んに利用されている。 LISP は , 大まかな分類をすれば , 関数型 になる流儀て、ある。入出力を会話的に行う の範疇に含まれる言語て、 , あるいは値 (VA このような事情から , 本来 C と LISP は比 ためには , 正規の規定に逆らって特別な配 較て、きるような存在て、はない 0 それらは違 慮 ( たとえば lazy evaluation による eof の処 LUE) 指向といってもよい。もっとも最近の 理 ) が必要になってしまうのて、ある。 う世界に属する言語て、あるといえる。現実 標準規格て、ある Common Lisp などが定める には C と LISP は勢力分野を分けあってうま このあたりは , 同じく ' 70 年代の初頭に設 言語は実際には手続き型言語といったほう く共存している。たとえば C て、 LISP 処理系 計された C て、は大きく違っている。 C もま がむしろ適切かもしれない。そのような分 を記述することは普通に行われている ( あま 類論はともかく , LISP が勢力を延ばしてき た , Algo ト 60 の影響を多大に受けている。 り一般的な話て、はないが , Lisp machine て、 た背景にはコンピュータのハードウェアの しかし Pascal が教育用言語などといわれる は逆に LISP て℃コンパイラを記述している ) 。 進歩がある。 ように , 実用的なソフトウェアシステムを また AI 関係の大規模なアプリケーションて、 LISP はメモリを大量に消費する言語て、あ 己述する能力をある程度犠牲にして , わか はまず LISP て、プロトタイプを作成し , しか る。 LISP におけるデータ構造の基本はセル りやすさと安全性を重視しているのに対し る後に C に書き換えて高速な実行を得るとい と呼ばれる記憶単位て、 , これは 2 進木 ( S 式は て , C は徹底して実用的なツールとして設計 うステップを踏むことも多い 実は 2 進木て、ある ) のノードに相当するのて、 されており , 裏を返せばかなり危険な機能 あるが , 少なくともメガ ( 106 ) セル級の記憶 を含んて、いるのて、ある。 領域がなければ実用的なアプリケーション そもそも , C の目的は UNIX システムとい を動作させるのは困難だといわれている。 う OS の記述にあったのだから当然て、ある。 これは ' 80 年代に入ってようやく許されるよ LISP といえば , 必ず出てくるのが ProIog 本誌の読者には C についてこれ以上語る必要 うになった贅沢て、ある。 て、あろう。 LISP は関数型プログラミング言 はないだろうが , C における入力は , たとえ ただし , 依然として LISP の動作は遅い ば getchar ( ) を見てもわかるように「ます入 語て、あるのに対して , Prolog は論理型プロ と非難の対象になることが多い。また , LI グラミング言語て、ある。専門的にはホーン 力を試みる。その結果 , もしかすると EOF 節に限定した一階の述語理論に基づくプロ SP プログラマのスピードや計算機コストに て、あるかもしれないのて、 , そのチェックを 対する無関心が批判されることもしばしば グラミング言語て、ある。したがって , LISP 行う」というスタイルて、 , まさに Pascal と対 同様に Pr 。 log も C と直接比較してどうこうと 照的て、ある。これは UNIX が最初から会話型 て、 , 次のような名文旬が存在する。 いフ日語て、はない のシステムて、あったことに由来している。 A LISP programmer knows the value Prolog は ' 70 年代初頭に生まれていたのだ そしてその意味て、は C のほうがより今日的な Of everything, but the cost Of nothin g. ( 凵 SP プログラマは , 何だってその値 が , なんといってもこの言語が有名になっ 環境下て、生まれた言語て、あるといえる。 たのは日本の第五世代コンピュータブロジ を知ってはいるけれども , コストにつ いては何も知らない。 ) ェクトが論理プログラミングパラダイムの 潜在能力を評価し , 核言語として採用した LISP インプリメンタたちはこのような評 価を下されるのを避けたいと , 必死て、速度 からてある。機能的には , LISP がリスト処 LISP は , とにかくカッコがやたら出てく 理のアセンプラと呼ばれる低レベルな面を る言語ということはよく知られている。 向上を目指しているのが現実て、ある。とく 持っているのに対して , Prolog はリスト処 れはプログラムをすべて S 式 ( SymbolicEx に最近の RISC コンヒ。ュータのもとて、は , か 理の高級言語て、あるといわれる。たとえば pression) と呼ばれるデータ構造て、直接書き っての専用マシンを上回るパフォーマンス LISP が関数の引数に car や cdr を適用してリ 下ろすことから来ている。この S 式はまた , を示す処理系も登場している。 ストを分解し , cons を呼び出してリストを LISP プログラムが扱うことのて、きるデータ また , LISP はいろいろな機能を付加する 特集プログラミング言語 A to Z 35 一三ロ 1

6. 月刊 C MAGAZINE 1992年2月号

プログラ ングの 9 目的を達成するプログラムを組むにあたっては , ます最初に問題を どのように捉えるかが重要です。問題の本質を見ぬく思考と , 蓄積し たプログラミングノウハウを効率よく連結する知的プログラミング の秘訣を紹介します。 SSe,lIllCe 0 結城浩 するかを計画し , プログラムを書き , デバ 同様に プログラミングに王道はないのて、 ッグし , 問題が解ける・・・・・・おおざっぱにい す。 えばそういう段階を踏むことになります。 さて , 能書きはこのへんにして , さっそ はじめまして。 この連載て、は , 「問題を考え , プログラム く本題に入ることにいたしましよう。 今度 , 新しく連載を始めることになりま にするにはどうするかを計画する」という部 今のテーマ「繰り返し」 した結城浩て、す。どうぞよろしくお願いい 分にスポットライトを当てるつもりて、いま す。私たちはプログラムを書き始める前に この連載て、は , プログラミングを学ぶ上 何をどう考えなくてはならないのて、しよう 繰り返し , というとすぐ「あ , for 文ね , て、大切なポイントを毎回ひとつずっ取り上 か。また考えを整理する上て、何か特殊な技 あ , while 文かな」と考えをめぐらす人がい げて , 例題を交えながらお話したいと考え 法があるのて、しようか。私はプログラミン らっしやるかもしれませんが , ちょっとお ています。プログラミング言語としては C 言 グにおいてもっとも大切なことは , 工ディ 待ちください。マニュアルどおりに自分の 語を考えていますが , C 十十も必要に応じて タやデバッガの使い方て、はなく , ライプラ 己憶から知識を引き出してくるのて、はなく , 使っていくつもりて、す。 リ関数の知識て、もなく , 「間題をよく考える」 まずは「繰り返しってそもそも何だろう」と この連載は , C 言語初心者向けの講座て、は ということて、はないかと思っています。な いう話から入ってみたいと思います。繰り んだか当然のことに聞こえますが , 実はそ ありません。て、すから基本的な C 言語の文法 返しという言葉の使われ方を考えてみます。 の説明はいたしません。また , ライプラリ の当然のことがうまく実行て、きていないた 毎日の繰り返し。作業の繰り返し。季節の 関数の使い方やコンパイラの使い方といっ めに , うまくプログラムが書けなかったり , 繰り返し。繰り返し練習する。 た解説記事て、もありません。この連載の目 バグが取れなかったりするのて、はないて、し 表現に共通するのは「同じことを何回も」と 一緒にプログラミングを通して 的は , プログラミング上の本質的な , まさ ようか。 いう点て、しよう。毎日の繰り返して、は朝→ 問題を考えていきましよう。 にプログラミングの工ッセンスを考えてい 昼→夜という同じことが何回も起こります。 文章を書くとき , 何を書くか知らなけれ 作業の繰り返して、は同じ作業を何回もしな ば , 文章を書くことはて、きません。プログ くてはなりません。季節の繰り返して、は春 ラミングは文章を書くようなものて、す。ど 夏秋冬という同じパターンが毎年毎年も起 んなプログラムを書こうとしているのかを こります。繰り返して練習するのは同じ動 私たちがプログラムを書くときには段階 知らなければプログラムを書くことはて、き 作や同じ技術て、しよう。 があります。まず解きたい問題があり , そ ません。よく考えなければ , よいプログラ 人間は飽きつばいものてすから , 「同じこ の問題を考え , プログラムにするにはどう ムは書けないのて、す。幾何学を学ぶことと とを何回も」やると興味を失ったり , ミスを はめに 一三ロ くことなのて、す。 「を考える プログラミングの工ッセンス 61 「繰り返し」

7. 月刊 C MAGAZINE 1992年2月号

MAGAZINE 1992 年 2 月 1 日発行 ( 毎月 1 回 1 日発行 ) 第 4 巻第 2 号通巻 29 号・ 1990 年 2 月 2 日第 3 種郵便物認可 提携・ LANGIJAGE 誌 / 監修・石田晴久 C 言語技術情報誌・ C マカシン 1992 FEB. VOI. 4 NO. 2 980yen プログラミング一一一三語 N —・プログラミング言語概論 Ⅱ・主要処理系詳説 Ⅲ・処理系オーバビュー 特 集 5"2HD 特別付録 ・ビシネス AP 記述用言語「 Ca 仙 t BASIC 」 ・ LISP コンヾイラ「 SF 」 ・ P 「 olog インタブリタ「 S - P 「 0 g 」 ・ XGCC ⑩ ・本誌掲載ソースプログラム 新連載 プロクラミンクの工ッセンス〈第 1 回〉「繰り返し」 速報・ UN Ⅸ System V ReIease 4.0 Ve 「 .3.0 ( Ⅱ ) 巻頭インタビュー・ Motif アーキテクトグレープⅡ 提携記事・ You Gotta Have StyIe アルゴリズムとデータ構造入門・基数ソート djgcc 詳解講座・ djgcc のライプラリ関数 ( 3 ) ANSI C : mo 「 e ・構造体 明解 ANS ℃言語入門講座・入出力処理とライプラリ ( 1 )

8. 月刊 C MAGAZINE 1992年2月号

スタートアップ C 十十 実力養成講座 本連載中 , いろいろな方々から , 厳しい ご意見やご質問などをたくさんいただきま した。その内容のほとんどが , C 言語の高度 な言語という観点からの細かい文法的な事 項て、した。なぜ C 言語が広まってきているの こて℃十十を使うのかといった疑問 は , ひとつもいただいておりません。高度 どの文献て、もかなりあいまいに触れている な C 言語としての使い方は , 実践編にまかせ TabIe 1 機能の整理 のて、す。そこて、私たちは , Bjarne Stroust て , 読者の方々もここて、もう一度 , なぜ C 十十 拡張機能 rup の著名な論文 fAn OverVirew of なのか考えてみてください 行末へのコメントの記述 列挙名を型名とする C 十十』と , 実際のコンパイラに再度立ち返 本連載の 1 ~ 9 回まて、て、 , C 十十にとって重 構造体名や共用体名を型名とする こからは , 私たちがオプジェ 要な概念て、ありながら , まったく取り上げ りました。 名前なしの共用体 プロック内の変数宣言が式として扱われる クト指向て解釈した C 十十の機能解説という てこなかった用語がひとつだけあります。 変数の有効範囲を指定する演算子 定数型 それが , オプジェクト指向という言葉て、す。 ことになります。 明示的な型変換 C 十十は , このオプジェクト指向という考え ただし , ここて、強調しておきたいことは , 関数のプロトタイプ宣言 関数の多重定義 C 十十は C 言語をもとにしている , 拡張 C 言 方に従ってプログラミングを行うための言 関数引数のティフォルト値指定 可変個引数の関数 語て、すから , 完全にオプジェクト指向の考 語として作られたといっても過言て、はない 参照型 え方だけてプログラムを記述するわけては て、しよう。 インライン ( in ⅱ ne ) 関数 new 演算子 , delete 演算子 こが , 純粋オプジェクト指 ありません。 第 1 回て、解説したように , 言語を設計した ⅵ od ポインタと void 関数 向型言語といわれている SmaIItalk ともっと Bjarne Stroustrup も C 十十の三つの開発条 オフジェクト指向プログラミング機能 も相違する点て、す。 C 十十て、は , 手続き型て、 件のひとっとして , オプジェクト指向プロ クラス プログラミングをする部分とオプジェクト グラミングのサポートをあげています。ち 派生クラス 指向を導入する部分の住みわけをしなけれ 演算子の多重定義 なみに , ほかのふたっとは , よりよい C 言語 仮想関数 ばならないのて、す。 て、あること , データの抽象化をサポートす フレンド関数 なぜそこはオプジェクト指向て、記述する ることという項目て、すが , データの抽象化 ト指向の素養がない立場からみれば , 小難 のか , なぜそこは手続き型て、記述するのか は , オプジェクト指向の第一歩て、すし , よ しい C 言語ということになりましようか。 ということ。それが , C 十十て、もっとも重要 りよい C 言語とは , オプジェクト指向プログ TabIe 1 にオプジェクト指向としてのもの かっ難しい部分て、す。しかし , それが明確 ラミングが可能な C 言語と考えてよいて、しよ にならなければ , なぜ C 十十なのかという事 と , C 言語の拡張的のものにわけて整理して う。高度な C 言語とは書かれていない みます。実際は , このように明確に切りわ 項に対して , 正しい答えを出すことはてき 注目してください。それをあえてオプジェ けられるものてはなく , 拡張機能のなかて こまて ないと思います。 クト指向という言葉を使わずに もオプジェクト指向プログラミング機能を 解説してきたわけて、す。 『 , オプジ = クト指向 支援するものがいくっかあります。オプジ 今回からは , その C 十十の持つオプジェク 拡張 C 言語 C 十十 ェクト指向の立場からみた , C 十十の重要な ト指向的な側面について解説していきます。 結論からいえば , C 十十はオプジェクト指 機能は , クラスと派生クラスによるインへ これが , C + + の持っ , 本当に強力な点なの リタンス , そして関数のオーバロードが中 向的な側面からとらえると , 非常に貧弱な てす。本連載を始めるにあたり , 多くの C 十十 仕様を持った言語といえます。オプジェク 心てす。 の文献を参考にしました。それらの文献は , すべて本連載て解説してきたのて , 一応 ト指向型言語というよりも , オプジェクト 高度な C 言語として C 十十を解説するものが 内容については理解することがてきると思 指向を実現するための道具立てを持ったも ほとんどてす。ところがオプジェクト指向 のにすぎない言語 , いわばオプジェクト指 います。この道具立てを使って , いよいよ 型の言語として , C 十十を正面からとらえた オプジェクト指向に乗り出すのてすが , そ ものは皆無に近いといえるてしよう。オプ 向的言語とてもいえるてしようか。要は , ジェクト指向の世界て必要な考え方が , オプジェクト指向的にシステムをとらえる の前提として , まず考えなければいけない ことがひとつあります。そこから解説して ことがてきるプログラマにだけ , そのメリ C 十十てはどのように反映しているのか , ットを提供する言語なのてす。オプジェク いきましよう。 C 十十の持つオプジェクト指向については , List 簡単なストリーム出力を行うプログラム 1 : #include く stream. h> 2 : main() cout くく”日 e110 , world}n ”・ 4 : スタートアップ C 十十 123

9. 月刊 C MAGAZINE 1992年2月号

0 0 新刊書案内 C の ABC 0 の A 日 0 語 礎 基 C 言語によるプログラミング [ 基礎編 ] 内田智史編著 B5 判並製 346 頁 / 2 , 200 円 フロク”オーム社 土居範久著 A5 判上製 3 引頁 / 3 , 000 円 岩波書店 平宮康広著 A5 判並製 278 頁 / 2 , 000 円 ラッセル社 ラノセルフックス 基礎 C 震語 コンピュータ専門学校講師によって執筆さ れた C 言語の入門書 oQuickC や Turbo C など の統合環境を使用して学習できるように 200 近いサンプルプログラムは , 短いものが 採用されている。また , ' 88 年から始められ た「情報処理能力認定試験」の C 言語プログ ラミング試験に完全対応。 PC -9801 B 旧 S と C プログラミング 川上峻史著 8 / OS と A5 判並製 C7a グング 245 頁 / 2 , 400 円 工学図書 : ッ損与物を 本書は C 言語の入門書として , コンピュー タ , プログラミングの初心者を想定し , C の 知識だけでなくプログラミングに必要なハ ードウェアやデータ表現法 , 入出力などの 知識を 0 から解説。本書は 2 冊で構成され , [ 応用編 ] においてはプログラムの作成テ クニックを解説している。 A NSI C 準拠。 間違いだらけの C プログラミング 金田一勉著 A5 判並製 ロ 4 頁カ , 600 円 ナツメ社 本書は C 言語の入門書である。ます例題があ げられ , それに対するプログラムを紹介す る。その後で , プログラムのキーワードと なる文法などを詳説している。数値と文字 , 繰り返し , 選択などと学習要綱を 12 の章に 分け , ひとつの章で数個の例題プログラム をじっくりと解説している。 MS-C 入門 吉川敏則著 A5 判並製 360 頁 / 2 , 600 円 翔泳社 いた引ナの C フ。ログラミング 4 本書は , MS-C Ver. 6.0 を使用した C 言語の 入門書である。 C 言語の初歩的な知識と , M S-C Ver. 6.0 でのコンバイル手順について 詳説されている。例題をプログラムしてい くことで , C 言語と MS ー C の使用方法をマス ターできる。 1 , 650 件にも及ぶ用語や関数の 索引っき。 短期合格 ! アセンプラ CASL 東田幸樹 , 山本芳人著 A5 判並製 224 頁 / I, 900 円 ソフトバンク マシンに依存にしたアプリケーションを作 成する際には , 引 OS を利用する必要があ る。本書は , PC ー 9801 シリーズの引 OS を C 言 語で使用できるように 1 , 2 章では引 OS の知 識を , 3 ~ 9 章で引 OS 機能を関数化した例を 収録している。 MS-C Ver. 5.1 , MASM に 対応。 追跡 ! ネットワーク犯罪 本書は 2 部構成になっている。第 1 部は表 題どおり , 例題に間違いプログラムを提示 し , 間違いを解消していく。第 2 部は「テク ニック」と称し , プログラムのスピードアッ プ法 , プログラムのデバッグ法などの解説 をしている。プログラムにバグが多くて , という人に UNIX/C 、刀トウェア工ンジニアリング W. フレークス , C. 」 . フォ ックス , B. A. ネジメ著 藤井直人監訳 / 小川晃夫訳 B5 変形判並製 3 田頁 / 3 , 800 円 プレンティスホール・トッ 現在活発に行われている , IJN Ⅸ上での C 言 語によるソフトウェア開発。本書では , ソ フトウェア開発に必要なソフトウェア工ン ジニアリングの方法論やツール , テクニッ クを紹介する。ツールの紹介を通して , 開 発環境や開発プロジェクトにおける諸問題 について学習できる。 OWEN BOWCOTT, SALLY H AM に TON 著 / 加納三由季訳 B6 判並製 302 頁 / し 700 円 アスキー 知期合掲 ! アセンプラ CASV 、 ! ネットワーク紐第 毅第 ST 新一第 ; 情報処理技術者試験 ( 2 種・ 1 種 ) の試験科目 アセンプラ CASL の学習書。アセンプラ言語 を初めて学ぶ人 , どうも好きになれない人 のため , 具体例をふんだんに使い , 随所に BAS ℃と CASL の比較例を交えてわかりやす く解説している。巻末には , CASL シミュレ ータのソースリスト (BAS ℃ ) も掲載 日本ではさほど騒がれていないが , 米国で は深刻な問題となっているネットワークに よる犯罪。おもにハッカーと呼ばれる人た ちが引き起こしているのだが , 彼らの行為 は本当に悪なのだろうか。本書は , ハッカ ーたちの告白をもとに書かれたドキュメン タリーである。 27 Book Review

10. 月刊 C MAGAZINE 1992年2月号

e S9 っても驚きました。パソコン通信 かとわかりにくい ! ( 変数 , 関数 ぞれ得意・不得意があります。ひ ☆悲劇 をやっていなくても学校 , 職場か 英語はよーわからん ) やっと文 とつの言語にこだわらず , 目的に 先日 , Turbo C 付属の math. h を使 ら持ってきたりする可能性もある 法を少し ( ? ) 理解できるようにな 合った言語を選ぶほうがプログラ わずにべき乗根を求めようとして , んですねえ・・・ った。ゲームや音楽のソフトを作 ムの開発効率もよくなります。本 えらく苦労したあげくに精度はイ 帆刈千尋 ( 新潟県 ) ることを志している僕に , C は何も 号の特集など参考にして , ぜひほ マイチ。それもこれも , マニュア COMMAND ℃ OM が 28K バ ( 関数など ) 与えてくれないのでこ かの言語にも挑戦してください ルを読まずにプログムを打ってる イト ! 怖いてすねえ。編集 まっている。本屋にいってもよい ☆編集部の ( ホ ) さんへ 私が悪い。さらに悲劇は続くもの。 部てもディスク作成は専用マシン 本がない。あー ! 「脳ミソ , バ 2 日悩んだ後 , 普段愛用している入 を使っているのてすが , 念のため ァ ~ ン ! 』の世界である。まあ受 我が大学では , PC ー 9801 を UN Ⅸの 門書に math. h で使用できる関数表 起動時にウイルスチェックを行っ 験勉強の合間にセッセと C のプログ 端末として使用しています。ある がのっている・・・・・・などという超ま ています。すべてのパソコンから ラムを書くとするか ! 日 , UNIX にログインしようとして ぬけな事態が発見され , 関係者各 ウイルスがなくなれば , 安心して 山崎智朗 ( 大阪府 ) メニューを見ると , 12 月号編集後 位から白い視線が注がれたのはい パソコンを使えるのてすが・・ Pascal をやられていたのなら 記 ( ホ ) さんと同じような現象がお うまでもない。角泰徳 ( 石川県 ) それにしても , 実害がないうちに C プログラミングにもすぐに慣 きていました。何かわかったら , カ技てもプログラムを完成て 気がついてよかったてすね。 れると思います。受験勉強の息ぬ 「編集後記」にでも書いてください。 きるというのは , すばらしい きに C マガジンを見てマスターして 内田大輔 ( 埼玉県 ) ☆ああー Human ことだと思います。周囲の白い目 ください ( ) 。おもしろいゲー ご指名賜ったホてす ( ; ) 。 に負けずに , プログラミングを続 「このやろう , 自分だってパソコン ムがて、きたら , 編集部に送ってく さて , 私のマシンに巣食った 野郎になって仕事をもらうんだい けてください ださいね。 ウイルスもどきは , 今秋ラスベガ っ ! 」と闘志を燃やして買ったはい スて、開催された COMDEX 会場て ☆プログラミング言語 ±Ohl TIKOBORE いけれど , MS ー DOS はないわ , コ 配付された無料ディスク収録の検 8 ビットの BDS-C, 16 ビットで Qu ンバイラはないわ , あるのは Hum 大学では数値計算がとても多いた 索プログラムに隠れていたようて ickC を買ったが , 落ちこほれそう an だけ・・・・・・。やはりこんな私に人 め FORTRAN を使っています。しか す。それがどうも Windows 2.11 だな ~ ! 入門の本を読んでいる 生は厳しかった。泣けるなあ。 し FORTRAN は一般には時代遅れ ( 3.0 てはなかったんて、すね , これ ときはわかっているが , キーポー 松下麻紀 ( 北海道 ) の言語とされているため , 新しい 二 ) ) に噛みつき , AP を切り ドが打てない落ちこほれ人間がい 情報もなく , コンパイラも高価な XC がないと , プログラミング 換えるごとにタイムスタンプが毎 つばいいるぞ ! ! ソフトバンクか 環境はかなりつらいてすね。 Microsoft FORTRAN しかない。た 秒 1 年くらいの早さて書き変わって ら「 Oh ! T Ⅸ OBORE 」創刊 ? 私の場合は , AS. X と LK. X が初め めしに C で同じ計算をしようとして しまいました 0Windows 2.11 から 川原隆 ( 栃木県 ) から付属していたのて、 ( 型がバレて も使いたい関数がまったくない ! 通信ソフトを立ち上げて PC ー 98 を U もし「 Oh ! TIKOBORE 」が新 しまうなあ ) , XC を購入するまて どうせ関数を作成してプログラ NIX の末端として使用していまし 創刊されたら , 本屋て堂々と それて遊んて、いましたが , 今発売 ムを完成させても FORTRAN で作 たが , UNIX にはなんら悪さはしま 買える人がいるてしようか ? 買 されている機種には付属しないの 成したほうが速いだろうし せんてした。職業柄 , 徹底的に調 う時は , 思わず顔を隠しながらレ てすよね。 XGCC を使うにも XC ラ 今は C が流行しているが , C 言語 査しウイルスの存在を突き止める ジまて持っていったりしてい イプラリが必要になります。プロ にも不得意とする分野があります。 べきてはありましようが , 私 , そ グラミングに使用するのてあれば , そういう点を補う意味でく C マガジ れほどの根性も時間も知識もなく , ☆28K バイOCOMMAND.COM XC の購入をお勧めします。 ン > とはいえ , ほかの言語もカバ ハードディスクをフォーマットす ハードディスクのルートディレク ーするようにしてください。 るという , 極めて低レベルてはあ ☆ゲームプログラマ志望 トリで D 旧とやったら , なんと ! C 中根徹裕 ( 京都府 ) りますが , もっとも確実な対処を 0 M M A N D ℃ 0 M が 2 8 K もあっ Pasca に別れてはや半年。 C はタイ 、中根さんがおっしやるとおり いたしました。おかげていまては ピングの量が少なくて楽な分 , 何 実害はなかったのだが , と プログラミング言語にもそれ た ! ! Win 3.0 てす。 (A- 164 C MAGAZINE 1 2 2