ANSI - みる会図書館


検索対象: 月刊 C MAGAZINE 1991年7月号
37件見つかりました。

1. 月刊 C MAGAZINE 1991年7月号

COMPUTER PRO-STAFF SYSTEM CREATE O 言彡ロジェクトの 登ク 0 スリ ) しンス 数て 49 という値だからてす。同様に ' 2 ' は 10 一方 , ご存じのように , ANSI C は , 標準 ライプラリについても , 相当充実した決定 進数て 50 てす。 keypress が int<, case のオペランドが 1 , を盛り込んています。 これは原書のとおりて、す。正常に したがって , その部分はもちろん , ANSI コンパイルされ正常に走ります。 C 十十の一部ともなります。 しかし , cin や cout はどうなるのてしよう ? keypress が char<, case のオペランドが それらの元となっている , C 十十の ( 拡張 ) ス 1 , 2 , 3 の場合。これも無事にコンパイルさ トリームオプジェクトの , 定義の数々はど れますが , 正しくメッセージを表示させる ためには , 十囚 ( = コード うなるのてしよう ? ノヾリューが 1 ) 十 , 皿 + 回 ( = コードバリューが ぜひ , ANSIC 十十委員会における , 「標 準クラスライプラリ」に対する , 考え方の動 2 ) 十などと押す必要があります。 向を知りたいものてす。 ANSI C 十十の 標準クラスライプラリは formatting# 書式化 どうなるか ? それからもうーっ , 今回痛感した 今回私が経験したようなことは , Turbo C 十十のマニュアルも含め , 直接的にはどこ 追記しておきます。 プログラミングの界隈ては , 英語の動詞 にも書かれていません。 TurboC 十十のマ format を長らく , 「書式化する」と訳してき ニュアル中て、は , 資料は , 「 INTRODUC ました。「書式指定をする」と訳す場合もあ TIONJ の 5 章「 C 十十入門」の「 C 十十ストリ ームライプラリ」という節。そして先にもあ ります。 ポインタを邸文字列てあるぞ〃と指定し げた , 「 PROGRAMMER'S GUIDE 』の 3 章 たり , 数字の表示桁数とか , 右詰め , 左詰 「 C 十十のストリーム」て、す。 めなどを指定する場合 , この < 書式化する > ライプラリのリファレンスは , 今回 2 冊に という訳語がいちばんピッタリするように 分かれ , あわせて 900 ページ以上にも達しま 思えます。 す。 しかし , 元の動詞 format の意味には , た しかし , それらはすべて , < C の > 関数の とえば今回のように , 「文字列 ( = 数字文字 説明なんてすね。 cin や cout を典型とすると の文字コードの並び ) を数値に変換する」 , ころの , C 十十の標準〃クラスや , クラス といった , より一般的な「データ形式の変換 に付随するメソッド ( 処理子 (manipulator) と 処理」も含まれているのてす。「書式」という 呼んている ) に関する正式のリファレンスが 日本語からは , とうてい , そういう一般的 存在しません。 な変換処理まては , イメージがおよばない 上て感標準ククラス , というように標準 のてす。 の文字をダブルミニュートて囲んだのには , 今回のドジの大きな理由の一つに , 「書式 わけがあります。ストラウストラップらが つき入出力」という場合の「書式」という言葉 著した TThe Annotated C 十十 Reference の本来的な ( = 元の英語の ) 意味を , 私が十 ManuaI 』は , ANSIC 十十の原案文書だと 分理解していなかったことが , あげられる いわれています。そして同書は , 言語本体 と思います。 のリファレンスてすから , 当然のようにラ イプラリに関する記述は一切ありません。 IJ 高品質のンテーションを簡単に実現する、 新世代のプロジェクト指向プログラムヘルバ - です。 CPAD はこれまて C 言語による開発てソフトハウ スが悩んていた、開発時の工数短縮及び複数 人数によるプロジェクト管理を容易に致します。 また、既存のソースリストの仕様書を自動作成し ますの ( 管理体制を容易に画一化することが 可能となり、また、プログラマーの余分な負担を 軽減する事がてきます。 0 CPAD 2 98 シリーズ対応版・・・・・・¥ 85 , 000 ( 消費税別 ) 5 大機能 C スの解析、援助、学習ツールとして ① C 言語ソのドキュメント管理を自動化、一律化する。 ②カーコ、ン & リッチーの書式にソースをリフォーム。 ③ PAD 仕様に準ずる出力機能。 ( 自動出力印刷例参照 ) ④全ドキュメントはエテイタで編集可能。 ⑤豊富な出力機能。 ( 自動出力印刷例参照 ) ソフトウェアインフォメーションセンター く技術的なこ質問・こ相談に電話でお答えします〉 TEL. ( 06 ) 634 ー 2563 受付時間 AMIO : 00 ~ PM5 : 月曜日 ~ 金曜日 ( 祝日を除く ) 3 オオッカ商事 / ー、本社 : 〒 760 高松市西内町 5-14 く資料請求番号 105 > C 言語フォーラム 105

