MS-C Ver,6. 旧 特集 MS-C に 6.0 に見る OS, 々プログラミング開発環境 海老原浩之 MS-C Ver. 6. O ては次世代の OS といわれる OS / 2 対応の強 化拡充も , その特長のひとつである。この SectionC は DLL とランタイムライフ、ラリを中心に OS / 2 対応機能を見る。 強化された DLL とマルチスレッド ランタイムライプラリの強化点 DLL についていえば , マルチスレッド DLL プレセ、ンテーションマ不ジャ—(PM) 用の 化を実現した点が最大の改良点といえるだ ライプラリや OS / 2 のプロテクトモードて、テ 今回の日本語版 S ー CVer. 6.0 は , さま ろう。 Ver. 5.1 て、は DLL とシングルスレッ キストを扱うためのライプラリが追加され ドの組み合わせはて、きたが , マルチスレッ ざまな面て、機能が強化改良されているが , た。これらは SETUP プログラムて、 MS ー C Ver. ドの組み合わせはて、きなかった。しかし , 6.0 をインストールするときに選択て、きるよ OS/2 に対してもかなり強化改良されてい る。実際に , どのような点が強化改良され うになってる。 Ver. 6.0 からは DLL とマルチスレッドの組 み合わせが可能になった ( マルチスレッド PM 用のライプラリは Ver. 1.1 用と Ver. ているのか , また , MS—C Ver. 5.1 から Ver. 1 . 2 用とがあるが , インストール時にはどち 6.0 の改良点などを簡単て、はあるが説明して DLL)O また , DLL 作成時のコンパイルオプショ らかひとっしか選択て、きない また , マル おこう。 チスレッドを使ったプログラム作成につい 現時点て、は , 製品版の MS-CVer. ンがひじように簡略化されている。 6.0 はなく , テスト評価用のべータ版しかな さらにスレッド数が増加されていて , Ver. ても , インストール時にマルチスレッドに いため , 実際に発売された製品版との誤差 5.1 て、は , 実行時にサポートされるスレッド 対応したライプラリを作成するカ′どうかが 選択がて、きるようになっている。 OS / 2 て、の 数は最大 32 て、あったが , Ver. 6.0 て、はオペ がありうることを先にお断わりしておく。 レーティングシステム (OS/2) の限界にまて、 ライプラリのサポートはコンパイラ (CL) の オプションて、実現され , オプション指定に 達した。 よって必要なライプラリがリンクされる。 マルチスレッドを使ったプログラムのコ たとえば , / MT オプションを指定すれば LLIB ンパイルも DLL 作成と同様て、あるが , コン 今回の MS-C Ver. 6.0 て、の OS / 2 に対する CMT. LIB がリンクされる。同様にして DLL ぐイル時のオプションが簡略化されている もサポートされている。以下にライプラリ 最大の機能強化点として , OS / 2 のプログラ 直は , プログラマにとってきわめて好まし い開発環境の実現といえる。煩雑なオプシ ム作成ためのダイナミックリンキングライ 選択オプションを挙げる。 プラリ ( DLL ) やマルチスレッドなどの対応改 ョンをカスタマイズて、きることは非常に使 /MT 当然のことながら , Ver. 6.0 マルチスレッドライプラリオプション が挙げられる。 い勝丁・がよい これに対応して , コードビュ—(CV) もマ て、搭載された Programmer's Work /ML Bench(PWB) からも簡単に操作て、きること ルチスレッドや DLL て、のデバッグをしやす DLL 構築用 C ランタイムライプラリ くるために改良されたことは大いに評価て、 て、 , Ver. 5.1 に比べ DLL の生成が格段に容 /MD DLL 用ランタイムライプラリ きるだろう。 易になった。 特集 MS-C Ver. 6.0 研究 51 は、、めに OS / 2 における機能強化 ↓
TabIe 1 MS-C Ver. 5.1 と MS-C Ve 「 . 6.0 の比較 とにより , Build Option て、コンパイルオプ ランタイムライプラリ ションの登録 , 呼び出しによりマルチスレ OS / 2 Ver. 1 .0 と Ve 「 . 1 . 1 のサポート ッドを使ったプログラムや DLL などの複雑 OS/2 Ver. 1 .2 の HPFS のサポート なプログラムなどを簡単にコンパイル , リ OS / 2 での DLL の作成 ンクすることがて、きる (Fig. 3 ) 。今回からマ マルチスレッド EXE の作成 イクロソフトエデイタはなくなり , 代わり マルチスレッド DLL の作成 に PWB がエデイタも兼ねる形になった。当 テキストウインドウ関数 , FONT サポート 然マイクロソフトエデイタて、て、きたアドバ イザ機能を使うこともて、きる。デバッグて、 OS / 2 関連 は , PWB から CV を使うことも可能てあり , シングルスレッド AP のテノヾッグ 工ディット , コンノヾイル , 実イ - 丁 , デ、ノヾッグ 〇 DLL のテパッグ と一連の開発は楽になった感がある。 マルチプロセス AP のテパッグ 開発を容易にするもうひとつの要因とし 複数ソースファイルの表示 てマイクロソフト C アドバイザと QuickHELP プログラム内のモジュール表示 の標準サポートが挙げられる。今まて、は , 〇 ミックスソースとアセンプラソースの表示 OS / 2 のソフトウェア開発キット (SDK) にし -CVer. 6.0 を動作させるために必要なシス て、の比較を Table 1 に示したのて、参照して か添付されていなかったが , Ver. 6.0 て、は テム条件をまとめよう。 ほしい (MS- ℃ Ver. 6.0 TECHNICAL SHE 標準て、サポートされた。 Quick HELP の基 CPU が 286 以 I•. の PC ー 9801 シリーズ , PC ET のコンパリゾンチャートより引用 ) 。 本的な操作は SDK 付属のものと同様て、ある ー 98 シリーズ なお README. DOC に , OS/2 のアプリケ が , Ver. 6.0 のアドノヾイザはマイクロソフ OS/2 Ver. 1. IA 以上。 ーションの開発をするにあたって , BIND. トエデイタがなくなったのて、 , PWB から扱 RAM 4.5M バイト以上 ( 空きメモリと EXE, lnclude FiIes は , MS—C Ver. 6.0 の うことになる。 して IM バイト以上が必要 ) パッケージに含まれているものを利用する 12.5M バイト以上の HDD と FDDI 基 ようにとの注意書きがあった 私がインストールした環境としてハード 以 l•., MS-CVer. 6.0 における OS/2 E て、 ディスクの総谷 , およひディレクトリご のプログラミング開発環境について , 簡単 との容を Table 2 に示したのて、 , インスト に説明してきた。 OS/2 プログラミングする ランタイムライプラリならびに OS / 2 関連 ールの参考にしていただきたい l•て、の参考・になればいて、ある。最後に MS 項目について , MS-C Ver. 5.1 と Ver. 6.0 Table 2 MS-C Ver. 6. Ok のティリクトリことの容量 Fig. 3 Build Option てのコンノヾイルオプションの登録 ノヾイト数 ティレクトリ 854K バイト B 爪 B 「、 : 子ロ・に自上「物 4 : 鷲 1 卞「Ⅱ『に . 「 2646K バイト BINP Set lr ⅱい日一ⅱ国リい 0n5 2218K バイト 547K ノヾイト INCLUDE 4K ノヾイト 2331 K ノヾイト HELP 393K ノヾイト SOURCE 10K ノヾイト DLL これらは SETUP プログラムに従し嚇築したものである。 PM ライプラリは Ver. 1 . 1 を尺、グラフィックライプラ リはあり、マルチスレッドライプラリあり、すべてのメ モリモデルのライプラリを指定 Ver. 5.1 Ver. 6.0 〇 ( DOS は〇 ) 〇〇〇〇〇〇 ( OS / 2 & DOS 〇 ) 〇〇 x x x Ver. 5.1 と Ve 「 . 6.0 の 比較および注意点 ー今乍イ社。 ~ 新いん洋をを応羸 Eefault OPt iO DOS EXE CIJ'I 8 飢に EÆ Ⅲ E>E Ⅲ加旧 DLL / 2 Full Screen EXE CS / 2 明 0 EXE / 2 リ田 n.llti-threaded EXE 。・ 2 明 0 山 lt i-threaded DLL 〔 / 2 Presentation 物 naae 「物はト th 「縮 d 司ビ、と を偽 / 2 Presentation 物「引い -threaded PLL 6 師旧 Extension をシ 2 es を nt 己い引 - 巳、 E を く C 印引 ) 第 . 6 トをの Enter E 冫 40 い Ta し 4 を xt 印引 d 54 CMAGAZINE 19 12
デフォルトライプラリ禁止オプション 今回新しく追加された GRTEXT. LIB は , OS / 2 て、使う DOS グラフィックスライプラリ のサプセットて、ある。このライプラリを使 うことによって , テキストモードグラフィ ックス関数をもちいて , OS/2 と DOS の両方 て、動作するプログラムを作成することがて、 DMBITMAP. H PMDDI.H ためには , あらかじめソースプログラムに GRAPH. H をインクルードしておく必要がある。 参考まて、に NEC の OS/2 Ver. 1.1 のソフ トウェア開発ツール (SDK) の内容と MS-C Ver. 6.0 内容を比較したものを Fig. 1,Fig. 2 に小す。 3.0 へバージョンアップされた C0deView MS-CVer. 6.0 に搭載された OS / 2 版コ ードビュ—(CV) も Ver. 3.0 へバージョンア ップされた。これにともない PM アプリケー ションやマルチスレッドを使ったアプリケ ーション , ダイナミックリンクライプラリ , マルチスレッド DLL をデバッグて、きるよう になった。いうまて、もなく CodeView3.0 は プロテクトモードをサポートする。これら の機能を使うためには CONFIG. SYS て、 IOPL = YES とあらかじめ指定しておかなけ きる。 Fig. また , このライプラリの関数を使う 1 NEC OS / 2 Ver 1 . 1 の SDK のティレクトリ構造 52 SDK CMAGAZINE 1990 ・ 12 日引 N BIND. EXE MKMSGF. EXE RCPP. EXE PBIN H 21NC. EXE MAPSYM. EXE MSGBIND. EXE OS2STUB. EXE RCPP. ERR HELPMAKE. EXE MARKEXE. EXE RC. EXE OH . EXE FONTEDIT. EXE DLGBOX. EXE ICONEDIT. EXE NCLUD BSE. H BSESUB. H PM . H PMDDIM . H PMORD. H GRPCALLS. H BSEDEV. H 0S2. H PMAVIO. H PMDEV. H PMSHL. H KKCAPI. H BSEDOS. H OS2DEF. H PMFONT. H PMSPL. H USRFNT. H BSEERR . H OS 2 N LS. H PMWIN . H PM G 円 . H A 円 . L 旧 0S2. L 旧 OS2NLS. L 旧 APILMR. OBJ AMPLE DLL PM 引 0 く D 旧〉 HELLO く D 旧〉 SNAP く D 旧〉 EDPLINE く D 旧〉 MAKESAMP. BAT BASE BIGBEN く D 旧〉 SHARE く D 旧〉 CALC く D 旧〉 MDI く D 旧〉 WMCHAR く D 旧〉 MAKESAMP. CMD MAKEALL. BAT CPGREP く D 旧〉 SUSPEND く D 旧〉 CLK く D 旧〉 NLSSAMPL く D 旧〉 DLGSAMP く D 旧〉 MAKEALL. CMD README PIPES く D 旧〉 TERMINAL く D 旧〉 GMSAMPLE く D 旧〉 README README. SDT C 510. H LP QH . H LP SUBCALLS. HLP 0S2. HLP MSHELP. DLL MASM. HLP GP ℃ ALLS . HLP WINCALLS. HLP DOSCALLS. HLP OVERVIEW. HLP README. HLP
特集 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
MS-C に 6.0 概要 Ver. 5.1 から Ve 「 . 6 ℃へのバージョンアップにともない ~ 多 の機能か強化・追加された。この Part では MS-CVer. 6.0 に 盛り込まれた主要機能について , その概要を紹介する。 Programmer's Work Bench のアウトライン 柏原正三 MS-C Ver. 6.0 の開発環境は P 「 ogramme 「 ' s Work Bench を中 心として構築されている。この Section ては Programmer's Work Bench の中核をなすプログラマズエテイタをメインに そのアウトラインを見る。 動的にメイクファイルを作成し , ファイル ーロ : 1 より鮮明になったといえる。つまり , 重厚 = WB のプロジェクト指向と 依存関係を自動的に検査する。また , ター な独並開発ツール群をひとつの統合環境ド スタマイズ指向 ゲット・アイル単位に管理情報ファイルを にとりまとめた技術力においては , 両者間 もち , コンパイルオプション , リンクオプ のレベルに格段の差がある。 PWB て、はプログラマズエデイタ , ション , ライプラリ選択をクイックデフォ Programmer's Work Bench(PWB) を文 ルトに設定て、きる。さらに , ビルドオプシ 字どおりに解釈すると「プログラマのため CodeView, コンパイラ , リンカ , ョンて、は , デバッグオプションとリリース NMAKE, ソースプラウザ , マイクロソフ の開発作業環境」となるが , その目的とす オプションを個別に管理保持して切り換え ト C アドバイザといったものの統合化が実現 るところはプログラム開発にまつわる環境 使用することもて、きるのて、ある。 されている。この統合化を前提にプロジェ の整備 ( 統合化 ) と管理 ( ツールマネジメン これらの管理機能によって , プログラマ クト指向の作業環境を創出している点に ト , ファイルマネジメント ) を開発プロジェ は環境管理を PWB にゆだね , 本来のプログ PWB 最大の特長があるといっても過言て、は クトオリエンテッド ( プロジェクト指向 ) に ラミングに専念て、きる。 ない。 PWB にはプロジェクト指向をささえ 実現し , プログラマに最適な作業環境を提 さらに PWB においては , プログラマの要 るツールマネシメント , ソースファイルマ 供することにある。 求に応じた段階的なカスタマイズも可能だ。 ネジメントなどの管理機能が組み込まれて PWB て、は従来の QuickC て、実現されている PWB のカスタマイズの幅と深さはきわめて いるのて、ある。 「統合開発環境」という考え方が継承され 大きい。 QuickC 圧換レベルから , 高いスキ ているが , 本来別個の開発環境の統合化が たとえば , Make メニューて、は PWB が自 42 CMAGAZINE 19 12
特集 MS-C 研究 Ver. 5.1 から Ver. 6.0 へ , 今回の MS ー C の進化 はたんなるバージョンアップにはとどまらな い。 MS-C Ver. 6 . 0 は Ver. 5.1 で謳われてい た「 Optimizing Compiler 」から「 Professional Devel 叩 ment System 」へと姿を変えて登場し た。 C コンパイラとしての完成度の追求は当然 のことながら , 真に目的とするところは効率 の高い統合開発環境の提供にある。 特集 MS-C V 部 . 6.0 研究 41
WinATOK/MSATOK バージョンアップ アンテナハウス株 アンテナハウス株は「 WinATOK Ver. 1.0 」のバージョンアップを行い , 「 WinATOK/ MSATOK 」の発売を開始した。 MS-WINDOWS 上て使用可能な日本語 FEP は , MS-KANJI や KATANA などごく 少数てあるが , WinATOK はジャストシス テムの日本語 FEP てある ATOK6 および ATOK7 を MS-WINDOWS 上のアプリケー ションソフトから利用可能にする日本語 FEP ユーティリティ。また MSATOK は , ジャス トシステムの日本語 FEP てある ATOK6 およ び ATOK7 を , カナ漢字変換仕様を満たして いるアプリケーションソフトて利用するた めのユーティリティ。 WinATOK は WINDOWS 中からファイル 名をダブルクリックするだけて起動し , ATOK の使用が可能となる。 Ver. 2.0 ては起動時 オプションの指定を継承し , ー十ファ ンクションキーに割り当てられた入力環境 設定や固定入力などが利用てきる。 MSATOK は , マイクロソフト社のカナ漢 字変換仕様 ( MS ー KANJI ) に対応したアプリ ケーションて ATOK6 / 7 を使用可能にする。 機能は ATOK6 / 7 のまま。 く対応機種 > ・ PC ー 9800 / PC286 / 386 シリーズ < 価格 > 9 , 800 円 問い合わせ先アンテナハウス 〒 102 東京都千代田区麭町 3 ー 1 ー 8 根岸ビル TEL 03 ー 234 ー 9631 「作ろうシリーズ」新製品 工フ・エー・システムエンジニアリング株 工フ・エー・システムエンジニアリング 株は , 作ろうシリーズに新しく「小遣い帳を 作ろう」と「らくがき帳を作ろう」の 2 製品を C MAGA ョンアップによりすべて 1.5 となる。 アップし , 販売を開始した。今回のバージ -MSC 」 , 「 IS-QC 」 , 「 IS-TC 」をバージョン サンライズソフトは , 画面設計ツール「 IS サンライズソフト バージョンアップ 画面設計ツール旧シリーズ TEL 0899 ー 31 ー 2886 〒 790 愛媛県松山市北藤原町 1 ー 26 工フ・エー ・システムエンジニアリング株 問い合わせ先 「らくがき帳を作ろう Ver. 1.0 」 9 , 800 円 8 , 600 円 「小遣い帳を作ろう Ver. 1.0 」 < 価格 > ・ MS-DOS 3.1 以上 ・ PC ー 9800 シリーズ < 動作環境 > 用する場合は不要。 いる簡単シリーズが必要だが , そのまま使 なお , コンパイル , リンクには使用して マウスが必要。 など基本的な機能はすべて装備。操作には , セープ , ロード , 枠表示 , マウス感度設定 描 , 線 , 矩形 , 円 , 塗装 , 消去 , コヒ。ー 単 Ver. 1.0 」を使用して作られている。点 「マウスが簡単 Ver. 1.0 」「ハードコピーが簡 簡単 Ver. 2.0 」「ウインドウが簡単 Ver. 1.0 」 る。「らくがき帳を作ろう」は , 「キー入力が する毎日の予算と決算を 3 か月分登録て、き 1.0 」を使用して作られている。 13 項目に対 ドウが簡単 Ver. 1.0 」「グラフが簡単 Ver. 単 Ver. 2.0 」「印字が簡単 Ver 2.0 」「ウイン 「こづかい帳を作ろう」は , 「キー入力が簡 パイルて、きる。 サポートされるすべての C コンパイラて、コン スから構成されている。「簡単シリーズ」て、 ズ」を使って作られた基本機能ソフトとソー 「作ろうシリーズ」は , 同社の「簡単シリー 加え , 発売を開始した。 「 IS-MSC 」 , 「 IS-QC 」 , 「 IS-TC 」は , それ ぞれ Microsoft C 用 , QuickC 用 , Turbo C 用の画面設計ツールて , 各種 C 言語て、使用す る入出力画面を簡単に設計 , 作成てきる。 IS シリーズは , 各種の C 言語対応の画面入力 部のソースをワープロ感覚て作成てき , グ ラフィックによる画面の設計がてきる。お もなバージョンアップの内容は次のとおり。 ・マウス対応 ・ユーザ独自の機能追加が可能 ( オンライン ヘルプ , 日本語 FEP など独自の機能の利 用が可能 ) ・グラフィック描画部分は , 独自のライプ ラリと各種コンパイラ付属のグラフィッ ク関数ライプラリの両者の利用が可能 く動作環境 > ・ PC ー 9800 シリーズ /FMR シリーズ /PanacomM シリーズ ・ MS-DOS Ver. 2.0 以上 ・ MS-C Ver. 5.1 ・ QuickC Ver. 2.0 ・ Turbo C Ver. 1 . 5 以上 < 価格 > パーソナル版 37 , 000 円 プロフェッショナル版 98 , 000 円 問い合わせ先サンライズソフト 〒 780 高知県高知市朝倉戊 1077 ー 6 TEL 0888 ー 40 ー 3346 インテリジェントアプリケーション ジェネレータ コンピューターソフトウェア開発株 コンヒ。ューターソフトウェア開発株は , ウインドウ画面のアプリケーションを操作 簡単なインタフェイス ( 画面入力 ) と C 言語に より開発作成するアプリケーション開発ツ ール「 I-Object 」を発売した。 「 I ー Object 」は , 開発するアプリケーション ウインドウ , メッセージ , デ のメニュー ータベース , 操作手順 , 処理手順などの仕 News square 153
ことにより , リンク速度は向上したようて、 あるが , アセンプラ部の低速さて、相殺され てしまっている。単品の AS. X のファイルサ イズが Ver. 1.0 の数倍になっているところ 一 0 あり を見ると , どうやらアセンプラ ( 部 ) は C て、全 面的に書き直されたらしい。結局トータル 2.14 1 .00 1 .38 whet. C て、見ると , コンパイル / リンク時間は Ver. 1.0 1 .78 1 .00 SPlro. C よりも長くなっている。 C ソースよりも , コ 1 .06 1 .30 1 .00 getchar. C ンパイル過程て作成されるアセンプリソー 1 .07 1 .45 lowio. C 1 .00 スファイルの大小がコンパイルの総時間に 1 .07 p 「 intf. c 1 .00 1 .39 大きく影響するようて、ある。 いくっかのプログラムを Ver. 1.0 と Ver. 1 .39 1 .00 1 , 09 St 「 . C 2.0 てコンパイル / リンクし , 比較してみた 1 .43 1 .09 malloc. c 1 .00 結果を TabIe 1 にまとめておく。あくまて、筆 2 . 19 1 .00 1 .32 dhry. c 者の使用環境て、の結果て、あり絶封的な時間 1 .43 1 .00 1 .09 Sleve . C には意味がないのて , Ver. 1.0 によりオプ 1 .44 int h . c 1 .00 ティマイズなして、コンパイルした場合を基 1 .00 1 .54 myst 「 . C 準とした比の形て、表してある。 1 .23 1 .00 maze . C テストプログラムは本誌創刊号のべンチ マークテストて使われたものを流用した。 同等のドライストーン値が得られる。逆も TabIe 3 にプログラムの実行時間比を示す。 メインメモリ 2M バイト ( フリーエリア約 1.5 実行プログラムのサイズは大きくなる傾 また予想どおりの結果となる。 M バイト ) , 40M バイトハードディスク , 512 向にあるようだ。演算ライプラリをリンク MYSTR の速度向上は純粋にコンパイラ K バイトの RAM5-•イスクという環境て , コ するようになったことに加え , ライプラリ の生成コードが改善されたためてある。も ンパイラ本体 , リンカ , ヘッダファイル , っとも , Ver. 1.0 てはとんてもなく冗長な が ANSI 仕様に拡張されただけ大きくなった ライプラリはハードディスクに置き , 作業 ( とくに printf( ) 系列 ,scanf( ) 系列 ) のも影響 コードを出していたのが , ふつうになった 自体は RAM ディスク上て、行った。ハードデ というだけのことて、あるが。そのほか , 実 しているのだろう。 イスクはしばらく整理していないのて、不連 行時間が微増しているものはライプラリの 実行速度に関しては , ま $DHRY と INT 続クラスタが山ほどあるはずだが , コンパ 変更 ( 工ラーチェックを厳しくしたなど ) に H が速くなったのが目につく。 イルに必要なファイルだけはどれも連続し が , 残念ながら , これはコンパイラの性 よるものてはないかと思われる。 たクラスタに格納されていることを確認し 能向上を意味しない。演算ライプラリに実 コンパイラの生成したコードを Ver. 1.0 行時間を短縮するような細工が施されてい てある。 と比べると , DOS は Human68k Ver. 2.02 て , ディス ・各関数の最初に必ずあった無意味な分岐 るだけてある。 クキャッシュの類は使用せず , また , コン 命令がなくなった FLOATFNC. L は整数の乗除算を行う際 パイルの直前には必ず DOS 内部のクラスタ , 引き数が十分小さい値てあれば ・データレジスタのクリアに c 旧ではなく に バッフアをフラッシュして公平を期してい FLOAT2. X を呼び出す代わりに X68000 の乗 moveq.l 和を使うようになった ( ほかでも ある程度は moveq を有効に使っているよ 除算命令を使用して計算する。これが DHRY と INT H< は有効に働いたというわけだ。 最適化ならびに生成コードの質 ・ 32 ビット定数をスタックに積む際に , 定 ちなみに , FEFUNC. H というファイルだけ 数の値が一 32768 ~ 十 32767 の範囲であれ を Ver. 2.0 のものに交換したうえ <DHRY. Table 2 に生成された実行ファイルサイズ C を XC Ver. 1.0 てコンパイルして FLOATF ば , 絶対ショートアドレス形式の pea を使 ( シンポル情報を除いた正味のサイズ ) を , NC. L をリンクすると , Ver. 2.0 とほとんど うようになった TabIe 1 コンノヾイル / リンク時間 [ 比 ] XC Ve 「 .1 .0 XC Ver. 2.0 ー 0 あり ー 0 なし 1 .83 1 .28 1 .43 1 .37 1 .33 1 .38 1 .99 1 .38 1 .33 1 .45 1 .74 ー 0 なし 136 CMAGAZINE 19 12
円 90 年に月一日 ( 毎月一回一日発行 ) 第 2 巻第に号通巻第丐号円 90 年 2 月 2 日第 3 種郵便物認可 ~ ℃ ONTENTS Programmng on PurPOSffWhat meets the eye 』 C 十十や Pasca にもフラウサ環境を A Mini-Browser for Pascal and C 十十 線を賑やかに美しく Fancy Lines フリーソフトウェア最新レポート < 第 13 回 > Mac て NeXT ライクな環境を / 野口雄平・・ Book Review ・ Digest 0f COMPUTER LANGUAGE OBJECT DATABASES Why 訓 the fuss? 。 = MS-C に 6.0 研究 PartI ・ MS-C Ver. 6.0 概要 Section I Programmer's Work Bench のアウトライン 柏原正三 Section Ⅱ MS-C Ver. 6 ℃における最適化 田倉達夫 Section Ⅲ MS-C Ver. 6.0 に見る OS / 2 プログラミング開発環境・・海老原浩之 Section Ⅳデバッグ環境を一新した CodeView 鍋谷研ー Section V 新機能インラインアセンプラのメリット 高村誠之 PartII ・ MS-C Ver. 6 ℃主要機能ガイド沖田浩一 オプジェクト指向への招待 く第 3 回 > オプジェクト指向の起源木戸研ー 新 MS ー DOS プログラミンク入門 C プログラマのための く第 3 回 > ソダイレクト機能 ( 3 ) 中島信行・・ 実践 C プロクラマ養成講座 < 第 15 回 > 。タコ。の研究 三田典玄の の道具箱く第 6 回 > 汎用画面作成ツール ( 6 ) 豊国永健 応用 C 言語 恥すかしなからトシりました < 第 13 回 > あとで困らなしローティングスタイル ( 2 ) 岩谷宏 C 言語フォーラム ANSI C more < 第 4 回 > ポインタと配列 ( 2 ) きだあきら はじめて学ぶ C プログラミング < 第 15 回 > 関数の可変引数について高木聡 / 山崎信行 C 言語入門講座 C MAGA セミナールーム < 第 4 回 > リアルタイムなキー処理プログラム ( 3 ) 柴田望洋・・ プログラム添削 最新 C コンヾイラレポートⅡ c COMPILER PR0-68KVer. 2 ℃村田敏幸 短期集中連載 Short lnterview David lntersimone & zack UrIocker Conference Room GNU 奮闘言己 < 第 9 回 > もうひとつのコンヾイラ , トランスレータたち吉野智興 Conference Room C MAGA News Square BOOK SHOP REPORT lnfomation from Compiler Makers Readers' Room ティスク内容のお知らせ EDITORS' ROOM ・本記事中のプログラム名 , システム名 , CPU 名は一般に各メーカーの登録商標てす。本文中ては TM. ⑩マークは明記していません。 ・本誌および付録ディスクに掲載されたすべてのプログラムは等作権法 l•. 個人て使川する目的以外て無断て複製することを禁じられています。 表紙・イラストレーション・秋山育 / デザイン・持田哲 ・ 20 P. J. Plauger ・・ COMPUTER LANGUAGE 提携記事 COMPUTER LANGUAGE 提携記事 0 6 8 0 3 3 3 4 4 ・・ 73 ・ 83 94 ・ 97 105 ・・ 110 116 ・ 128 ・ 133 144 ・・ 148 153 155 156 ・ 164 167 168 C MAGAZINE PubIisher: Masayoshi Son PubIishing Director: GO 「 0 Hashimoto Editor-in-Chief: Shinichi HOShino Director Of Marketting: RYO Tanii Manager Of Sales and Advertising: YOShiO GOShima EditoriaI and Business Offices: NS Takanawa Bldg. , 2-19-13 , Takanawa. Mi nato-ku, TOkYO 108 , Japan EditoriaI: Phone ( 03 ) 5488-1318 SaIes. Phone ( 03 ) 5488-1360. Advertising: TOkyo: Phone ( 03 ) 5488-1365 Osaka: Phone ( 06 ) 264-1471 Copyright ⑥ 1990 SOFTBANK Corporation. , TOkyo. 則 rights 「 eserved. NO materialin this publication may be reproduced, in whOle 0 「 in part, in any from without 「 mi ion. Printed in Japan.
最新 コンバイラレポート の仕様は踏襲された。相変らずあらかじめ 用意したヒープ領域以上のメモリは確保て、 きない ( 8086 用の C てはあるまいに ) 。ヒープ の管理方法には変更はなかったようなのて , Ver. 1.0 の ma Ⅱ oc ( ) に手を加えてヒープサ イズの制限を取り払ってある人はそれをそ のまま流用したほうがよいだろう。いちお う , Ver. 2.0 のライプラリソースに対する 変更点を List 1 に示しておく ( FC. X による差 分 )0List 1 ては ma Ⅱ oc ( 0 ) を正常な引数と判 断しているが , これをエラーとしてはじき たいのてあれば , 34 行の b はを e にすればよ XC Ver. 1.0 との互換性 こて , Ver. 1.0 用に書かれたソース , および Ver. 1.0 て、コンパイルしたモジュー ルを Ver. 2.0 て流用する際の注意点をまと めておこう。基本的には Ver. 1.0 用に書い たソースは Ver. 2.0 ても「コンパイルてきる」 はずてある。新設された予約語は vo ⅱ e の みてあるから変数名とぶつかり合う可能性 はゼロに等しいし , マクロ置換まわりも前 述のように ANSI 非互換にしてま <XC Ver. 1.0 との互換性が保たれている。ただ , Ver. 2.0 て、は本誌創刊号のべンチマークテストて 使われた INT ℃に見られるような長い式 ( 複 雑な , てはない ) がコンパイルてきなくなっ ているようだ。場合によっては式を分割す る必要があるだろう。 さて , コンパイルてきたからといって , 得られた実行形式ファイルが動作するかど うかは , 別の問題てある。 puts( ) 関数の戻 り値の意味が ( ANSIC 互換になった関係て ) 変更されているなど , ライプラリの仕様変 更によって正常動作しなくなるプログラム が出てくることが予想される。ライプラリ 関数の仕様は十分チェックされたい。 既存のコンパイルずみモジュール / ユーザ ライプラリについては , ソースを見直すだ けて、はなく , コンパイルし直したほうが安 全てある。とくに日 LE 構造体のサイズが変 わっているのて、 , 標準入出力を利用したモ ジュールは Ver. 2.0 てコンパイルし直さな いと正常動作しない。余談ながら , Ver. 2.0 て、は日 LE 構造体に fname というメンバが追 加されている。これはファイルポインタに 結び付けられたファイル名へのポインタて あり , 使いようによってはなかなか便利そ うて、ある ( が , 当然 , 移植性は損われる ) 。 と定義されているのがどうも気にいらない #define NULL 0 ファイルの中て、 NULL が , 細かい話になってしまうのだが , NULL の定義 ヘッダ C のソースレベルてデバッグするツールてあ おりプログラムを機械語レベルてはなく , 思うが , ソースコードデバッガとは言葉ど 9 / 68000 用にはあったのだが ) 。ご存知とは にソースコードデバッガが搭載された ( OS ー 「ようやく」といっていいだろう。 X68000 ソースコード釟ッガ SCD. X プリは 1 匹いたら 30 匹いると思え」てある ) 。 うか ( 「風が吹いたら桶屋が儲かる」 , 「ゴキ の信頼性も損われてしまうのてはないだろ が示されることによって , コンパイラ自身 こういう「型の不整合に対する無頓着さ」 と定義されるべきものてある。 #define NULL ((void * ) 0 ) するためにも , る」という意味のない警告を出さないように と書くたびに「整数とポインタを比較してい NULL)— if ( (ptr = malloc(size) ) を表す記号定数」てあり , NULL は整数の 0 てはなく , 「ヌルポインタ 少なくとも筆者の理解するところては , る。実行ファイル生成時に , ソースと実行 ファイルを結び付ける情報をいっしょに作 成しておき , その情報を参考にみかけ上ソ ースレベルてデバッグする , といったほう がより正確かもしれない。機械語レベルの 1 ステップ単位てはなく , C ソースレベルの 1 行ごとに実行したり止めたりてきるわけて ある。 さすが今回のバーションアップのヾ売り〃 だけあって , よくてきている。とくに軽さ が気にいった。起動にも時間がかからない し , 表示にはマウスプレーンしか使わない のて、アプリケーションと競合することもな い。プルダウンメニューによるマウスオペ レーションだけて、はなく , DB. X 風のキーポ ードからのコマンド入力をサポートしてい るのも正しい選択て、ある。 SCD. X て、デバッグするためには , 前述の / Ns スイッチをつけてターゲットプログラム をコンパイルしておかなければならない その後 , SCD PROG. X て SCD. X を起動する。このとき , SCD PROG. X ARGI ARG2 ・ のようにターゲットプログラムに対するコ マンドライン引き数を並べてもよい SCD. X の画面は , いちばん上にメニュー その下に , リストスクリーン , レジ スタスクリーン , コマンド投入スクリーン が並ぶ。それぞれタイトルバーをドラッグ することて縦方向の大きさを変えることが てきる。 リストスクリーンにはデバッグ中のプロ グラムの C ソース , もしくは , 逆アセンプル リストが表示される。リストはメニューバ ー左端の上下矢印をクリックすることて正 逆両方向にスクロールする。 C ソースはとも かく , 逆アセンプルリストが逆スクロール するのはなかなか気持ちいい。機械語レベ ルのデバッグにも重宝するだろう。 レジスタスクリーンには X68000 のレジス 最新 C コンバイラレポートⅡ 139