Turbo - みる会図書館


検索対象: 月刊 C MAGAZINE 1990年9月号
41件見つかりました。

1. 月刊 C MAGAZINE 1990年9月号

いやすさに甘えてしまい , 気楽に追加して きたライプラリ ( 正式にはユニットという ) を多用しているのて , それが原因てソース コードを公開てきませんて、した。つまり , ソースコードを公開することは , ほかの使 用していないごちやごちゃした手続き , 関 数まて公開してしまわなくてはならないと いうことになるからてす。今回 Turbo Pascal を使用したのは , 自分のだらしない性格の ためかもしれません。 C のように ( 極端な場合てすが ) , 1 関数 1 フ ァイルにするのもめんどうてす。ェデイタ て、カット & ペーストして , あちらこちらに散 在する必要な関数を集める手もありますが , これも非常に繁雑てめんどうてす。スマー トリンカカ℃にないというのは実に残念てす ( その代わり , Turbo Pascal のオプジェク ト形式は , C のものと互換性がなくなってい ます。つまり直接はリンクてきません。同 じポーランド社の TurboC なら Turb0 Pas cal とのリンクはてきるようてす ) 。 Turbo Pascal は , コンパイラ自体のサイ ズが小さいことも特筆ものてしよう。環境 版を使用しても , フロッヒ。ー 1 枚にコンパイ ラ 1 セットが入ってしまいます。コマンドラ イン版コンパイラならば , コンパイラ自体 の実行ファイルは 60K バイトほどのサイズし かありません。これならば , そのほか必要 なリンクすべきファイルやツールとともに ディスケットの片隅に入れておき , よいア イデアがうかんだときプログラムするとい う方法も使えますし , コンパイラがメモリ を浪費しないのはよいことてしよう。 また環境版は Turbo C と操作性がほとん ど同じなのて , たいていの場合 , TurboC や QuickC に移行しても違和感は少ないてし ようし , 永久に移行しなくても , たいてい のプログラムはこれだけて組めてしまいま す。 C が強力な言語とはいえ , 「プログラム は言語だけて組むのてはない」というのが私 の持論てす。 参考書籍にしても , 文法の解説書 , 入門 書もあれば具体的にソフトを組むための参 考書やアルゴリズム解説書などもあります。 C 言語に比べて書籍の数は少ないのてすが , C 言語関連書籍が圧倒的に文法解説や入門 書中心てあるのに対し , PascaI 関連書籍 は , 実際にあるまとまったプログラムを組 むときの参考になる内容が記述されている 本が多いようて、す。逆にいえば , C 言語の書 籍は今後も充実していけるということても ありますが・・・ しばしば , PascaI は 仕様が C 言語に 「コロロ 比べて美しいという意見をよく耳にします。 これは見解の分かれるところかもしれませ ん。反面 , PascaI は文法チェック , 型チェ ックが厳格て堅苦しいという意見もありま す。 文法ということて 1 例をあげます。たと えば次のプログラム ( List 1 ) をあなたの C コ ンパイラて、コンパイルするとエラーがてる てしようか ? おそらく , まったく問題なく コンパイルてきるはずてす。しかし , この プログラムにはバグがあります。ためしに ソクを入力してください 同内容のプログラムを , バグの部分も含 めて PascaI て、書くと , コンパイラはエラー を見つけ出します。 C てのラベル定義は , 柔軟てあるだけ , あ いまいなのてす。これは 1 例てしかありま せんし , 適切な例てはないのかもしれませ んがこういうこともあるのだと思ってく ださい もちろん , C 言語は一事が万事だめだと か , C 言語と PascaI て、は , PascaI のほうが優 れているとか美しいといっているつもりて、 はありません。ただ , ホリデープログラマ の参考になればと思いました。 自分の楽しみにプログラムする人ならば , 最終的にはいろいろな言語を , そのときその ときの気分 ( 使い分けて , たとえレベルが 低くても何かに使える役にたっプログラム を書けるようになると楽しさも格別てす。 仕事以外のプログラムて大切なのは , 言語 に何を使うかてはなく , 自分のアイデア , 自分の要求をどのようにまとめて 1 本のソフ トウェアに作りあげていくかということだ と , 個人的には思っています。 ログラムのポイント 1 グラフィック 全体にグラフィックを多用していますが , グラフィック表示は Turbo PascaI に標準て、 付属している BGI ライプラリを使用せずに PC ー 9801 の ROM に記録されているグラフィ ック LIO ルーチンを使用しています。 グラフィック LIO ルーチンを Turbo Pascal から使用する方法は , 数多くの参考書籍に 載っているのて、 , けっこう参考になります。 私も , 工学社 CTURBO PascaI グラフィッ クス』 , 近代科学社『入門 TURBO Pas cal 』 , JICC 出版 TTURBO PascaI エキスパ ートマニュアル』などを参考にして , 自分 なりに機能を加えていったものを使用して 特別な理由があって BGI を使用しなかった わけて、はありません。一般には BGI を使用し たほうが , マニュアルを参考にすればすむ ことなのて、 , そうしたほうがよいと思いま す。 なお , 別のところて、ふれましたが , 絵は 全部手描きてす。したがって味はあるかも しれませんが , けっして美しくはありませ ん。 2 カードの絵やメニュー画面 カードの絵やメニュー画面の作成にはツ ァイトのジーズスタッフキッドというグラ フィック作成ソフトを使用しています。 のソフトは , 処理スピードもまあまあて、す し , なかなか使いやすいソフトてす。カー ドの絵は作成した後 , ジーズスタッフキッ Conference R00 m 141

2. 月刊 C MAGAZINE 1990年9月号

恥すかしな力あドジりました 第 10 回 日本語処理といういばらの道 ことばはたんに技術の対象か ? 「日本語の文章用のスペルチェッカを作る ぞー」とラッパを吹いてから , 早くも半年以 上がすぎ去ってしまいました。その間 , 「研 究」は遅々として進んていません。 このごろは , わが身をかえりみて , 日本 て優れたソフトウェアが生まれない理由が , っくづくわかるのてす。ようするに , 日本 人は貧しいのてす。本当の意味てのゆとり・ 余裕がないのてす。日本経済は , 上澄みの ところて、は , ゴッホの絵を買ったり , ハリ ウッドの映画会社を買ったりと , イナカモ ン丸出しの豪勢さを発揮しておりますが , 下積みのところては , 毎日生産ラインに張 りついて , コンべアの上を次々と流れてく るく仕事 > に追いまくられているのて、す。 そして世界には , く仕事〉すらない地域が多 いから , こんな日本ても羨望され , 偽装難 民が押し寄せたりしてるのてす。 本誌 7 月号を読みました。往時のベル研に は , バイトに来た大学生に「ばく , ここて、働 きたい / 」と思わせる何かがあったのて、すね ( スティープ・ジョンソンのインタビュー記 川。今日本のコンヒ。ュータ界隈て、 , それほ どイキイキとした魅力を発散している大学 や研究機関はないて、しよう , たぶん。やっ ば , どこも余裕がない ( = 文化的・精神的に 貧しい ) から , 「日本にはコンヒ。ュータに関 96 CMAGAZINE 19 9 岩谷宏 して , 技術者はいても思想家がいない」とノ 力にされたりするんて、す。 しかし , この種のグチて、ページを埋め尽 くすわけにはいきません。私たったひとり が独カて , 充実した「思想」の高みに達する ことなどあり得ないし , ひとりて、達したと しても無意味てすが , 考えたことや体験し たことを , ご報告しておく意義はあるてし 今回は , 日本語処理にまつわる , 初歩的 な問題をおさらいしてみます。 、複数のセマンティクスか 錯綜する場 私が C 言語 , 具体的には Turbo C のユーザ になったのは , fTurbo C の技法』 ( 工学社 ) という本の翻訳を手がけたことが契機てす。 1987 年の終わりごろて、すから , まだ処理系 は IBM PC 用の製品しかありません。それ ても , コマンドライン版のコンパイラてあ る TCC. EXE は , PC ー 98 の上て十分に使えま しかし , 日本語対応措置を施していない 処理系が生成するコードて、 , 日本語の文字 列などを表示すると , いわゆる「文字化け」 という現象が起きます。 たとえば、、表示〃という漢字熟語は , MS -DOS が採用しているシフト JIS コードて は , 、、 0X955 0x8ea6 〃という 4 バイトのス トリングて、す ( ここて、はあえて「文字列」とは 呼ばず , たんなる物理的なバイト並びとい う意味て、 , 「ストリング (string) 」と呼んてお きます ) 。 これを p 「 intf ( ) などて表示させると ,IBM PC 用 Turbo C て生成されたコードは , 侮 ヲ〃と表示するのて、す。、、ヲ〃は PC ー 98 のキ ーポードから直接入力て、きる , 半角 ( 1 バイ ト文字 ) の、、ラ〃て、す。 、、侮ヲ〃の文字コードは , 0X958e 印 xa6, という 3 バイトて、す。 、、表示″が 0X955C ー 0x8ea6 て、したから , 、、侮ヲクは、、表〃の文字コードの 2 バイト目 をどこかへ捨てたものて、す。 捨てられたのは , 0x5c というバイトて す。これはアメリカのパソコンてはノヾック スラッシュ文字 \" , PC ー 98 など日本のパ ソコンては、、 \ 〃の文字が当てられていま A, 定義されていませんから , IBM PC 用 ケープシーケンスは , 少なくとも C 言語の場 , 0x5c の直後は 0x8a てす。こういうエス 、、表示〃という文字列て、は , 上記のよう す。つまり , ェスケープ文字てす。 に のだぞ , と C に指示するには , ご存じのとお はなくて , 文字どおり物理的な \ 〃そのも 0x5c すなわち、、 \ 〃が , ェスケープ文字て、 が表示されたのてした。 e 印 xa6 という 3 バイトに変換され , ヾ侮ラ〃 たのてす。その結果 , 最初の 4 バイトが 0X958 ェスケープ文字を捨てる , という行動に出 TurboC は , この , 自分にとって無意味な

3. 月刊 C MAGAZINE 1990年9月号

い引新しいア URBO 0 シリー 980 日を。 キャンペーン特別価 3 TURBO ASSEMBLER ・ TURBO PROFILER TURBO DEBUGGER ・ TURBO ASSEMBE TURBO ASSEMBLER' TURBO C ・ 新製品・ Tu 「 bo Debugger & T00 2.0 発売記念キャンへーン、 6 月末より実施 ! ! グラム開発環境を、あなた自身て、ご体験ください プロクラム開発作業を強力に支援する、プロフェッ •Turbo AssembIer 2.0 の特長・ MASM との咼 ・キャンペーン特別価格 ( 6 月末 ~ 9 月末 ) し五換性を保持・ 80486 まての命令をフルサポート・マ ショナルのためのツールーー - Turbo Debugger & ・ 39 , 800 円 ( 税別 ) ルチパスにより前方参照による非効率なコード生成を抑止 Turbo PASCAL 5.5 P 「 0 Assembler か、さらに使いやすく、さらにパワーアッ ・ 39 , 800 円 ( 税別 ) プして「 Turbo Debugger & T00 2.0 」として Turbo C 2.0 P 「 0 •Turbo Debugger & T00 2.0 の動作環境 生まれ変わりました。この革新的な開発ツールは、 機種 PC ー 9801 シリーズ、 PC ー 286 シリーズ ( ハイ プロクラムを解析し重要な部分を最適化するため レゾリューションモード、 LT は除く ) 今回、 Turbo Debugger & T001S 2.0 の新発売を の手助けをし、信頼性・性能の高いソフトウェアか 記念して、特別キャンペーンを実施いたします。このキ メモリ 640KB 以上 開発できますまた、 Turbo Debugger & T00 MS-DOS バージョン 2.11 以上 ャンペーン期間中 ( 6 月末 ~ 9 月末 ) に限り、新製品 2.0 は、コンパイラを問わすプログラムの性能を解析 Turbo Debugger & T001S 2.0 を含む Turb0 PA- マウスノヾスマウス し、仕様を再検討することができるようになりました。 ■ Turbo Debugger&T001s2.0 : 29 , 800 円 ( 税別 ) SCAL 5.5 Pro 、 Turbo C 2.0 Pro( 共に 2nd Edi- tion ) を特別価格 39 , 800 円 ( 定価 49 , 800 Turbo Debugger & T001S 2.0 には、次の 3 つのフ TURBO C TURBO C 円 ) にて販冗。フロ ログラムが含まれています。 着 ONÅI PROFESSIONAI_— •Turbo Debugger 2.0 の特長・・マウスをサポー グラム 1 本あたり、な トした新しいユーザインターフェース・ 80386 の仮想 んと 9 , 950 円という驚 86 モードを利用して大規模なプログラムのデバッグ 異的なハイ・コストパ 力す可育皀 フォーマンスを実現 ・ Tu 「 P 「 of ⅱ e 「 1.0 の特長・・世界初の会話型 しました。どうぞ、この 機会に Turbo シリー プロファイラ・ルーチンや行単位ての実行時間・実 行回数が測定可能・リモートプロファイルをサポート ズの素晴らしいプロ ※ AII Borland Products are trademarks 0 「 registered trademarks Of Borland lnternational, lnc. OBorland lnternational, lnc. ※その他、商品名は一般に各社の商標です。 ・製品に関するお問い合せは、総販売元株マイクロソフトウェアアソシェイツ TEL. 03-486-1411 までお願いします。 USER'S GUIDE USER ・ S GUIDE GUIDE QUCK REFERENCE GUID REFERENCE GUIDE USER ・ S GUDE REFERENCE GUIDE Turb0 Debugger & Tools 2.0 新発売記念・特別キャンペーン実施 ! 新価格 Turbo Debugger&T001s 2.0 の主な特長 DEBUCCER & TOOLS 2.0 : 0 株式会社ボーランドジャパン 〒 107 東京都港区南青山 7-8-1 小田急南青山ヒル TEL. 03-486-148 代 : み 03 HIGH-PERFORMANCE PROGRAMMER PRODUCTIVITY TOOIS ー 0 ーー 4 ー 0 T 4 9 1 1 4 5 2 5 0 9 9 8 5 雑誌 14325 ー 9 ( 0 ) ソフトパンク凸版印刷 Printed in Japan

4. 月刊 C MAGAZINE 1990年9月号

C 言語の活用理解 SOFT 日 K ソフト ^ ンクのベストセレクション ・最新 ANSI C 標準規格に完全対応 詳説 C 言語 H & S リファレンス C 言語プログラマから高い評価を受けている「 C : A Reference M 1 」第 2 版の完訳。 S ・ハービソン & G ・スティール共著定価 4 , 500 円 ・ MS ー C 活用の王道を示す MS-C Ve 「 .5.1 プログラミング 基桑作からコンパイラの内部処理まて群細に解説。 最童化のための手法、 ANSI 準拠のプログラミング作 法なども紹介。石田秋也ほか著定価 3 , 300 円 ・ Quick C の本格活用を示す ⅱ QuickC プログラミング 工ディットからコンパイル・実行まて、の統合環境を 備えた「 Quick C 」の本格的入門書。 野口雄平・池田志・中島昌ニ共著定価 2 , 680 円 ・ C STEP IJP シリース① ・ C ー、謝以勝 上級・ C 言語の応用 50 例 画面制餌騙、ディスクドライプ制御騙ほか大きく 4 つに分け、それぞれくふうを凝らしてプログラムを作成。 上原・中山・石田・井上共著定価 2 480 円 ・ C STEP IJP シリーズ② + + プロ々 , C 十十プログラミンク 今話題の言語、 C + + の本格的入門書。本書の各項目 既 をカード別にまとめ、サンカレリストや図版を豊富に 掲載。 門内淳・赤堀一郎共著定価 2 , 680 円 ・ BAS ℃からのアプローチ C 言語の活用理解 具体例を数多く取り上げ、 BASIC の知識を有効に 利用しつつ、 BASIC から C へ順次移行て、きるように 保坂光・若林淳共著定価 2 , 060 円 解説。 ・基本からのアプローチ C 言語の基礎知識 短いけれど実用的なサンプルプログラムを紹介しな がら、 C 言語の基礎知識を解説しています。 門内淳・乗呆智・上原哲郎共著定価 2 , 500 円 ・実践からのアプローチ C 言語の応用 50 例 C 言語を使い 98 上て、どのようなプログラムが作れる のかを、豊富なサンカイ列によって示しています。 上原・石田・乗松・中山・高木共著定価 2 , 370 円 &Türbo C ・ Turbo C の奥義を示す Turbo C Ve 「 .2.0 プログラミンク 基本操作はもちろんのこと、内部処理の角財斤をはじ め、 BGI の活用方法など上級操作も詳細に解 井上哲雄・酒井恵光・佐藤隆共著定価 2 , 900 円 ・初級 C 言語講座 PIay the C ( 上・下 ) C を身につけたい、これまて、の解説書て、はもの足り ない、そんな要求に応え C の世界を系統的にとらえ直 林晴比古著定価各 1 , 550 円 して解説。 ・ C 言語の秘められた能力を解き放つ C プリプロセッサ・パワー C 言語の中て、も、とりわけ秘められたパワーをもっ プリプロセッサ機能の潜在能力を使いこなすにはどう すればよいかを解説。林晴比古著定価 2 , 270 円 ・はじめての Turbo C プログラミング TUrbo C 入門 初心者にとってなじみのうすい「 TurboC 開発環境」 をたくみに解説しながら、具体的で示唆に富んだ用法 に一亠 林晴比古著定価 2 , 680 円 をも満載。 詳帛て 1 0 OS/2 ・全プログラマ必読 OS / 2 共通規約ハンドブック OS / 2 上て機種依存のないソフトを作成するために誕 日本語 生した「共通規約」について詳細に解 MS OS / 2 共通規約ワークショップ著定価 3 , 000 円 ・プログラマ仲間に送る発見の報告 OS / 2 プロクラマーズ叭ンドブック [ 上・下 ] 原著「 The Programmer's EssentiaI OS/2 HA- NDBOOK 」の邦訳版。デビッド・ E ・コルテシ著 秋津彰文訳定価各 3 , 500 円 ・ A 曰ごとに C のサンカレプログラムを満載 OS / 2AP ワック I ・Ⅱ [ I ] に OS / 2 のカーネルリクエスト、 [ Ⅱ ] にデバイス I/O 、マウス API 、グラフィックマネジャなどを収車し 坂本浩著定価 [ I ] 2 , 970 円 [ Ⅱ ] 3 , 000 円 C 言語研籘 0 例 定価はすべて税込です。

5. 月刊 C MAGAZINE 1990年9月号

tion ( 〆 ma 「 5 プジェクト指向ツールの開発や , / 1 版、 A ニング , コンサルティング 今後のアップデートのお知ら TOURIN TOKY0 開催要項 urbo Debugger 2 ー て有名な The Whitewater Group せや , そのほか弊社からの TD & 関する の技術スタッフてす。また , 「 Jour TOOLS のユーザの皆さんに対する [ 開催日時および会場 ] nal of Obj ect-Oriented Program 重要なお知らせは , 登録カードに 日時 ming 」誌にレギュラーて執筆してい 1990 年 10 月 9 日 ( 火 ) 基づいてお送りしています。お手 AM9 : 30 ~ PM6 : 30 数てすが , 毎回 , 登録カードをご ます。 0 * 同時通訳付 TD386. EXE で , ー f オプションを 返送ください 場所 品月レヾシフィックホテル 指定しても , デバッグ対象プログ セッション 3 萬葉の間 rlntroduction to C 十十」 ラムで EMS 領域を認識しないのは 0 定員 300 名 ( 申込順 ) なぜでしようか。 TurbO Debugger で MS-Windows 用のプログラムのデバッグはでき 受講料 1 名につき 45 , 000 円 ( 税 C 言語は理解しているけれど , ー f オプションは , TD386 自身が ますか。 C 十十はこれからという人が対象の * セミナー参加者全員に Turbo シンポル情報をロードするエリア セッションてす。 A C 十十 1.0 ( PC ー 9801 版もしくは 現在のバージョンてはて、きま としてプロテクトメモリを使用す ・ C 十十てはどのように OOP の原 IBM-PC 版 ) が教材としてつきま るよう指示します。ューザプログ せん。米国て、は MS-Windows 3.0 理が実現されているか す。 PC ー 9801 版につきましては , 製 ラムから見て EMS 領域が存在する がリリースされ , 順調な出荷を続 ・なぜ C 十十は , よりよい C 言語な 品出荷後お送りいたします。 ようになるわけて、はありません。 けています。 のか ・ C 十十が , どのような大きなプロ * 受講料には当日昼食時に行う 現在ポーランド社て、は , 開発の ジェクトをサポートしているか パーティーへの参加費が含まれて 最優先課題として , 各種プロダク 0 ・ new と delete がもたらす動的なプ TDMEM. EXE で表示されるプロ います。このパーティーには , セ ツの MS-Windows 対応を掲げて ミナーの講師およびポーランド関 ログラミングスタイル テクトメモリの容量と実装メモリ おり , すてに , 今回 ,TurboAssem 係者が多数参加いたしますのて , ・・・など 容量が違うのはなぜですか。 bler 2 . 0 て、は , MS-Windows 用の 直接お話していただける絶好の機 プロローグコードとエピローグコ A [ 講師 ] Bruce EckeI 氏 会かと思います。 この場合 , ほかのドライバが ードが生成されるように . MODEL 疑似命令が拡張されました。 彼は , 「 Using C 十十 J(Osborne/ すてにプロテクトメモリを利用し [ お申し込み方法 ] ています 0TDMEM. EXE はほかの また , 弊社のリレーショナルデ McGraw- HiIl , 1989 ) の著者て , ポーランドジャパン ( TEL 03 ー プロテクトメモリを使用するプロ ANSI C 十十委員会のメンバーて ータベース $PARADOX" の言語 486 ー 1400 ) まてお電話ください。申 グラム (NEC 製 RAMDISK. SYS な インタフェイスルーチン $PARA もあります。また , これまてに , 「 Dr. Dobb's JournaI 」 , 「 The C し込み用紙をお送りいたします。 ど ) が , セグメント 0 , オフセット DOX ENGINE" の DLL 版をまも また , 8 月末には , Turbo シリーズ なく発売することを発表しており User's Journal 」 , 「 The C 十十 Re 0401H の 1 バイトを変更してメモリ の全登録ューザの皆さんに , ご案 を割り当てている場合には , その ます。 p 。れ」 , 「 The C 十十扣 umal 」 , 「 T 内の DM をお送りする予定てす。 領域を除いたメモリの総量をレポ すべての Turbo シリーズを MS- Hot Line of Object Oriented Windows アプリケーションの開発 Technology 」誌などに彼の記事が ートします。 オプジェクト指向の考え方が理 ツールとしてご利用いただけるよ 掲載されています。 解てきて , TurboC 十十が手に入 うに拡張することをユーザの皆さ 今年春に , TPC lnterfacing with 0 アップデートで TD & T00 んにお約束いたしております。 C & C 十十」 (Academic Press, 19 って , しかも , おいしい食事と英 語の勉強まててきる , またとない 90 ) を刊行し , 現在は , 「 The Tao LS を入手しましたが , また新しい なお , 現在これらのプロダクト 機会てす。ぜひみなさんふるって は開発中てすが , 発売時期および of ObjectsJ (C 十十と TurboPas 登録カードが入っています。以前 cal を例としたオプジェクト指向プ ご参加ください 内容については未定てす。この件 に一度ユーザ登録をしているのです ログラミングの入門書 ) を執筆中て が , 再度登録カードを送る必要が に関するお問い合わせはご遠慮く す。 ださい ありますか。 A 込 ) lnformation 作 om CompiIer Makers 151

6. 月刊 C MAGAZINE 1990年9月号

「最適化チェック」 コン′イラ 特・集 より速く , より小さなコードを求めて リック・ナロー / 野口修男訳 くない驚きもある。最適化とパフォーマン ないことが多い コードジェネレータに関しても同じこと スはェモーショナルな問題て、あり , プログ がいえるが , 各コンノヾイラに付属のツール , ラマによっては妥協て、きない議論になって いる。誰しも自分なりの意見があり , 反対 ライプラリおよびプログラミング環境につ いては当てはまらない。ソフトウェア開発 意見に対して直感的に疑いを抱いてしまう。 昨年の「 C 特集」から久しい (C L 誌 1989 プロジェクトのデバッグ , 特長づけと管理 こに取り上げた最新コンパイラ群がこの 年 2 月号 ) 。そろそろ見直しの時期にさしか 厄介な問題に対して , いくらかても光を当 のよいツール要求を満たすべく , コンパイ かっている。昨年の C を取り巻く情勢は , ラベンダーは躍起になっている。他社製品 てることになれば幸いて、ある。 Microsoft や Lattice などの中心的べンダーが との差別化を図っているだけかもしれない 解析範囲をこのレビューのように絞った コンパイラのアップデートを行っていた 場合には , 勝者が誰かをはっきりと宣言す が , 全体を見ることによってコンパイラの 方て、 , BorIand はデバッガのツールセットと コード生成機能の重要度が低下し , パッケ ることなどは不可能て , べンチマークだけ TurboC の新バーションのリリースに懸命 ージ全体としての価値を重要視することに てコンパイラを選ぶのは大きな危険を伴う。 になっていた ( 訳注 : 翻訳時点て、はすて、に なる。全体像を見れば , ソフトウェア開発 コンパイラの全体像を見られなくなってし Turbo C 十十として出荷中 ) 。ワークステー 計画に重要なツールが何かをインテリジェ まうからだ。 ' こて、レビューしたトップク ションとメインフレームからの比較的新し ラスのコンパイラは , 最適化に関しては同 ントに決定て、きる。 い参入組 (MetaWare と Watcom) とヤングス 様の機能をもつ。これらのコンパイラ間て , タ—(JPI と Zortech) が DOS, Windows, お あるコンパイラがつねにほかの挑戦者を 30 % よび OS / 2 環境用の C または C 十十を販売し挑 以上も上回るようなことは , 合成的なべン 戦を開始した。 チマークを除いてはありえない。実世界て これだけ多くのコンパイラがあると , な , こ数年て広まったファッショナプルな はスルーブットに影響を与えるほかの要件 かにはどうしても驚かされるものがある。 オプジェクト指向方法と同様 , 「グローバル が多くあり , プログラマにはどうしようも もちろん , 嬉しい驚きもあればあまり嬉し 特集米国コンバイラ事情 39 はじめに 実践前の理論

7. 月刊 C MAGAZINE 1990年9月号

特・集コーイラ 果のレポートをあえてしないのは , わすか 9 行のコードを最適化する能力と , 300 から 300 , 000 行のコードを使ったプロジェクトと は何の関係もないと考えたからだ。べンチ マークを進めていくと Dhrystone が sieve of Eratosthenes より , よい結果となった ( 現実 のアプリケーション結果に近づいた ) 。 Wat- com と Microsoft のデッドヒートになり Top- Speed がこれにつづいて 3 位となった 合成べンチマークについてはもう十分だ ろう。 Table 6 は compact と large 各モデル の組み込みシステム用のツールを作成した テスト結果て、ある。商用製品て、あることに 加えて , このアプリケーションのコードサ イズが compact モデルの 64K ノヾイトのリミッ トに近づいている点に興味がある。すべて のコンパイラが , large モデルて、は成功した のて、 large を結果のサマリーに使用した。 Watcom が最小かっ最速コードを生成し , わずかの差て、 Microsoft と Zortech がつづい た。すべてのコンパイラが好結果を出して トップと最下位との差は 21 % だ。 おり , コンパイラ間の差は興味深い。プログラ ムを詳細に解析するとアプリケーションて、 2 / 3 の時間を , 残りの時間をファイルのリー ドライトに消費している。この状況下て、は ラインタイムライプラリ , ダイナミックメモリ管理ルーチンのインプ リメントが順位を決定づけている。 Table 6 実物のプログラムの作成 Turbo C が 4 位に終わっている。タイミン グ解析をすると ,malloc( ) に TurboC は 270 ミリ秒 , Watcom C て、は 50 ミリ秒を要して おり , 差の大部分を占めている。 Microsoft と Watcom が高速なアロケーションを指向し ているのに対し , BorIand のアプローチは実 行時間を犠牲にしてもヒープの細切れを防 止している。省メモリアプリケーションて、 はこれはすばらしいことだが , 時間計測を しているかぎり不利になるというわけだ。 残念ながら BorIand の節約にはポイントを与 えられない しかし , これは別のところて、効力を発揮 する。 qsort( ) の実行時間て、は , BorIand(91 ミリ秒 ) は Watcom(190 ミリ秒 ) より 2 倍 , Mi crosoft(258 ミリ秒 ) に対しては約 3 倍近く速 くなっている。コンノヾイラベンダの暗黙の 設計判断が , アプリケーションに直接イン パクトを与えたポイントだ。それぞれの状 況に応じてユーザがランタイムライプラリ のアルゴリズムがどう設計されているかを 判断しなければならないことになる。これ て、は買い手が危険を負担することになる。 評価に対する判断 トップと最下位の差が開く。待ちに待った チェックが質量ともに大きくなるに従い MS-C 6.0 コンパイラが最高の最適化コンパ イラて、ある。 Lattice と TopSpeed と Wat com, この 3 者が Microsoft に並ぶにはアッ プデートが必要だ。さらなる飛躍をもって レドモンド ( 訳注 : シアトル東部の Microsoft 社の所在地 ) の挑戦に各コンパイラメーカー が応じることを期待したい コンパイル時間については Turbo C がリ ーダーだ。楽勝て、ある。次いて、 MetaWare と Zortech コンパイラが良好な成績をおさ め , そのほかのコンパイラと同様にランク される。この両者は 386 と C 十十環境て、はラ イバルたちを凌駕している。 C マーケット初 登場の JPI はとくに注目に値する 0TopSpeed はユニークな特長をもったすばらしい最適 化コンパイラて、あるが , 荒削りなところに 成熟不足が見え隠れする。 Aztec と Ecosoft はそのほかのコンパイラと競争するだけの 力をもち合わせていない。それなりの長所は あるのだが (Ecosoft の lint は目を見開かせて くれる ) , 互換性のなさが機能を制限して る。 パフォーマンスを基礎にしてコンパイラ を選択すると , 「木を見て森を見す」のごと くになりかねない。だがしかし , ひとっし かコンパイラを所有て、きないなんて誰がい うのだろうか ? コードサイズ (compact モテル ) コードサイズ ()a 「 ge モテル ) 作成時間 ( 秒 ) 実行時間 (compact モテル ) 実行時間 ()a 「 ge モテル ) パフォーマンス比 ()a 「 ge モテル ) High C 十 86K 十 3.694 Lattice C 68K 7 1 K 640 3.294 3.553 M ℃「 osoft C 58K 60K 425 2.894 2.965 1 .01 TopSpeed C 十 70K 235 十 3.470 Tu 「 bo C 59K 62K 92 3.152 3.248 Watcom C 54K 55K 468 2.91 5 2.936 1 . OO Zortech C 60K 6 3 K 281 2.992 3.036 1 .03 ( 注 ) 十は compact モデルてのコードサイズか 64K を超えたためにテスト不可 全テストを ! / O に日 AM ティスクを使った De Ⅱ 310 ( 20MHz 386 ) で行った * は大型モジュールのコンバイルにティスクキャッシュをティスエープルしたので時間計測不可 特集米国コンバイラ事情 49

8. 月刊 C MAGAZINE 1990年9月号

者投稿プロクラム 「キー練習 & マウス絵合わせゲーム EXE 」 円羽信夫 はじめに このソフトウェア全体は , いくつかの小 さいプログラムを集めたものてす (TabIe いちばん上位にメニュープログラムが こから 4 つのサププログラムを子プ ロセスとして起動します。サププログラム のうち , 3 つはアルファベット用 , カタカナ 用 , 数字キー用の簡単なキーポード練習プ ログラムて、す。 3 つ目の数字キーの練習プログラムは絵合 TabIe 1 NN. EXE およびツールのファイル構成 わせゲームにもなっています。サププログ ラムの 4 つ目はマウスを使うゲームて , これ も絵合わせゲームてす。ゲーム内容は単純 な神経衰弱て、す。 4 つのサププログラムは MS ー DOS から単独ても起動て、きます ( ただし手 描きの絵を多用しており , この絵のデータ は必要てす ) 。 作成の動機 もともと , このプログラムは , 私の子供 のために作ったものてす ( ちなみに , 長男は 小学校 1 年生 , 次男は 3 歳てす。長男はファ ミコンをけっこうやっています ) 。 本プログラムはお遊び程度の低レベルな ものて、 , 公開するのは恥ずかしいようなプ ログラムて、す。 ただ , 公開した以上は , 教育現場や家庭 やらて、活用していただけることを願ってい ます。 プログラム全体は , 絵のデータも含めて 帰宅後数日かかって作成しました。カード の絵も , ひとつひとつお絵描きソフトて、描 きました。お父さんの手作りソフトという ファイル名 NN. EXE ABC. EXE KATA. EXE NV. EXE AIU. EXE ABC. PD AIU. PD MENU. PD NV. PD KATA. PD PCK CNV. EXE PCK CNV. PAS ST4 CNV. EXE ST4 CNV. PAS IMCUT. EXE IMCUT. PAS IMCUT. DOC IMCUTC. EXE IMCUTC ℃ IMCUTC. DOC IMCUTCST. EXE IMCUTCST. C MEDA. EXE MEDA. C 内 容 メニュープログラム サププログラム , ABC 練習 KATA. EXE で使用するテータ NV. EXE で使用するテータ NN. EXE で使用するテータ A 旧 . EXE で使用するテータ ABC. EXE で使用するテータ サププログラム , あいうえ絵合わせ サププログラム , 数字絵合わせ サププログラム , アイウ練習 Conference Room 139 MEDA. EXE のソース -putimage( ) を使用した低レベルなケーム。 Quick C 用 IMCUTCST. EXE のソース ジーズスタッフキッドの ST4 形式の画像を直接ロード ( 16 色は要変更 ) IMCUTC. EXE のドキュメント IMCUTC. EXE のソース ( 16 色は要変更 ) Quick C 2.0 の -getimage( ) で得られたテータの再画からの切り取りと加工 IMCUT. EXE のドキュメント IMCUT. EXE の Turbo Pacal ソース TurbO Pasc の Get age で得られたテータの画面からの切り取りと加工 ST4-CNV.EXE の Turbo Pascal ソース ジーズスタッフキッドの ST4 形式でセープされたテータの加工 PCK-CNV. EXE の Turbo Pascal ソース ジーズスタッフキッドのライプラリ形式でセープされたテータの加工

9. 月刊 C MAGAZINE 1990年9月号

これに対して , TurboPascal はタイプ量 ー 9801F とハードディスクを使用しても 85 秒 ものて、す。手て、編んだワラグッのようなプ しかかかりません。 100 行程度のプログラム は多くなるものの , 記号てはなく意味のと ログラムてす。父親としては , 日頃パソコ りやすい単語を使うことが ( C に比較すれば ) ならば , コンパイルは瞬間 ( というぐらい ) ンのディスプレイにへばりついて , 家族を 多いのて , ソースリストの内容を理解しや の出来事てしかありません。 ないがしろにしているだけに , 楽しみを家 最近は QuickC に首ったけてすが , QuickC すいかもしれません。 族に還元する必要があるてしよう。ゲーム のコンパイルは Turbo PascaI に比べるとず また , 引数を与えない関数は , 手続き ( プ やワープロて還元することはもちろん可能 ロシージャ ) として別扱いされるのて , 理解 っと時間がかかります。 てす。ても , お父さん ( またはお母さん ) の しやすいかもしれません。文字列型の変数 話がずれますが , 最近の C コンパイラには 自作プログラムは , ( たとえ下手て、も ) 市販 便利な関数が多いのて , 使ってみたくなり がサポートされているのも BASIC などから のものとは違った味があるてしよう。その 移行しやすく使いやすい点かもしれません。 ます。 具体的 1 例になれば幸いてす。 ポインタをあまり意識しないても , たいて Turbo PascaI のスマートリンカ機能の存 用言語 いのプログラムが書けます ( 逆に , ポインタ 在も貴重てす。 1 本の同じソースにいろいろ 関連の記述は C のほうがずっと柔軟てす。 な手続きや関数を記述しても , メインプロ PascaI てはヾ * P 十十〃という記述てもちょ グラムて使用されていない関数などはリン 私は , ほとんど毎日 , なんらかのプログ クされないのて , 実行プログラムのサイズ っとめんどうな記述になってしまいます ) 。 ラムを組んて、います。そのとき利用する言 このため , 結果的に , C に比較して短期間の が不要なコードて予想外に肥大して驚くこ 語は , C 言語てあったり , BASIC< あった うちに習得することがてきます。もちろん ともありません。使用しない変数なども除 り , Pascal< あったり , いろいろてす。 学習者の相性もあるのて , 誰てもというわ かれるそうてす。これは便利てす。 C 言語て、組むことも多いのて , 今回のプロ 気のむくままに , 自分のライプラリを付 けて、はありませんが。 グラムも C 言語て、作成すればよかったのて、す あくまても個人的意見てすが , 休日にて け加えていって , メインプログラムのソー が , けっきよく Turbo Pascal 5.5 て、作成し スてリンクすることを宣言すれば , コンパ っとりばやくマスターするには Turb0 Pascal ました。マシンは NEC の PC ー 9801F を使用し クトなプログラムが作成てきます。反面 , は最適だと思います。後々 C 言語に挑戦する 、 0 としても決して回り道てはないと思います。 このことはプログラミングがいいかげんに 私は , C 言語も , BASIC も , Pascal も好 ということにつながるかも なりかねない , 時間のない私にとってうれしい きて、すし , どれがよいとか , 悪いとかはい しれませんが , 趣味として気楽に楽しむの Turbo PascaI はコンパイルが非常に高速て えません。プログラミング言語は , 目的に ならばたいへんありがたい特徴てす。 す。実際に 1 万 5 千行の自作プログラムを全 よって使い分けたり , あるいはたんなる気 今回のプログラムも , TurboPascaI の使 部コンパイルしなおすのに 8MHz の低速な PC 分て使い分けたりするのがいちばん気楽て、 楽しいと思っています。 さて , 「 C マガジン』という C 言語を中心と した雑誌への投稿プログラムなのに , わざ わざ TurboPascaI を使用したのには , へそ まがりな性格という理由のほかにもいくつ かわけがあります。これからプログラミン グを趣味て楽しもうという方にも参考にな ると思いますのて、 , ここて、いくつか Turbo PascaI 使用の ( 私が感じた範囲の ) 利点をあ げてみます。 C 言語は記号を多用するのて、 , これらの記 号に慣れると , タイプ量も少ないし , 簡潔 にプログラミングて、きます。ソースリスト もすっきりとするのて , 慣れていれば見や すくなります。 getdpbl.c List 1 : ma i n ( ) 3 : i nt a : do{ 4 : printf("%n ※ 1 ー 3 迄の数値を入力ください。 ( 99 で終了 ) " ) : 5 : 6 : switch (a){ 7 : case l:printf("l) 1 を押しましたね。 Yn");break; case 2:printf("2) 2 を押しましたね。 Yn");break; 9 : case 3:printf("3) 3 を押しましたね。 Yn");break; defalt :printf("X) 関係ないものを押しましたね。 yn");break; } whi le ( a ! = 99 ) : 14 : } 140 CMAGAZINE 19 囲 9

10. 月刊 C MAGAZINE 1990年9月号

ホ - ランドジャパン lnformation from (ompiler ma 「 5 Turbo 0 ー & Too 2.0 [ 講師 ] David lntersimone 氏 しないという方も多いことてしょ 足掛け 4 か月にわたり , 世界 14 都市 BORLAND OOP て行います。 彼は , ポーランド社の Director WORLD TOUR て , サードバーテイソフトハウス 製造業の例からも明ら しかし , セミナーは 1 日のセミナーて , 3 やユーザグループとつねに連絡を かなように この流れに乗り遅れ つのセッションて構成しています。 とりながら , Turbo シリーズをより た企業は , 確実にコスト競争の敗 各セッションの詳細は以下とおり Turbo C 十十 1 . 0 のリリースが てす。 よい製品にするための仕事を続け 者となります。これまて、の手法て、 はじまり , 米国て、はたいへん好評 プログラムし続ければ , そのうち ています。 を得て , 私たちの予想をはるかに 伝統工芸の伝承者として人間国宝 セッション 1 うわまわる好調な売れ行きを示し に指定してもらえるかもしれませ セッション 2 「 Managing OOPDevelopment 」 ています。 んが , 企業としての存続はおばっ 日 n Odu on Pascal witl ' 90 年代は OOP の時代にならなけ ObJects 」 かないてしよう。 このセッションては , OOP によ ればなりません。ソフトウェアの る開発を管理する方法を学びます。 ちょっと話が過激になりました 生産性を高めるためには , どうし ・ OOP の開発プロジェクトをどの が , このような発想の転換の機会 このセッションては , Turbo てもオプジェクト指向アプローチ をみなさんにつかんて、いただくた ように予算化しスケジューリン Pascal によるオプジェクト指向ア によって 1 度開発されたプログラム めに , ポーランド社は , 「 BOR プローチの方法を学びます。 グするか の再利用性を高めなくてはなりま ・オプジェクト指向プログラムの ・レコードからオプジェクトへど LAND OOP WORLD TOUR 」と せん。 いうオプジェクト指向プログラミ ために , どのようにプログラマ のように切り換えるか こうした考え方に対して , そん ・初期結合と後期結合 , 静的オプ を教育し , 組織化するか ングのためのセミナーを企画いた なことて、きないという , 否定的な ・オプジェクト指向のデザイン手 しました。 ジェクトと動的オプジェクトを 開発者が多いようてすが , オプジ 法を理解し , コードを再利用可 このセミナーは , 7 月 23 日のポス 理解する ェクト指向のアプローチというの 能なように書くにはどうすれば トンからはじまって , ニューヨー は通常の製造業て、は当たりまえて、 ・ Pascal において効果的な OOP ス ク , ワシントン , シカゴ , ダラス , よいのか タイル す。 ・既存のコードをどのように活用 ロサンジェノレス , サンフランシス ・・・など 規格化された部品があって , そ , ミラノ , ロンドン , コのくンノ、 するか れを組み立てて製品を作るという コ のが , ごく普通の製造業の姿てす。 ーゲン , パリ , ミュンヘン , シド ・・・など ーと回り , 10 月 9 日の東京まて、 , 他人が作った部品なんか信用て、き ないなどと , 頑固なことをいって いると , 企業間のコスト競争に負 けてしまうに決まっています。 ソフトウェア産業は , まだ 19 世 紀初頭の産業と同じことを繰り返 しているのてす。 OOP の世界への転向は , 発想の 転換が必要て、す。これまて、のやり 方とは , 根本的に考え方が変わら なければなりません。 つまり , 現在 , この業界の中心 てバリバリ仕事をしている第 1 線の プログラマたち全員に , 一度初心 者に戻ってもらわねばならないの てす。そこにはかなりの抵抗が予 想されます。決してそんなことを 150 CMAGAZINE 19 9 [ 講師 ] Zack Urlocker 氏 彼は , ACTOR をはじめとするオ