2. 月刊 C MAGAZINE 1991年7月号

学 五ロ ファイルの最後まてコンパイルしても , リンケージを決定てきなかったときには , external リンケージとして処理するようにし ています。この解釈によると , extern 宣言 は単なる前方参照ということになります。 実体のリンケージとは無関係に , ただ名前 と型を宣言するだけてす。これを利用した 例には ,List 6 のように関数が相互に呼び出 しあうような場合があります。これを ANSI 規格て記述するならば , static VOid f00 ( ) : とするべきてす。ては c の宣言を ANSI 規格 てどう記述すればいいのかということが気 になりますが , これは後述します。 ANSI 規格が規則③ー 2 のように規定したの は , 1 パスコンパイラなどの場合 , 最初に出 てきた宣言てリンケージが決定て、きたほう が何かと便利だからてす。たとえば内部名 と外部名との扱いが異なる場合を考えてみ てください。 ANSI 規格ては internal リンケ ージの内部名は大文字 , 小文字を区別し , 長さは少なくとも 31 文字まて有効て、すが , 規定を読んだとき , 「 extern を指定したもの ません。 external リンケージの外部名は大文字 , 小文 以下てはファイルスコープを持っオプジ は定義てはなく宣言てある。したがって , 字を区別せず , 最大て、 6 文字しか有効て、はあ ェクトの宣言と定義について説明します。 extern を指定するとイニシャライズばてき このようなオプジェクトの定義を「外部オプ ない」とずっと信じてきた筆者はかなり動揺 りません。リンケージによって名前の生成 ジェクト定義」といいます。 方法が異なりますから , コンパイラが宣言 してしまいました。 ANSI になって , extern はリンケージを指定するという点が強調さ を認識して名前を生成しようとするときに ー仮の定義 れ , 宣言てあるという意味が薄められたよ リンケージが決定されていないと , どちら うてす。 extern があってイニシャライズさ のための名前を生成すればいいのかがわか れていないものは , これまて、同様に ANSI 規 さて , ANSI 規格には「仮の定義 (tentative りません。 格ても宣言てす。 definition) 」と呼ばれるものがあります。 ー外部オプジ = クト定義 さて , List 7 の x の定義てすが , リンケー れは今まてのコンパイラに慣れている人に ジは TabIe 3 の規則②によって external にな は少々ショックな内容かもしれません。 ります。 z は明示的に extern が指定されてい まず , ファイルスコープのオプジェクト 「定義」とはオプジェクトの実体 , つまり ますのて , 規則④と③ー 2 からやはり external てイニシャライザがあるものは定義てす。 メモリを割り当てる処理を含んだ宣言てす。 リンケージになります。このように , イニ ファイルスコープのオプジェクトに対して たとえば , シャライザがある場合には , ファイルスコ 指定することがてきる記憶クラスは extern ープのオプジェクトの定義ては , 記憶クラ と static のふたって、す ( aut0 と register は関数 は定義てす。コンパイラは i のために int の大 ス extern はあってもなくても同じてす。 y の 内てしか使えませんし , typedef を使うとそ きさのメモリを割り当てます。 リンケージは , 規則①から internal になりま れはオプジェクトの宣言てはなくなりま static char buf [ 100 ] : す ) 。したがって , List 7 はすべて正しいオ す。 も定義てす。これに対して , 次はイニシャライザがない場合の宣言て プジェクトの定義てす。 extern char * p , す。 extern が指定されている宣言は , 「宣言」 しかし , z の定義が , extern を指定してい は宣言てす。コンパイラは P という名前と char として扱われます。つまりメモリの割り当 るのにイニシャライズしてしまうというの * という型を結び付けてその情報を蓄積す ては行われません。 は・・・・・・。皆さんはどう思いますか ? この るだけて , メモリを割り当てることはあり List 7 初期化による定義 1 : / * 以下の定義はファイルスコープにある * / 2 : / * つまり , グローバル変数の定義である * / 3 : x = 1 : / * いつも通りの定義 * / i nt 4 : static int y = 2 : / * これもよく使う 5 : extern int 2 = 3 : / * え ! こんなのあり ? ! * / リンケージの組み合わせ / * 仮の定義 * / / * 仮の定義 * / / * OK : どちらも external リンケージ * / / * 仮の定義 (external リンケージ ) * / / * 工ラー : リンケージが不一致 ( これは interna い丿ンケージ ) * / / * 宣言 (external リンケージ ) * / / * OK : どちらも external リンケージ * / / * 宣言 (external リンケージ ) * / / * OK : これも宣言で , どちらも external リンケージ * / / * 宣言 (external リンケージ ) * / : リンケージが不一致 ( これは internal リンケージ ) * / / * 仮の定義 (internal リンケージ ) * / : リンケージが不一致 ( これは external リンケージ ) * / / * 仮の定義 * / / * OK : リンケージは internal になる * / / * 仮の定義 * / List 8 int i; int extern J : int k; static int k: i nt extern int i; int extern J , i nt extern J : int k; extern static int k; static int int i; stat i c i nt J : i nt extern J : static int k; static int k; C 言語雑学講座 95

