特集 MS-C Ver,fi,l)I なく , QuickHeIp と同様のトヒ。ック検索ま て、もが可能だ。また新たに , MS-DOS 環境 ドからのコマンドライン形式て、も QuickHelp を利用て、るようになった。 こうしたオンラインヘルプの圧縮された データベースのポリュームは膨大て、 , デコ ードしてプリントすれば数千ページにもお よぶが , さらに Helpmake を使用して既存の ヘルプデータベースにオリジナルなデータ べースを追加することまて、もが可能となっ ている。 巨 WB 使用にあたって ヒ イ PWB を起動すると Ver. 5.1 のマイクロソ フトエデイタに比べて , その大振りな起ち E がり動作に驚かされるだろう。起ち上が り時間も長くなっている。また , 新機能が TabIe 1 強化・追加された代表的機能 多く , PWB の全貎がなかなかっかめないも どかしさがあるに違いない。全面的にオン ラインヘルプに依存しているため , マニュ アルが簡素化されていることも , 全体像を 掌握する妨げになっていると受け取られる かもしれないが , それは的を射ていない MS-CVer. 6.0 に搭載された PWB はマイク ロソフト社の言語系ノウハウが集大成され た結果なのて、ある。 QuickC からは統合 , NMAKE, インライ ンアセンプラの発展形が , MSOS/2 からは QuickHelp の拡張版 , MS—C Ver. 5.1 から は CodeView の発展形がそれぞれ採用されて いる。本体の構造には MS - CVer. 5.1 のマ イクロソフトエデイタの発展形が , C 拡張 , Calltree, Megrep の発展形とともに使われ ている。つまり , 膨大な機能が PWB 上に結 品し , オンライン化されているのて、ある。 これこそが大振りな印象の真の理由だ。 内 機能 Resize 機能 日 edo 機能 P 「 ompt 機能 P 「 int 機能 Tell 機能 Messa e 機能 Mg 「 epä能 Maximize 機能 WinstYle 機能 Select 機能 日 epeat 機能 スプリット画面を自由サイズでリサイズする LJndo 機能を反転実行する キー要求のユーサプロンプトを表示して , キー入力を受け付ける 指定のフィルター処理をして , 編集ファイルを印刷する キーアサインメントを教える ダイアログラインにユーサメッセージを表示・削除する リスト指定ファイルに文字列検索を行う ( Meg 「 e 口に相当する ) OS / 2 さながらにスプリットウインドウをマクシマイズ , 復元する ウインドウの 4 種類のスタイルを順次切り換える カーソル移動キーでテキストセレクトを可能にする 直前の編集を反復する Envi 「 onment 機能 PWB から環境変数を再設定する TabIe 2 PWB を用いたプログラムメンテナンス概要 メイクファイルの自動作成 依存ファイルの自動検索 クイックテフォルト機能 ソース , ヘッダ , ライプラリなどのプログラムリストを使用し自動的に メイクファイルを作成。自動的なコンバイラやリンカのオプションのメイ クファイルへの取り入れも可能。メイクファイルは NMAKE にてその まま使用可能 メイクファイル作成段階でファイルのすべての依存関係を検査し , 結果を メイクファイルに反映。ソースファイルがインクルードファイルを使用し ていれは , 環境変数を確認 , 自動検索 ピルド時にクイックテフォルト機能を使ったオプション設定が可能。ク イックデフォルト機能を使い , コンバイルオプション , リンクオプショ ン , 標準的な外部ライプラリの選択をターゲットの実行ファイルことに設 定。 O ロ tion メニューのピルドオプションを使ったピルドスイッチのオ プション指定をカスタマイズ , 結果を別の名前でセープ , 再利用可能 大きいだけに PWB を使いこなすにはそれ なりの時間が必要だが , それぞれの機能が デフォルトの切り口をもっている点が救い となるマイクロソフトエデイタをベース に全面改良された PWB のプログラマズエデ イタはより使いやすく , さらに活用範囲が 広くなっている。とくにエデイタを含めた PWB 全域て、マウス使用が可能なため , 操作 性は格段に向上している。 PWB を使用する うえて , マウスを使用しないと PWB 本来の 意味が失われるといっても過言て、ないほど の必需品て、ある。 また , 新機能ソースプラウザはデータベ ースの検索に似た動作もすれば , すべてを リストすることもて、き , その役割はきわめ て重要だ ( CaIItree のように関数だけにとど まらない ) 。ソースプラウザを使いこなせば ほとんどの場合 , ソースリストをたんねん に追いかける必要もなくなる。画面のスク ロール機能を退化させてしまうおそれすら あると思われるほどだ。 ただし , 依然として気になるのは PWB の 起動時間。これは無視て、きないレベルのも のて、ある。しかし , これにも高速化の対策 はある。 4M バイトの増設 RAM を使用し て , BINR を RAMi•イスク上に移動し , 2.8 M バイト程必要て、あるから , FEP の分と合 わせて 3.3M バイトを RAM ディスクに割り 当て , 残りをディスクキャッシュに使用す る。これて、気にならない程度の時間短縮が て、きる ( 編注詳細は 156 頁を参照 ) 。とはい え , マイクロソフト社にはさらに高速化へ の改善努力を望みたいところだ。 FEP については ATOK6, ATOK7 が付属 の MSATOK.COM を走らせると使用てき る。このドライバのメモリ消費は 5.4K バイ トと経済的て、 , PWB 全体に RAM の底当た りのないのは重要な特長といえよう。 マニュアルについてはオンラインヘルプ を使いこなすことにつきる。このデータベ ースは画面上のちょっとした見かけとはお よそ違った内容と深みをもっている。 特集 MS-C Ver. 6.0 研究 45
0 「 m0j00 from ( om mak 5 CodeView 3.0 は , そのユーザイ ンタフェイスを完全に再設計し , Quick シリーズや Programmer's WorkBench と同様のユーザインタ フェイスを実現しました。各ウィ ンドウは独立したままて , 共通の 操作環境をもち , MS ー C Advi sor, ローカル変数 , ウォッチ値 , レジスタ , メモリなどを表示させ るため , 複数のウインドウをオー プンてきるようにしました。また , 複数のソースウインドウとメモリ ウインドウを一度に画面表示てき るようになりました。また , 各ウ インドウはウインドウ単位て , 縦 横スクロールや印刷が可能てす。 ・ダイナミックリプレイ機能 ーズ CodeView 3.0 は , デバッグ途中 のプログラムに変更を加えた場合 , 変更した時点まてに入力したすべ ての情報を , プログラムの先頭か ら自動的に再生するダイナミック リプレイ機能を装備しています。 この機能により , デバッグセッシ ョンての入力とデバッグ中のアプ リケーションソフトウェアての入 力を自動的に再現することが可能 になりました。 ・ Programmer's WorkBench と の統合 CodeView 3.0 は独立したツー ルてす。しかし , Programmer's WorkBench との組み合せを考えて 設計され , 実際の操作環境上ては Programmer's Work Bench と統 合したデバッガとして機能させる ことが可能となっています。 この統合により , メニューを使 って Programmer's Work Bench から CodeView 3.0 が起動てき , す べてのオプション設定も Program mer's WorkBench 側てあらかじめ 設定しておくことが可能て、す。ま た CodeView 3.0 のデバッグセッ ションの情報も自動的に保存され ますから , Programmer's Work Bench 側に戻った後ても , ウインド ウの設定 , ウォッチ変数 , プレー クポイントなどの情報は自動的に 再設定されます。さらに前回のデ バッグ時にくらべ , ソースプログ ラムのコードを追加しているよう な場合 , プレークポイントを正し い位置に保っため自動的にプレー クポイントの行番号を更新します。 Fig. 2 MS-C 6 ℃システム構成 6.0 を使用するのに必要なハードウ 先月号の Q & A ては , MS-C A ン開発はできないのですか ? 2.11 上で動作するアプリケーショ MS-C 6.0 では , MS-DOS 0 ェア構成だけを記載していました のて , 今月号ては必要なシステム 構成と , 作成後の実行ファイルの ターゲットとなるシステム構成を 記載します。 Fig. 2 をご覧くださ ソフトハウス様へ マイクロソフトては , マイクロ ソフトの言語製品に関連した各種 ライプラリやツールなどを製品化 しているソフトハウスを会員とす る「マイクロソフト・ライプラリー ズ」を運営しています。 この会ては , 会員ソフトハウス の製品紹介一覧を製品に添付した り , 技術情報の交換などを行って います。まだご入会されていない ソフトハウス様は , ぜひご入会く ださるようお願い申し上げます。 お問い合わせは , 以下の必要事 項を明記の上 , 下記まて、 FAX て、お 願いいたします。 ・貴社名 ・御担当者名 ・電話番号 ・ FAX 番号 ・販売中 ( または開発中 ) の商品 の概要 商品名 / 対応言語製品 / 価格 / 発売時期 ( 発売予定の場 FAX 03 ー 363 ー 1281 事務局 マイクロソフト・ライプラリ 第一研究開発部 マイクロソフト株式会社 宛先 必要システム構成 八一ドウェア OS 必要メモリ 必要ティスク装置 推奨システム 使用可能な 80286 , 80386 を CPU に持つ PC ー 9800 シリーズ , または PC -98 シリーズ ( ただし , 八イレゾリューションモードを除く ) MS-DOS 3.1 以上もしくは , OS / 2 1 . IA 以上 640K ノヾイト (MS-DOS) 空きメモリ IM バイト以上 ( OS / 2 ) MS-KANJI A 日仕様の日本語入力システム マウス IM バイト以上のキャッシュティスク ( MS ー DOS ) IM バイト以上の凵 M 4.0 対応の EMS メモリ ( MS ー DOS ) OS / 2 のみ選択して , 全設定を行うと約 18M バイト必要 ) (SETUP 時に , DOS のみ選択して , 設定を行うと約 12.5M バイト必要。 ( PWB を使用する場合には約 7M 八イト必要 ) 八一ドティスクの空き容量は最低約 6M バイト以上 , 最大 20M バイト 1 M バイト容量の 1 台以上のフロッピーティスク装置と 1 台以上の八一ドティスク装置 ( ATOK6 / 7 の場合 , 付属のドライバで対応可能 ) 日本語入力システム ターゲットシステム構成 OS 必要メモリ 八一ドウェア PC -9800 シリーズ , PC ー 98 シリーズ ( ただし , グラフィックスライプラリを使用する場合は , PC -98 および八イレゾリュー ションモードを除く。 また , 引 OS ライプラリを使用する場合は , PC ー 98 江 XA を除く ) MS-DOS 2.11 以上もしくは , OS / 2 1 . 1 以上 Microsoft Windows Ver. 3 .0 以上 ( 実行ファイル作成には日本語 MS ー W 爪 DOWS ツールキットが必要 ) lnformation from Compiler Makers 157 システムと作成プログラムに依存 トウェア開発支援ツールが必要 MS-DOS と MS OS / 2 の BOUND 実行ファイルを作成するときは , 日本語 MS OS / 2 ソフ
特集 ている。 Edit メニュー ()p 〉く Contents 〉 <lndex 〉く Back 〉 PWB でのプログラミング く Building and Running Programs 〉 く Managing Programming Projects 〉 く CompiIe/Link E 「「 0 「 s 〉 <Debugging Programs 〉 く Using the PWB Source Browser 〉 PWB のカスタマイズ く Writing and Using Macros 〉 く Setting PWB Switches 〉 く Using TOOLS.INI 〉 く Writing Editor Extensions 〉 PWB リファレンス く Menus 〉 く Function Quick Reference 〉 く Managing Windows 〉 く Searching and Replacing 〉 く Cutting and Pasting Text 〉 く Moving through a FiIe 〉 く Managing Files 〉 PWB の使い方 く Using PWB Functions 〉 く Starting 円Ⅳ B 〉 く Using Help 〉 (Using Menus and Dialog Boxes 〉 オリエンテーション Programmer's WorkBench の目次 Fig. 2 Programmer's WorkBench の目次 MS ー DOS へ抜け出すことなどの機能を備え ズ , ファイル名の変更 , さらには一時的に ば , ファイルの選択からファイルのクロー 般的な処理を行うメニューて、ある。たとえ このメニューは , ファイルについての一 F ⅱ e メニュー 含めて次のような機能がある。 初期画面の各メニューには File メニューを ファイルはエディット可能状態になる。 イタにファイルが登録される。登録された ればよい。ファイルが選択されると , 工デ ライプは選択可能だ。必要に応じて変更す ることになる。もちろんディレクトリやド れるのて、 , 必要に応じてファイルを選択す カレントディレクトリのファイルが表示さ その中の Open をクリックすることによって するとプルダウンメニューが表示される。 の左にある File メニューをマウスて、クリック る。指定方法には , 初期画面のいちばん上 おらず , PWB の使用者が指定する必要があ 初期画面にはまだファイルが指定されて (Fig. 1 ) 。 る。 PWB を起ち上げると初期画面が現れる 数やまちがった指定をすると必ず表示され MS-C Ver,6,llI このメニューはエディットに必要な機能 がサポートされている。コピーや削除 , カ ットアンドベーストまて、 , 必要機能を網羅 している。 Veiw メニュー このメニューはウインドウに関する操作 を担当している。ウインドウのサイズ変更 や縦横の分割を行うことがて、きる。 Search メニュー テキストファイルのサーチや必要に応じ た置換コマンドの呼び出し , さらに , コン パイル上のエラーのファイルも検索するこ とがて、きる。またソースプログラムの中て 必要に応じてつけたマーク箇所にカーソル をジャンプさせることもて、きる。 Make メニュー このメニューはコンパイルからリンクま て、の操作関係のコマンドを呼び出せる。 Run メニュー コンパイル , リンクされたプログラムを 実行するメニュー。そのほかに ,C0deVeiw を呼び出してデバッグすることもてきる。 さらに使いやすくするために , ューザが PWB 中て、任意に使うことがて、きる Customize Menu コマンドもある。 Option メニュー このメニューは統合環境て、ある PWB 自体 を管理するコマンドを呼び出す。環境設定 やコンパイルオプション , リンクオプショ ンなどの設定や変更が自由に行える。また , PWB の操作キーのカスタマイズも自由に設 定変更することがて、きる。 Browse メニュー この機能はコンパイルする複数のプログ ラムについて関数 , 変数 , シンポルなどの 相関関係を調べるコマンドを呼び出す。 Help メニュー オンラインヘルプを呼び出すときに使用 する。ただ , 調べたいランタイムライプラ リについては , その関数の最初にマウスカ ーソルを置いて最後まて、マウスポタンを押 し続ける。その操作によって , 指定された 関数はリバース , 確定される。確定後はフ ァンクションキー f ・ 1 を押すと必要なヘルプ が表示される。 各メニューにはコマンドが綺麗に表示さ れているが , その中に がついているコマ . ンドは選択後ダイアログボックスが表示さ れることを示している。 さて , オンラインヘルプを起動させるに は , Help メニューをマウスて、クリックし , 右上の最上部にある <lndex> を再度クリッ クすれば Fig. 2 の画面が表示される。 Fig. 2 の画面は実際の PWB からもってき たものて、あるが , 最上部のコマンド表示が 含まれていない。以後は , この PWB のメニ ューに従って説明しよう。もっと詳細に知 りたければ , 緑色の < > て、囲まれた部分を マウスて、クリックするとよい。確定される とその部分が反転表示され , 詳細部のヘル プが表示される。 ヘルプの最後は , て示される。 特集 MS-C ver. 6.0 研究 65
その手抜きを検出する。とくに一定の陰影 かの機構を使って目は周囲の光に合わせて タのヒ。クセルはたんに白いスペース上の黒 感度を調節する。 領域て、はこのようなパターンの繰り返しは い「点」にすぎない 順応状態がどうて、あれ区別可能な光度の このパターンは混乱のもと 新聞の画質て、どんなアプリケー ション用 検出しやすい 範囲は限られている。暗すぎる光はすべて となる。シュールレアリスム的な仕げが の画像て、も再生て、きるわけて、はない。それ 黒に見える。明かるすぎる光はすべて白に どころか新聞の画質は耐えられる最低限度 目標てなければこの類は避けたい 各グレー陰影ごとのランダムなパターン 見える。ぎりぎりの黒と , ぎりぎりの白と に近い。ところが , もっともグロッシー ( 訳 選択がこの解決になる。目は / イズだけを の光度比はおよそ 1 対 1000 になる。依然とし 注最高度の光沢 ) な雑誌て、さえ 1 インチ当 見て , 難なくノイズをフィルタし除外する。 てかなり範囲が広い。目はこれに対処する たり 300 行は必要としない。高品質ストック このテクニックは専門用語て、デイザリング ために , 動物の神経器管て、広く使われてい 紙て、さえそれほどの解像度をサポートて、き ない。 300 行て、は並び合ったドットどうしの (dithering) と呼ばれている。 る別のトリックを利用している。そのトリ インクが混ざり , しみになる。印刷業者に 私たちが頼りにする 300DPI のプリンタに ックとは光度の変化に対して対数的に反応 よれば紙がインクを保持て、きないそうだ。 することだ。すなわち目は光度の差て、はな おけるきちんとした写真の再生については もっとも精細なスクリーンは 1 インチ当たり もちろん新聞の解像度 く比を検出している。 述べてこなかった。 光 B が光 A の 2 倍のエネルギーを作るとし 150 行程度て、飽和する。しかし , グレーの陰 以上は望むべくもない。疑問なのはハーフ 影によって目に必要な細かさを再生するに トーンスクリーンのシミュレートに 17 種の よう。目はそれ ( 光 B ) を比較的明るいグレー 陰影て、十分かどうかだ。それて、十分と考え ト分なのて、ある。 の陰影ととらえる。次に光 C の光度を調整し る人がいるかもしれないが , 私はそうは思 て光 B より同量の陰影分だけ明るくなるよう グレーの陰影は必要なドット数により大 わない。目は 16 種などよりはるかに多くの にする。 1 陰影分明るく見えるためには光 C きく異なり , グレーを含んだ画像を表示し 陰影を検出て、きる。さらに悪いのはこの方 は光 B の 2 倍 ( A の 4 倍 ) の光度が必要だ。 ようとするとそのドット数が重要となる。 法て、の陰影は , あまり目に馴染まない 目はぎりぎりの黒とぎりぎりの白の間に タイプとライン以外を描画しようとすると このような陰影を約 10 段階ほど , いい孑奐え 黒と白だけて、はすまない 目は光の変化に非常に適応しやすいこと れば光度の倍数分だけ検出可能て、ある。 黒のドットしか表示て、きないディスプレ を思い出そう。カメラが現在ほど自動的に の写真家は光度の 2 乗の変化を 1 度 ( lst 叩 ) と イて、もグレーの陰影をつけられる。 300DPI なる前は , シャッタースヒ。ードとレンズア 呼んだ。 のプリンタの空間解像度を半分にすれば各 アンゼル・アダムス ( 訳注今世紀初頭に パチャー ( 絞り ) について学習しなければな プリント位置ごとに 4 ドット得られる。ひと 生まれたモノクロ写真の明暗を特長とする らなかった。晴れた日には 1 / 1000 秒の f16 に つのプリント位置にプリントするドット数 び真家 ) の弟了・たちは暗室て、これに関連した カメラをセットする。薄暗い部屋て、フィル を変えれば黒と白の間に 3 種のグレーの陰影 別の名称を使うことを覚えた。彼らは 2 倍を ムに同量の光を当てるには 1 / 8 秒の fl. 4 くら がつけられる。これて、はまだ種類が少ない 1 ゾーンと呼んだ。このゾーンシステムによ いて、撮ればよい。このふたつの露出には 16 , 000 のて、さらに半分にすると , 75DPI の新聞紙程 って印刷業者は対数とか f ストップにわずら 倍の違いがある。目はもっと明るい太陽光 度の解像度て、ひとつのプリント位置に 16 ド わされずに露出を決定て、きるようになった。 にも耐え , かつはるかに暗い状態て、も機能 ットの変化がつけられ , 15 種の中間的なグ プロジェクタを使ったスライドは私たち する。人間の目は , 目に到達する光子の 10 レーの陰影がつけられることになる。 の目が区別て、きる 10 ゾーンを完全に再生す 個のうちの 1 個をとらえて , その光子ひとつ あるプリント位置の単一のドットに 16 種 る。白色グロッシー用紙上て、の写真プリン ひとつに反応可能なのだ。 の異なった表示方法と , さらにもっと多く トは約 8 ゾーンが再生可能だ ( ポスターより の中間的陰影をつける方法がある ( ヒント : 哉別できるゾーン スライドのプレゼンテーションのほうがノヾ パスカルの三角形と組み合わせ論における ンチがあるのはこの理由だ。 ノヾケー・ション その役割を思い浮かべよう ) 。 65536 種の方 のスナップび真なら話は別だ ) 。このような 現状はこのとてつもない広がりをカバー 法を有効利用して 17 の陰影を表現したいと 基準にしたがってコンヒ。ュータディスプレ て、きるようなコンヒ。ュータイメージの作成 したら・・ イやプリントアウトを判定しなければなら からはほど遠い。しかし幸運にも , 必ずし それは可能だ。いつも各グレ陰影ごと ない。光度のダイナミックレンジが不足だ もすべてをカバーする必要はない に同じパターンを使うと人間の目はすぐ に 、 0 18 CMAGAZINE 19 12
PRO-68K Ver.2.0 短期集中連載 最新 C コンバイラレポート C COMPILER 村田敏幸 今年 9 月の上旬 , シャープ X68000 用のメーカー純正総合開発ツール , C COMPILER P 日 0-68K ( 以下 XC ) Ve 「 . 2.0 か発売された。 待望のバージョンアップである。そこで , Ve 「 . 1.0 との比較を中心 に , 多少の私見を交えてレポートしてみたい。 が今回追加されたものてある。そのほかの に従えばよい セット内容 プログラムも軒並バージョンアップされて このインストーラはバッチファイルなが おり , Human68k も現時点における最新の ら , 小さな補助プログラムを利用すること Ver. 2.02 が添付されている ( コマンドの類 て、簡易メニューを実現しており , とくに予 定価は 44 , 800 円 ( 消費税別 ) , Ver. 1.0 が はないが , デバイスドライノヾはフルセット十 備知識なしにインストール作業を進めるこ 39 , 800 円だったから , ちょうど 5 , 000 円のア の。 とがてきる。 ップとなる。セットには 3 枚のディスク ( う XC Ver. 1.0 て、もそうだったが , MS-DOS フロッヒ。ーディスクにインストールする ちライプラリソース 1 枚 ) と , マシン用の C コンパイラに比べれば出荷本数 場合には , 起動用ディスクとランタイムデ ・ C ユーザーズマニュアル も桁違いに少ないだろうことを考慮すれば , イスクの 2 枚のディスクが作成される ( あら ・ C リファレンスマニュアル このポリュームにこの価格設定は驚異的だ。 かじめフォーマットずみのディスク 2 枚を用 ・ C ライプラリマニュアル VOL. 1 まさに , X68000 上てプログラムを作成しよ 意しておく必要がある ) 。起動用ディスクて ・ C ライプラリマニュアル VOL2 立ち上げたあと , ドライプ 0 のディスクをラ うというすべてのプログラマ必携の総合開 ・ソースコードデノヾッガマニュアル 発ツールてある。 ンタイムディスクと交換して使うわけてあ ・アセンプラマニュアル ・プログラマーズマニュアル インストール 実際の使用にあたっては , よく使う DOS の計 7 冊 ( 総ページ数 2500 ページ強 ) のマニュ コマンドもランタイムディスクに入れてお アルが含まれる。 きたいところだが , フルインストールする XC Ver. 1.0 のシステムは 1 枚のディスク 2 枚のシステムディスクには C コンパイラ に収まっていたため , フロッピーベースて とディスクにはほとんど空きがない。起動 本体に加えて , アセンプラ , リンカ , ライ 運用するかぎりインストールの必要はとく 用ディスクはまだ空いているようだから , プラリアン , アーカイバ , ソースコードデ 必要な DOS コマンドは起動用ディスクに入 になかったのだが , Ver. 2.0 はインストー バッガ , ( ふつうの ) シンポリックデバッガ , ル作業を強いる。とはいっても作業自体は れておき , 起動時に RAM ディスクに転送し MAKE, X-BASIC インタブリタ , X-BASIC 簡単てある。システムディスク 1 をドライプ て使うといったくふうも必要だろう。もち → C コンバータ , フルスクリーンエデイタな 0 に入れて X68000 を起動すると , 自動的にイ ろん , ハードディスクがあれば , 何の問題 どの開発ツールが収められている。ライプ ンストーラが立ち上がるのて , あとは指示 もない ラリアン , ソースコードデバッガ , MAKE 最新 c コンパイラレポートⅡ 133
をとっているが , カットアンドベーストな どは先にマウスて、マークをつけてからカッ ト , 必要箇所にカーソルを移動してペース トする方式になっている。処理のほとんど は Edit メニュ—(Fig. 5 ) を呼び出すだけて、よ ただ , 提供されている機能は非常にプ リミテイプなのて、 , 必要と思われる機能は 自分て、マクロ化する必要があるだろう。 テキストはウインドウからクリップポー ドと呼ばれる一時記憶領域に取り込んだり , コヒ。ーしたりすることがて、きる。また , のクリップ飛ードから , 選択したテキスト をほかの場所へペーストすることもて、きる。 画面上にオープンするウインドウの大き さや数を操作するには , View メニュー ( Fig. 6 ) を呼び出し , コマンドをマウスて、クリッ クする。また , 表示されているウインドウ 枠のいちばん下をマウスて、ドラッグすると ウインドウ自体の行数を小さくすることが て、きる。ただし , 両わきのウインドウ枠に ついてはその機能はない ロードされたソースプログラムて、は , Search メニュ—(Fig. 7 ) を使用することがて、きる。 この機能はなかなかよくて、きており , grep 並みの正規表現化されたファイルサーチが 行える。しかも , 工ラーについても同様の サーチルールを適用することがて、きる。 工ディットが終了したらファイルはコン パイル , リンクされる。この Make メニュー (Fig. 8 ) て、は , プログラムのコンパイルやプ ログラムリストの管理がて、きる。 Run メニュ—(Fig. 9 ) を使うと , プログラ ムを実行させ , そのプログラムのデバッグ まて、もがて、きる。また , PWB からユーザ独 自のユーティリテイや市販のユーティリテ ィを利用することもて、きる。ただ , PWB 自 身はエコロジーのように PWB ℃ OM によっ て必要なモジュールをロードしているため , プログラマが作成したプログラムを実行 , 終了すると , PWB は起ち上げ時と同様にま たモジュールをロードし始める。そのため , 19 12 VX などの 16 ビットマシンて、は非常に処理ス 68 CMAGAZINE Fig. 7 Fig Fig. 9 8 Search メニュー Search Menu く Find... 〉 く Selected Text 〉 く Repeat Last Find 〉 く Change... 〉 く FO 「 FiIe... 〉 く Next E 「 ro 「〉 く Previous E 「「 or 〉 く Set E 「「 0 「〉 く Go to Mark... 〉 く Define Mark …〉 く Set Mark File.. 、〉 Make メニュー Make Menu く Compile File: 〉 く Build: 〉 く RebuiId AII 〉 く BuiId Target. く Set Program List... 〉 く Edit P 「 ogram List …〉 く CIea 「 Program List 〉 Run メニュー Run Men く Execute : 〉 く Debug: 〉 く Command Line …〉 テキストを検索します。 すでに選択されているテキストを検索します。 同じテキストをもう一度検索します。 テキストを置き換えます。 ティスク上のファイルを検索します。 次のエラーを含む行を検索します。 前のエラーを行含むを検索します。 カーソル位置のエラーを含む行を検索します。 定義済みのマークを検索します。 ファイル内のマークの位置を定義します。 現在のプロジェクトを終了します プログラムリストのファイルを修正します プログラムリストをセットまたは新しく作成します します プログラムリスト中の指定したターゲットをビルド ドします プログラムリスト中のすべてのモジュールをリヒル す メニューに表示されているプログラムをピルドしま ます メニューに表示されているファイルをコンノヾイルし マークを含むファイルをオープンします。 く Run DOS 0 「 OS / 2 Command …〉 く Customize Menu …〉 ヒ。ードが遅く感じられる。 このとき現れたダイアログボックスて、必要 ronment... > 項目をマウスて、クリックする。 境設定を PWB 自身に知らせるには < Envi 要な項目を設定する。たとえば , PWB の環 10 ) に表示される各メニュー項目において必 定するかを決めるには Options メニュ—(Fig. どの拡張機能をロードし , どこにパス設 に応じて設定するだけて、よい。おそらく , PWB のインストール終了時に最初に設定し なければいけない項目て、ある。 ソースプラウザの機能は PWB の機能を左 右するほど重要な機能て、ある。ソースプラ ウザの機能は , 以下のメニューにもあるよ うに , 複数にまたがって使用されるソース プログラム間のルーチン , 変数 , シンボ、ル 最後にビルドされたプログラムを実行します カレントプログラムをデノヾッグします プログラムのコマンドラインを実行またはテ バッグのために設定します MS ー DOS または OS / 2 の任意のコマンドを 実行します メニューに項目を追加します
OS / 2 プログラマ ハンドブック ( 上 ) テピッド・ E ・コルテシイ著 / 定価 3 , 400 円 「 The Programmer's Essential OS / 2 HAND BOOK 」を邦訳。 旧 M 、 NEC の最新情報をできる限 り付記。 QuickC Ve 2 ℃ プログラミング 本田正隆・三浦義武共著 / 定価 2 , 900 円 主要な機能から、ライプラリ関数、 工ラーメッセージまで網羅した全 C プログラマ必携の書。 MS-DOS の こわい話 おばけ退治のための道具集 伊藤雅俊・小西晃治共著 / 定価 2 , 980 円 MS - DOS のツール集として、異色 のお話とプログラミングを満載 / ティスク付。 入門 タイナワード クイックリファレンスシリーズ IAS 著 / 定価 2 , 200 円 駅ダイナブック″上で推奨されるワ ープロソフト「ダイナワード」の本 格的活用書。 POP 革命 パソコン POP ライター活用術 株マーカス編 / 定価 2 , 400 円 豊富な事例を通して POP 名人の機 能と、 POP 作成のノウ八ウをわか り易く解説。 田原総ー朗の 新パソコン ウォ あなたの知らなかった ' 90 年代パソコンの現実 田原総ー朗著 / 定価 1 , 600 円 日本バソコン界のキーマン 13 人か 田原総ー朗と語るパソコン像。 ソフトバンク SOFT 出版事業部 BANK Readers' R ①① モニタブレゼント BUSINESS TOOL KIT fo 「 C 提供 : クレッセンドカンバニ 1 本 綴じ込みの葉書でご応募ください。 WinATOK/MSATOK 提供 : アンテナハウス WinATOK/MSAT C 言語ライプラリ集 Turbo C PC -9 0 用 PC -988 用 IS-MSC Ve 「 .1.5 1 本 Cmputer LANGUAGE 提供 : サンライズソフト 提供 : C マガジン編集部 1 冊 2 本 USINESS ( OM 灯 [ R LANGUAGE Ⅳれョ″ーわ e ル 55 ? 5 供 GT TRACX 物物 September 画面設計ツール MS-C 用 応募の注意 ◇綴じ込みの葉書に必要事項を記入してお送 ◇プレゼントに当選された方には , 後日アン りください ( アンケートの回答 , 住所 , 氏 ケートなどの形で編集にご協力いただくこ 名 , 電話番号 , 希望プレゼント番号を明記 とがあります。ご了承ください。 してください ) 。 ◇締め切りは 1 1 月 20 日 ( 必着 ) です。 ◇記入もれやプレゼント番号が複数記入され ◇あて先〒 108 東京都港区高輪 2 ー 19 ー 13 ている場合 , 綴じ込みの葉書以外でのこ応 NS 高輸ピルソフトバンク株 「 C マガジン」編集部モニタブレゼント係 募は無効とさせていただきます。 ① Programming on Purpose ⑩ 応用 C 言語 ② 提携翻訳 ⑩ C 言語フォーラム ③ ⑩ ANSI C ー more 提携翻訳 綴じ込み葉書裏面の ④ フリーソフトウェア最新レポート⑩ C 言語入門講座 記事評価アンケート ⑤ Book Review ⑩ プログラム添削 には下記こ ⑥ Digest Of CL ⑩ 最新 C コンパイラレポート 記入ください。 ⑦ 特集 MS-C 6.0 ⑩ ショートインタビュー ⑧ オプジェクト指向への招待 ⑩ GNU 奮闘記 ⑨ 新 MS-DOS 入門 ⑩ 書店レポート ⑩ 実践 C プログラマ養成講座 ⑩ lnforrnation from CompilerMakers 166 CMAGAZINE 1990 12
を再定義していきます。また , C 十十て、は , ます。これを用いれば , OS/2 PM や Windows のような , ウインドウやメニューを扱うこ ℃〃て℃言語の関数を参照することがて、き ます。このような形て , C や PASCAL など とがて、きます。 われわれはあらゆる種類のクラスライプ のコードが混在した , ハイプリッド言語と ラリを数多く提供していきたいと考えてい いうのも , OOP の今後として考えることが ますが , サードノヾーティのクラスライプラ て、きます。 これまて、の資産はムダに リにも注目しなければならないと思ってい いずれにせよ , ならないのて、す。 ます。 OS/2 PM や Windows のサポートも重要て、 学習のホイントと すし , BGI そのものも拡張していく必要があ 00P の普及 「自然な形で 00P 言語が主流になるだろう」とキ酎商する David 氏 ります。また , BGI ドライバの情報を公開し ていますから , より高解像度て、高性能なド 続いて , OOP 言語を学習するポイント や , ホビーユーザについてのコメントなど ライバが外部て、も開発されています。今後 のライプラリを資産として蓄えていること もこのような状況が続くて、しよう。 と思いますが , それらを捨ててまで 00P に を求めた。 クラスライプラリの著作権については 乗り換える価値はありますか。 zack OOP は構造化プログラムを基本にし ところで , C 十十と PASCAL with どのようにお考えですか。基底クラスにつ ていますから , この移行は自然に行われる Objects の違いは , なんだとお考えですか。 いての著作権は派生クラスにまで波及する zack 既存の言語て OOP を実現するという と思います。これまて、の C や PASCAL のラ のでしようか。 意味て、 , 両者はよく似ています。 C 十十て、て、 イプラリをそのまま使えるならいいのて、す zack C 十十にしても PASCAL にしても , きないことて、 , PASCAL にて、きることをあ われわれやサードバーティの提供するライ が , 既存の方法て、は継承性に問題がありま プラリの上に , ぜひとも , オプジェクトを げれば , ポインタを使うことなく , コンパ すから , OOP に乗り換える価値は十分ある イラによって割り当てられたメモリの中に 構築していただきたいと考えていますし , と思います。 オプジェクトのスタックを簡単に生成て、き そういう状況が望ましいと考えています。 これまて、も , 再利用可能性のためにさま ざまな努力がはらわれていますし , アプリ David OOP< は , 継承 , 多義性という機能 るということがあります。 ケーションの種類によっても変わってくる それはともかく , やはり , PASCAL のほ によって , ライプラリの再利用性が大幅に のて , 具体的な数字をあげるのは難しいの うが学習しやすいといえます。 改善されています。特定の場合にあてはま て、すが , 一般的に , OOP によって構造化プ 能力としては , C 十十のほうが , 多重継承 るように , ライプラリを変更 , 再定義する がてきる点て、上て、す。しかし , PASCAL with 場合ても , OOP ならば , これまて、よりも , ログラミングよりも 50 % くらい また , ラ イプラリを使うことて、 , 80 % くらいの効率 Objects にも , コンストラクタ , ディストラ すっとやりやすいと思います。 クタ , 仮想関数などの機能がありますし , ードウェアの場合に , 秋葉原にいって 改が期待て、きると思います。 APPLE の Object PASCAL( 注 7) の機能も備 IC を購入するように , ソフトウェアの場合 David OOP ては , オプジェクトそのものに も , クラスライプラリというソフトウェア 焦点をあてて開発て、きるのて , 応用に捕ら えています。 David PASCAL 対 C 十十とは考えたくあり の部品を店頭て、買い求めるという状況が将 われず , それだけ生産性が向上すると思い ません 0Turbo PASCAL は OOP 言語として 来は考えられます。 ます。 こういう意味て、 , われわれは派生オプジ 今後発展することと思いますし , C 十十も ソフトハウスにとって , 構造化プログラ ANSI X3J16 における標準化委員会の動向 ェクトには一切著作権を主張いたしません。 ミングから OOP へどのように移行するかが を見守る必要があります。 というのも , OOP の目的のひとつは , 基底 重要になってきますが , 理想的には , 全部 さらに , クラスライプラリをて、きるだけ 最初からやり直すことてす。あるいは ,$OOP オプジェクトを保護することにありますか Wrapper" という方法がありまして , オプ 共有していくことが必要だと思います。 ら , それから拡張されたところは , リバー れは , ポーランド社としてだけて、はなく , ジェクトの中のメンバ関数から , 既存の C の スエンジニアリングのようにとらえるべき ライプラリを呼び出すというように , 既存 業界として考えていかな村ればならない問 て、はないと思います。 のライプラリを包み込む形てオプジェクト ソフトハウスなどは , これまでに独自 題てす。 Conference Room 145
実行タスクの決定やデータの実体化がコン パイル時点て、なく実行時 ( ランタイム ) に行 われること〕。 ポインタは何て、もポイントて、きるのて、 ( た とえばオプジェクトて、もクラスて、も ) , コン パイル時にはタイプや個数のわからない ( デ ータとメソッドからなる ) オプジェクトのリ ストを , ( ポインタを利用して ) プログラム 中に構築てきます。この設計により , 新た なタイプをランタイムに加えて , それらの タイプに対してメッセージを送るというプ ログラムが可能て、す。そのとき , そのタイ プがメッセージをどう処理するかの詳細は , 知らなくてもよいのて、す〔訳注 : OOP にお ける、、プログラマ〃は , オプジェクトの定 義・実装を行う側と , それらをたんにアプ リケーションソフト用に活用する側とにわ かれます。本稿て、は , 両者の区別が曖昧な のて、注意してください。 OOP によって、、実 装詳細を知らないて、よい〃タイプのラクチ ンて、きるのは , おもに後者のほうて、す。逆 に実装プログラマには , すて、にアプリが使 っているオプジェクトの拡張にあたって , 少なくともインタフェイスの構造だけは下 方互換にしなければならない , という、、義 務クが生じます〕。 メッセージは関数コールに似ていますが , 重要な違いがひとつあります。メッセージ は一般的て、すが , 関数コールは特定的て、す。 プログラムは同一のメッセージをランタイ ムに複数のオプジェクトに送れます。この ことは多形性 (polymorphism, 同一種の生物 が環境などの違いに応じてさまざまに違う 形質や行動をとること ) と呼ばれ , これを利 用して複雑て、柔軟性に富んだプログラムが 設計てきます。複雑なオプジェクトを作る とき , ( アプリケーションの ) プログラマは 必要な道具 ( タイプやオプジェクト ) の細部 を知る必要はなく , 将来の変更を懸念する 必要もありません。オプジェクト指向言語 によって私たちは , 状況の変化に適応して いけるプログラムが書けるのてす。 11 : end : それぞれのオプジェクトは , 単純 ( たとえば ツリーを考えるとわかりやすくなります。 な複雑なオプジェクトは , 家系図のような ひとつのプログラムやモジュールのよう 洗濯て、きるようになるのて、す。 一緒に ( 手袋に合った洗い方 = メソッドて、 ) garments の集合に手袋を加えると , それも 変更せずにプログラムの拡張がて、きます。 うにプログラムを設計すると , 基本設計を 送ることがて、きます。多形性を利用するよ ツを洗え」 , 「靴を洗え」などのメッセージを ように行われるのか知る必要もなく , 「シャ オプジェクト指向言語て、は , 洗濯がどの って違います。 が , その方法は garment の特定のタイプによ 、、 wash 〃は garments が共通にもつ概念て、す ますが , 帽了・と靴て、はその方法が違います。 ます。 garment は、、 wear" ( 身につける ) し シャッ , ズボン , 帽子などて、少しずつ違い は、、 wash" ( 洗濯 ) しますが , 洗濯の仕方は ド ) をもっことがて、きます。たとえば garment 的に類似した複数の振る舞い ( ないしメソッ 複数の複雑なオプジェクトはまた , 概念 をもっています。 うと各タイプは , 共通の性格 ( ないしデータ ) は garments の特定のタイプて、す。簡単にい ツ ),pants( ズボン ), hats( 帽子 ), shoes( 靴 ) ( 衣類 ) は複雑なタイプ , そして shirts( シャ 定的な ) タイプに分類して扱います。 garment いしタイプ ) を , より単純な ( またはより特 一般的に私たちは複雑なオプジェクト ( な データだけ ) だったり , 複雑 ( たとえばデー タ十メッセージ ) だったりします。複雑なオ プジェクトは , べースオプジェクトの場合 もあるし , 派生オプジェクトの場合もあり ます。べースのオプジェクトがツリーのル ートになり , 派生オプジェクトが枝になり ます。 ひとつのツリーにひとつのプログラム ( 大 きなオプジェクト ) があり , そのツリーの各 ノードにプログラムモジュール ( 小さなオプ ジェクト ) があります。モジュールがさらに 小さなオプジェクトからなっていれば , そ のモジュールもツリーと見ることがて、きま す。オプジェクトには自分の内部データと インタフェイスがあり , 後者を介して私た ちはアクションや情報をリクエストします。 私たちはオプジェクトに ( たとえばプログ ラムを実行せよなどの ) メッセージを送り , オプジェクトはそのメッセージにもとづい てタスクを実行します。こういうオプジェ クト用のコードは , 自分て、書いてもよいし , 誰かが作ったライプラリを利用することも て、きます。オプジェクトと , それに送るメ ッセージからなるプログラムは , 変更や拡 張が容易て、す〔訳注 : このように , オプジ ェクトを擬人化して書く方法が , 初心者に 対して , 長年にわたって , オプジェクト指 向プログラミングを不必要に難解化してい ます。、、オプジェクトがタスクを実行する などの擬人化されたいい方を , 物理的な実 態に即して正しく書くならばそのオプジ List 1 : 3 : 4 : 5 : 6 : 8 : 9 : 1 { 特定のプラウザが入る } program ℃ lbrowse; 2 : uses CRT, DOS, nodes2, cell ist; type StringPtr ー String, Browser い stPtr Browser し ist; 7 : Browser い st = 0bject(AnyType い st) constructor init; destructor done; virtua l; procedure GetNodes; virtual; 13 : DispIayStrPtr DispIayStr; 14 : DispIayStr ニ object(AnyType) C 十十や pasc 引にもプラウザ環境を 21
て、き , マクロとしての機能も兼ね備えてい マクロの登録は , まず Edit メニューをマウ スて、クリックする。現れた < SetRecord … > 項目を再度クリックし , マクロ名を登録す る。 < Set Record > コマンドはマクロを登録 し , マクロ名およびショートカットキーを 定義することがて、きる (Fig. 13 ) 。 CIearFirst を選択しないと , PWB はすて、 に存在するマクロに新しいコマンドを追加 する。自動的にショートカットキーを割り 当てるには , カーソルを { } の中に位置さ せ , マクロに割り当てる実際のキー ( または キーの組み合わせ ) を押す。正しくキーが割 り当てられると , 押したキーの名前が角カ ッコ ( [ ] ) 内に表示される。たとえば CTRL 十 f ・ 6 を割り当てるには , ーキーと f ・ 6 キーを同時に押す。もし , 認められたら CTRL および f ・ 6 が角カッコ内に CCTRL 十 f ・ 6 ] 表示される。これて、 , マクロ名が登録され た。今度はこのマクロに実際の操作を登録 する。 < Record On > コマンドを使うとマクロ 登録が可能になる。実際にマクロを登録す るには < Record On > を選択し , 登録した い操作をエデイタ中て、行う。く RecordOn > をマウスて、クリックすると , マクロ登録可 能状態になるが , そのときの目印としてス テータスラインに X が表示される。したがっ て , X が表示されているときはマクロの登録 中と思ってまずまちがいない。 < RecordOn > をもう一度選択すると登録が終了する。っ まり , 終了とともにステータスラインの X も 消え , マクロの登録が完全に終了した を知らせてくれる。 マクロ登録中にはヘルプ関数とマクロを 呼び出せない点は注意すべきて、ある。さら に , Record 関数はマウスをクリックしたた めに生じるカーソル位置の変化は登録しな ことも知っておく必要がある。マクロに カーソルの動きを含めたいときは , キーボー ドを使うことて、ある。そうすればカーソル 70 CMAGAZINE 19N 12 の動きを登録て、きる。 マクロがすて、に定義されているときは , 新しいコマンドがそのマクロに追加される。 マクロ定義を完全に置き換えるには , Set Macro Record ダイアログボックス内の Clear 環境変数の取り扱い First を使用する。 ELPFILES 環境変数 から , HELPFILES 変数て、設定されたディ カレントディレクトリを最初にサーチして QuickHELP も同様て、ある。サーチルールは 定するために必要な環境変数て、ある。また , されたが , そのドキュメントファイルを指 PWB には , オンラインヘルプがサポート なる。 トリの次に INIT 変数のパスを調べることに 変数が登録されていればカレントディレク ルじ、 する。存在しなければそれまて、だが , INIT リを調べ ,TOOLS. INI ファイルの存在を確 PWB は起ち上げられたカレントディレクト もし , INIT 変数が設定されていなければ INIT 変数が必要になる。 ファイルの存在を PWB に知らせるために ど説明する。この起ち上げ時に TOOLS. INI TOOLS. INI ファイルの詳細については後ほ INI ファイルを読み込むようになっている。 PWB のデフォルト起ち上げて、は , TOOLS. 江環境変数 にとって必要というわけて、はない ァイルて、ある。ただ , TEMP はとくに PWB あくまて、も PWB を使用するために必要なフ もいくつか設定する必要があるが , これは 6.0 にとって必要な環境変数は , これ以外に STS ファイルのふたって、ある。 MS—CVer. を記述してある TOOLS. INI と CURRENT. HELPFILES, TEMP の 3 っとシステム情報 PWB にとって必要な環境変数は INIT , レクトリをサーチする。 TEMP 環境変数 TOOLS コファイル 起動時には TOOLS. INI とともにこの CUR などの情報が格納される。しかも , PWB の えば , 使用したファイルやカーソルの位置 RENT. STS ファイルに書き込まれる。たと PWB の終「時に作業環境情報が CUR LJ 日 RENT. STS ファイル はめている。 リネームして使用するようにマニュアルて、 後はこのファイルを TOOLS. INI ファイルに ファイルが提供されており , インストール ない。ただ , デフォルトとして TOOLS. PRE したときには TOOLS. INI ファイルは存在し ちなみに MS-C Ver. 6.0 をインストール ないファイルて、あるといえるだろう。 映される。カスタマイズにはなくてはなら ときに TOOLS. INI ファイルにもすぐさま反 み込んて、おり , また変史があれば SAVE する 起ちにげのたびに TOOLS. INI ファイルを読 ールについて記述する必要がある。 PWB は なくとも MS—CVer. 6.0 のすべてのモジュ ファイルはそれほどのものて、はないが , 少 をどこかに記述する必要がある。 TOOLS. INI るためにもなんらかのシステム関連の情報 て、きるため , すべてのモジュールを管理す のすべてを PWB から一度に使用することが ろなモジュールがサポートされている。そ MS-C Ver. 6.0 には , PWB を含めいろい 題なさそうて、ある。 ないだろう。 TEMP 環境変数は TMP て、も間 ンボラリディレクトリとして使わない手は プなどを使用している場合には , それをテ くなるというものて、はないが , 仮想ドライ 数は指定しなくてもとくに PWB が稼働しな プのディレクトリを使用する。この環境変 用するために , TEMP て、設定されたドライ PWB は一時的なテンボラリファイルを使