3. 月刊 C MAGAZINE 1991年7月号

0 編集内容 ・特集企画 プログラミングを進めていく上で見逃すことのできない重要なテーマをヒ。ックアップして毎月取り上げてい ます OOOP 、 DOS EXTENDER 、 Windows3.0 、 IBMDOS/V などこれまでの特集はいずれも好評をいただいております。 ・解説記事 コンバイラのプログラミング技術、開発環境、移植、デバッグ技術、グラフィクス、アルゴリズムなど実際に開 発現場でも役に立つ実用的な記事を取り上げます。また、サンプルプログラムや図解を多く用いて初心者に も興味を持たせるよう記事構成してあります。提携誌である米国 The C Users JournaI 誌、米国 TECH SpeciaIist 誌 における上級プログラミングテクニックを翻訳で紹介いたしております。 ・連載コラム Standard C ( 米国 The C users Jou 「 n 引誌翻訳 ) AN C 委員会 X3J Ⅱの委員として活躍中の P. J. プローガー氏のコラムです。 AN C 委員会の進行状況がリアル タイムで報告されるなど、 C のスタンダード化を知る上で最も重要なものとして米国でも信頼されています。 Dr. C'S Pointers ( 米国 The C Users Journ 引誌翻訳 ) ANSI C 委員レックス・ジャスキー氏が C の議論となる争点、問題点などをおりませ言語 C の新しいプログラミ ングテクニックから基本精神にいたるまで解説をしています。本格的な C プログラマを目指すユーザには見逃 せないコラムです programming style ( 米国 TECH Specialist 誌翻訳 ) ANSIC + + 委員ダン・サックス氏がプログラミングの作法を書き連ねる人気のあるコラムです。 Q and A ( 米国 The C users Jou 「 n 誌翻訳 ) C プログラマが抱えている日常的な問題を著者のケン・ピュー氏に送り、著者と読者が共にひとつひとつ解決 していく実践的 H 。 w t 。講座です。質問が誌上討論に発展するなど読者の投稿が盛んです。 N Ⅸ通信 UN Ⅸライクな OS である M 爪Ⅸの最新情報を米国の専用 BBS 「 Mars HoteIJ よりピックアップしてお届けします。 UNIX Tools これから、 UN Ⅸについて勉強するユーザのための連載です。実践的なプログラミングを通じて平易に解説し ています。 Windows3.0 プログラミング D 「 aw 作成講座 人気の Windows3.0 上でのプログラミングの解説講座です。誌上にてソースリストを公開することにより、 者は Draw プログラムの作成課程を深く理解することができます。 株式会社ビレッジセンタ - 出版局 〒 101 東京都千代田区三崎町 3 ー 1 ー 16 神田アメレックスビル 2F ・営業部 : 03 ー 322 ト 1825 ・編集部 : 03 ー 3239 ー 1950 ・ FAX : 03 ー 322 ト 1768 く資料請求番号 181 > 士冗 - 三ロ

4. 月刊 C MAGAZINE 1991年7月号

学 五ロ Strict Ref/Def / * i は宣言。メモリは割り当てられない / * j は定義。これ以上 j の定義があってはならない * / Common List 9 List 1 1 extern i nt i : void foo() extern i void f80 / * extern が指定されていても , i の定義になる * / / * つまり , i のためにメモリが割り当てられる / * j も定義である 1 ・ー void bar() / * これらがリンクされると , j が複数回定義されているのでエラーになる * / / * a. c での i の参照は , b. c の i をアクセスする extern i nt void bar() / * これらがリンクされると , i, j それぞれまとめられ , / * 同じアドレスに配置される / * ひとつだけ定義がなければならない / * 工ラー・複数のファイルに定義があってはならない * / / * 同様に i の定義 / * j も定義である Relaxed Ref/Def / * i は宣言。メモリは割り当てられない extern i nt / * j は定義 int j; void List 1 2 lnitialization / * i は初期化されているので定義 / * j は宣言 : メモリは割り当てられない List 1 0 extern i i void foo() * 1 よ int i; void bar ( ) / * これらがリンクされると , j はまとめられ , 同じアドレスに配置される * / / * a. c での i の参照は , b. c の i をアクセスする * 0 / * 少なくともひとつは定義がなければならない / * 複数のファイル中で定義があってもかまわない * / / * 宣言 / * 定義 . メモリが割り当てられ , 初期値が書き込まれる * / / * 初期化されたものだけが定義となる * / 定義に変換されますから , 複数のファイル ならない」という点を使用します。この理由 ログラムが複数のファイルて、構成される に仮の定義が出現することはてきません。 は , ゆるい Ref / Def モデルやコモンのような ときにはヘッダファイルを作成し , その 中に使用する外部オプジェクトの宣言を 複数ファイルに同じ名前の定義が分散して ーポータビリティ extern を指定して入れておき , 各ファイ いる場合 , 多くの環境てはこれらを効率よ ルて # include するのがいいてしよう。 くサポートすることがてきないからだそう てす。 さて , 以上が ANSI 規格が定める宣言と定 なんとも常識的な方法てすが , ポータビ 初期化モデルからは「名前が初期化される 義てす。ては私たちはどのようにオプジェ リティを考えるとこんなものてしよう ( 笑 ) 。 と , それは定義てある」という点を採用して クトを定義し , 宣言すればよいのてしよう ANSI 規格のお墨っきがあるからといって , います。これによって , extern が指定され か。てきるだけ強い制限に合わせておけば extern int i ている名前も初期化されてよく , 名前の定 よいてしようから , 次のようになります。 などと書くと , いくっかの処理系 ( たとえば 義になります。 ANSI 規格の理由書によると ・全プログラム中で定義はひとつだけにす GCC Ver 1.37 ) て、は Warning になります。 「可能なかぎり広範な環境とすてに存在する る 今回は宣言と定義に関してお話しました。 処理系に便宜を図るため」だそうてす。 厳密な Ref / Def モデルからの制限てす。 複雑になってしまったのは ,DennisRitchie ANSI が採用した初期化十厳密な Ref / Def ・定義には extern を指定しない によって採用されたコモンモデル , UNIX の モデルにおいても仮の定義が有効なことに extern のついた宣言を初期化てきない処 cc が採用しているゆるい Ref/Def モデルとの 注意してください。厳密な Ref / Def はプログ 理系があるからてす。 整合性をてきるだけ残しつつ , 多くの環境 ラムを構成する全ファイル中てただひとっ ・定義で初期化する や現存の処理系に対応しようとしたためて の定義しか許しませんが , ひとつのファイ 初期化モデルを採用している処理系ては ル中ての仮の定義は何度出現してもかまい 初期化がないと定義とみなされません。 しかし , いわゆる常識的なプログラムの ません。 ・定義以外 ( 宣言 ) では必す extern を指定する 書き方をしているかぎり , それほど問題に ただし , 仮の定義はファイルの終わりて これも厳密な Ref/Def からの制限てす。プ はならないてしよう。 c 言語雑学講座 97

5. 月刊 C MAGAZINE 1991年7月号

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

6. 月刊 C MAGAZINE 1991年7月号

新種・発見 / LSI C ー 86 ノ←ジョンアップで進化中。 LSI C ー 86 は、 ROM 化に最適の C コンパイラ。 高速かっコンパクトなオフジェクト・コード生成のために 工ル・エス・アイジャパンか開発しました レジスタの自動割り付けなど豊富な機能力ま プロフェッショナルのソフトウェア開発を 効果的にサポートします 0 Y48 , 000 LSI C ー 86 Ver. 3. 3 ■言語仕様 ANSI 標準規格に準拠したフルセットコンパイラ ( 多パイト文 字除く ) far/near/recursive/nonrec を追加 ■アセンプラ 8086 / 80186 / 80286 用のアセンプラで、 8087 / 80287 用の命 令もサホート ■リンカ標準装備 リンカは . EXE ファイル以外、コアイメーシ ( パイナリ ) または intellec HEX ファイルを生成 ターケットシステムに合わせたメモリ配置の ROM モジュールを乍成 ・プロファイラ標準装備 プログラムの実行をモニタするツール プロクラムのどの文を何回実行したかをカウント ■ライプラリ ANSI 標準規格で定義された関数のうち多パイト文字関係と く loca h 〉を除く、すべての関数を用意、さらに IJN Ⅸて用意され ている関数や、 MS ー DOS とのインターフェース関数等、数多くの 関数を用意、ライプラリのソース付き ■ ROM 化をサホート ROM 化のための初期設定モジュールのソース付き ・走行環境 MS-DOS Ve 匚 2.11 以上、メモリ 384KB 以上必要 ・供給メラア 5"2HD, 3.5 ” 2HD , etc. * 表示価格に消費税は含まれておりません。 * UNIX は AT & T ベル研究所て開発されたオヘレーティングシステムの名称てす。 * MS ー DOS はマイクロソフト社の登鉧商標てす。 * その他、商品名は各社の商標てす ・開発・発売元 工ル・エス・アイジャパン株式会社 〒 151 東京者 5 渋谷区千駄ヶ谷 1 丁目 8 番 14 号 TEL 03 ー 3404 ー 1319 ( 直通 ) ・ FAX 03 ー 3478 ー 0576 ■登録ユーサーの方には、こ案内申し上げます。 く資料請求番号 F03 〉

7. 月刊 C MAGAZINE 1991年7月号

MAG\ZINE 1991 年 7 月 1 日発行 ( 毎月 1 回 1 日発行 ) 第 3 巻第 7 号通巻 22 号 1990 年 2 月 2 日第 3 種郵便物認可 提携・ LA トー誌 / 監修・石田晴久 C 言語技術情報誌・ C マカシン 1991 JIJL VOI. 3 NO. 7 980yen 特集 TSR プロクラミンク研究 I ・ C 言語による TSR プログラミンクの基本 Ⅱ・ TSR 型テハイスドライバの記述法 Ⅲ・常駐サイズのコンヾクト化 巻頭インタビュー・ Anth0 Wass m 聞のバイオニア / 新連載・痛快 ! 三田典玄のランタムアクセス 短期集中連載・ SPARC 江プログラミング第 1 回〉 / ←コード印刷プログラム / 明解 ANSI C 言語入門講座 / スタートアップ c 十十 提携記事・ PRO [ OG and CIient/ServerInformation System ・ Rexx:Not Just a wonder 00g / 新 MS - DOS プログラミング入門 仮想配列ライプラリ「 VARRY 」・バッチ式メニュー「 BM 」・バーコード印刷プログラム「 MARKNWS 」 X-GCC3 ・富国強兵「 WAN D 円・ rANSI C 言語入門講座」活用集④・本誌掲載ソースプログラム 特別付録 : 5 2HD ティスク :

8. 月刊 C MAGAZINE 1991年7月号

工ル・エス・アイジャパン lnformation from CompiIer Makers LSI C -86 Ver. 3.30 ライプラリのソース (), および 数のうち , 多バイト文字関係と 6 今回は , 6 月よりバージョンア 13 登録カード アセンプリ言語 ) locale. h を除く , すべての関数を用 ップ版のリリースを開始した LSIC 動作環境 7 ROM 化ツールおよびトレー ー 86 Ver. 3.30 を簡単に紹介しま 意しています。さらに UNIX< 用意 ングプログラム す。 されている関数や , MS-DOS との 豊富なサンプルプログラム インタフェイス関数など , 数多く 8 の関数を用意しています。 コンパイラドライバ (lcc) 9 言語仕様 また Ver. 3.30 から新たに追加さ 10 プリプロセッサのソース (cpp) れた関数を付録ディスク function. 11 UNIX ライクなプログラム保守 ・ ANSI 標準規格にほば準拠して tbl に収録しました。 ツール (make) 12 日本語マニュアル ・多バイト文字 (wchar t ) はサポー プロファイラ トしていません。 far/near/recursive/nonrec を Fig. 1 ROM 化プログラムの流れ プログラムを実行したとき , ど 追加しています。 ASM ソース C ソース の文を何回実行したか , またどの a86 86 くらい時間がかかったかなどの , プログラムの実行に関する情報を パッケージには ROM 化のための プロファイル情報と呼びます。プ 初期設定モジュールのソースが含 ロファイラは , このプロファイル まれています。これをターゲット 情報を得るためのツールて、す。プ システム用に修正することによっ ロファイラを使うことにより , 条 て , どのようなシステムにも対応 件判定の論理ミスなどを容易に発 見てきます。実行回数の多い関数 てきます。 リンカⅡ d. exe は . EXE ファイルだ を最適化すれば , プログラム全体 けてはなく , コアイメージ ( バイナ の効率を上げることがてきますが , リ ) あるいは intellec HEX ファイル プロファイラはその指標を与えて を生成します。 くれます。 lld に対してセグメントがロード prof は計数型プロファイラて , プ Fig. 2 プロファイル情報 されるべきアドレスを与えれば , ログラムのどの文を何回実行した かをカウントします。例として「エ ターゲットシステムに合わせたメ ラトステネスのふるい」を実行し , モリ配置の ROM モジュール作成て そのプロファイル情報を出力する きます。 と Fig. 2 のようになります。リスト lld は MS-LINK と同等のマップ の左端の数字は右側の文が実行さ ファイルを生成します。このマッ プファイルを ICE などて利用てきれ れた回数を表しています。 ば , シンポリックデバッグが可能 バッケージ内容 ROM 化プログラムの流れを Fig. 1 に示、します。 1 C コンパイラ 2 アセンプラ 3 リンカ ライプラリの特徴 4 プロファイラ ライプラリ (lib 形式 ) ANSI 標準規格て定義された関 5 160 C MAGAZINE 1 1 7 MS-DOS Ver. 2.1 以上 メモリ 384K バイト以上 供給メディア 5 〃 2HD , 3.5 〃 2HD ( そのほかはお問い合わせくだ 価格 48 , 000 円 0 ASM ソース ,asm ↓ MASM ほか ↓ ROM 化 lcc c cf c 86 「 86 lcc c 「 86 ・ obj . obj lcc マップファイル MAP ROM モジュール hex またはコア #include く stdio. h 〉 8190 #define SIZE #define TRUE 1 #define FA し SE 0 flags[SIZE + 1 ] : Char nain() 1 void 1 k, i, prine, count, iter; unsigned 1 printf("10 iterationsYn"); 1 fO 「 (iter = 1 : iter ← 10 : iter 十 + ) { 1 count = 0 : 10 fo 「 (i = 0 : i く : 引 ZE : i + + ) 10 flags[i] = TRUE; 81910 for (i : 0 : i ← SIZE.• i + + ) if (flags[i]) { 81910 18990 pr i ne fO 「 (k - i + prine: k く = SIZE; k + : prine) 18990 149990 flags[k] = FALSE; 18990 oount 十十 : 81910 1 0 printf("Xd prinesYn" count) :

9. 月刊 C MAGAZINE 1991年7月号

YVARRY*README は付録ディスク収録 ' 91 年 7 月号特別付録 ( 5 ″ 1.2M 8 セクタ / 権者 ( 小橋ゆたんぼ氏 , 藤井びろしき氏 ) の 版仮想配列ライプラリ使用条件のドキュメ、 トラック MS-DOS フォーマット ) には , 次の 了解を得て収録しました ントてす。 プログラムが収録されています。 103. EXE は自動解凍圧縮ファイルてす。詳 ①付録ディスクの説明 しくは README をご参照ください。また小 バッチ式メニ = ー rBMJ READM E 橋氏の「富国強兵について , いくっかのコメ ( テキストファイル ) ②仮想配列ライプラリ「 VARRY 」 ント」 (*WANDPYREADME) というメッセ 本誌 ' 91 年 6 月号「フリーソフトウェア最新 YVARRY くディレクトリ > ージも収録しました。ご一読ください レポート」て紹介した「 BM 」てす。著作権者 ③バッチ式メニュー「 BM 」 叭 NSI C 言語入門講座」 YBM ( 高崎信太郎氏 ) の了解を得て収録しました。 くディレクトリ > 活用集④ ④ X68000 に移植された GNU C Compiler ③ YBM*BM231. EXE は自動解凍圧縮ファイ YXGCC3 ルてす。詳しくは README をご参照くださ 今月の BOHYOH ディレクトリは , CON ・ < ディレクトリ > ⑤バーコード印刷プログラム い。また高崎氏からのメッセージ「ようこそ FIG. SYS や AUTOEXEC. BAT を起動時に YBARPRN BM の世界へ」 (YBMYBM. TXT) も収録し 選択てきるプログラム CNFMNU. SYSC くディレクトリ > ⑥富国強兵「 WANDP 」 す。 CNFMNU. DOC をご一読のうえご活用 一読ください YWANDP ください くディレクトリ > X68000 に移植された ⑦「 ANSI C 言語入門講座」活用集④ GCC バグフィックス版 X68k 版 LHA 修正バージョン YBOHYOH くディレクトリ > ⑧ X68k 版 LHA バグフィックス 本誌 ' 91 年 5 月号て収録した XGCC に文字 *LH AX 68 列リテラルバグが発見されました。本誌 本誌 ' 91 年 6 月号に収録した Human68k 用 くディレクトリ > 「 GCC て学ぶ 68 ゲームプログラム」の筆者 , 吉 ⑨本誌掲載プログラム LHA に HUMAN. SYS(Ver. 2.02 ) を LHA *CMAGA 野智興氏のご好意により , バグフィックス < ディレクトリ > にて圧縮すると解凍不能なファイルを生成 した gcc ccl. x と修正したソース ( extra ー 付録ディスクの説明 (README) に , 解凍 してしまうといラバグが発見されました。 10 叩 . c ) およびバグ情報 (README. DOC) を 方法など , さらに詳しい説明が収録してあ バグフィックス版を収録いたします。詳し 圧縮し ,GCC. LZH として収録しました。解凍 りますのて、必ずご一読ください 0README くは README をご参照ください。 方法については README をご参照くださ はテキストファイル形式てす。 MS-DOS の 本誌掲載プログラム い。なお , 6 月号より収録を開始した XGCC の TYPE コマンド , あるいはご使用のエディ ソースファイル収録は次号から再開します。 タ , ワープロソフトて、読むことがてきます 9 REXX : バッチ言語を超えた ~ 仮想配列ライプラリ「 RRY 」 バーコード印刷プログラム TOKUSYU : TSR70 ログラミング研究 ALGO : アルゴリズムとデータ構造 本誌「 Conference Room 高速仮想配列 本誌 ' 91 年 1 月号に収録し , ご好評いただい MSDOS : 新 MS-DOS 入門 ライプラリⅣ ARRY 」」をご覧いただけたて、 たバーコード印刷プログラムの SPARC LT OUYOU : 応用 C 言語 C の道具箱 しようか ? 補助記憶とバッフアを利用し 版てす。詳しくは本誌掲載記事「パソコンか CZATU : C 言語雑学講座 て大きな配列を使え , 高速化を図った仮想 らワークステーションへ」をご一読くださ DOJI : 恥かしながらドジりました 配列ライプラリてす。収録内容は , 。なお , 自動解凍圧縮ファイルとして収 MEIKAI : 明解 ANSI C 言語入門講座 YVARRYYSRC ディレクトリに仮想配列ラ 録しています。解凍方法については READ CPPJ : スタートアップ C 十十 イプラリのソースとサンプルプログラム X68K ME をご参照ください。 : GCC て学ぶ 68 ゲーム SAMPLE ℃を , *VARRY*TEST ディレク OPPK : ワンポイントプログラミング 富国強兵「 WAND 円 トリに本誌掲載記事て参照しているテスト TENSAKU : C MAGA セミナールーム プログラムを ,YVARRYYEXE ディレクト PUZZLE : C マガ電脳クラブ 本誌 ' 91 年 6 月号「フリーソフトウェア最新 リにサンプルプログラムとテストプログラ NIWA : 丹羽信夫の発想快発 レポート」て紹介した「 WAMDP 」てす。著作 ムの実行ファイルを収録しています。 INFO : インフォメーション ディスク内容のお知らせ 167

10. 月刊 C MAGAZINE 1991年7月号

システム・ワン lnformation from CompiIer Makers Q PC-9801 版 power C のバッケ ージには何が含まれていますか。 A パッケージ内容は以ドのとお りてす。 ディスケット 2 枚 PowerC コンパイラ / リンカ / 標 準ヘッダファイル / 標準ライプラリ / ソースデバッガ PowerCtrace/ ライ プラリソース / ライプラリ管理ュー ティリティ / サンプルプログラム マニュアル 4 冊 ・ Power C ユーザーズガイド ・ C 言語入門書 ( サンプノレプログラ ムっきの C 言語入門ガイド ) ・ C 言語リファレンス / ツール解説 書 ( コンパイラの使用方法などの 解説 ) ・ Power C ユーザーズガイド Ver. 2.0. OJ Q 日本語および , PC -9801 、の対 応はどうなっていますか。 A コンパイラについては , 日本 語 ( 全角文字 ) の文字列処理 , 文字 定数の処理が組み込まれています。 さらに , 日本語の識別子 ( 変数名 , 関数名 ) を扱うことが可能てす。ラ イプラリ関数の中て , グラフィッ ク関数 , BIOS 関数などについては PC ー 9801 に対応させました。また , 当社て開発した日本語処理ライプ ラリを組み込んてあります。日本 語処理ライプラリは , MS ー C, TurboC とコンパチプルなものに なっています。 Ctrace は , 英語版 (IBM-PC 版 ) の機能を損わず , PC ー 9801 に対応す るように再構成されています。 上記のソフトに含まれるすべて のメッセージやヘルプ画面は日本 語化されています。 Q PC-9801 版 power C を使用す るためには , 何が必要ですか。 A 使用には以ドの環境が必要て す。 PC ー 9801 本体 メモリ 384K バイト以上 CRT モノクロ / カラー ( ソースデバッガ PowerCtrace を使 用しないのて、あれば , ほかの MS ー DOS マシンても使用可能てす ) MS-DOS Ver. 2. xx 以 1 : テキストエデイタ 弊社より Power C 専用工デイタ 「 PED 」 ( 5 , 000 円 ) を販売しており ます。これを使用すれば工デイタ から直接コンパイル , リンク , 実 行や PowerCtrace の起動などが簡 単に行えます。 Q コンバイラの対応しているメ モリモデルは ? A スモール , ミディアム , ラー ジメモリの各モデルてす。 スモールメモリてはコード , デ ータともに 64K バイト以内の領域が 使用てき , コードのアクセス , デ ータのアクセスともに near アドレ スを使用します。 ミディアムメモリては , コード は 64K バイトを越える領域を , デー タは 64K バイト以内の領域まて確 保てき , コードのアクセスには far アドレスを , データのアクセスに は near アドレスを使用します。 0 ラージモデルては , コード , デ ータともに 64K バイトを越える領域 が使用てきます。コードのアクセ スにもデータのアクセスにも far ア ドレスを使用します。 Q powerCtrace はどのような特 徴を持っていますか ? A ソースウインドウ , 出力ウィ ンドウ , メモリウインドウ , 変数 ウインドウ , ウォッチウインドウ , シンポルウインドウ , アセンプラ ウインドウの 7 種類のウインドウを 持ち , 同時に最大 4 画面まて、見なが らデバッグ作業を進めることがて きます。 たとえば , ソースウインドウて 実行文を確認 , 出力ウインドウて プログラムからの出力を確認 , 変 数ウインドウて変数の値を確認 , ウォッチウインドウて指定した各 種の値を確認という作業を同時に 行いながらデバッグ作業を進める ことがてきます。 変数名 , 関数名などは自動的に 表示されるため , キーインする必 要はほとんどありません。 また VRAM を直接操作するプロ グラムもデバッグ可能なように工 夫してあります Q ライプラリソースが標準で製 品に含まれていますが , どのよう なものですか 01 版 Power C の標準ラ パイラと , Power C アセンプラの これは , PCー9801 版 Power C コン プラリ関数のソースコードてす。 イプラリに含まれるすべてのライ Power C Ver. 20. OJ ノヾイラと , Power C アセンプラの ためのソースコードてす。 バッチコマンドを使用して簡単 にライプラリを作成 ( 改造 , 追加 , 変史など ) することがてきます。 Q 製品に含まれているアセンプ ラはどのようなものですか。 A p werc 独自のアセンプラて す。 MASM とはニーモニック , 疑 似命令ともに異なります。非常に 高速なアセンプラてす。 Q ンカは MS ー DOS 標準の MS - 凵 NK を使用できますか。 A ノクを高速実行するために , オプジェクトフォーマットが MS- LINK のものと異なっています。そ のため , MS ー LINK を使用すること はてきません。 MASM などて書か 、れたプログラムを PowerC に移植 するために , オプジェクトフォー マットコンバーターが付属してい ます。 Q ほかの処理系 (MS-C/Turbo C) との移植性はどうですか。 A p ー9801 版 power C は ANSI 準拠度が高いため , この範囲内 (ANSI ドラフトによる文法 ) て書か れたものについては互換性は高く , MS-C, Turbo C-t もコンパイル可 lnformation from compi 厄「 Makers 163 ません。 数など ) については , 互換性はあり 機種依存の関数 ( グラフィック関 能てす。