言語 - みる会図書館


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

1. 月刊 C MAGAZINE 1992年3月号

特集 ドキュメント作成支援システム ・プログラムの可読性の向上 ・プログラムとドキュメントの間の一貫性 の向上 といった大きなメリットが得られます。 しかし , それだけて、はありません。文芸 的プログラミングの提唱者て、ある DonaldE rvinKnuth は , 文芸的プログラミングは , 「作品として鑑賞できるプログラム」を 作ること て、ある , と主張しています。 従来のプログラムは , 基本的に「計算機に 読ませるため」に書かれていました。もちろ ん , あとから保守がしやすいように , ある この 程度人間が読みやすいようにすることはあ りましたが , それはあくまて、二次的なもの て、した。 文芸的プログラミングて、は , 「プログラム は計算機と人間の双方が読むためのものだ」 ということを意識します。そのため , 文芸 的プログラミングによって作られた「文芸的 プログラム」からは , 機械が実行て、きるプロ グラムと , 人間が作品として鑑賞て、きる文 芸作品としてのドキュメントの両方を生成 することがて、きます。 したがって , 文芸的プログラミングを実 現する言語は , その中に , ドキュメントを 記述する言語と , プログラムを記述する言 語を含んて、いなければいけません。また , それらの間の調整などを行うための , 文芸 的プログラミングそのもののための言語要 素も必要て、す。 以上のことから , 実際の文芸的プログラ ミングはとつつきにくく , プログラムだけ を単純に書く場合と比べて , 記述中の労力 は確実に増えます。 しかし , 保守管理まて、も含めた総合的な 労力を考えると , 決してその苦労はムダに はなりませんし , 「他人に鑑賞してもらえる プログラム」が書けたときの喜びはなにもの にも代えがたいて、しよう。 もっとも , 落語の『寝床』のように , 自 作の「芸術作品」を無理やり人に押しつける 人が出てくると困りますが・・ W の概要 この文芸的プログラミングを実現する言 語の一例として , Knuth は「 WEB 」という言 語を設計しました。さらに , WEB て、書かれ たソースをプログラムおよびドキュメント に変換するシステムとして , WEB システム を作りました。 TeX ( 文書整形システム ) , METAFONT ( フォント生成システム ) など , Knuth が近年 文書整形言語として TeX が選ばれたの の三つが混在することになります。 ・ WEB 独自の命令 ・ PascaI の命令 ・ TeX の文書整形コマンド す。そのため , WEB のソースて、は , ログラミング言語に Pascal を使っていま WEB は , 文書整形言語に TeX を使い , プ WEB を使って記述されています。 作成したソフトウェアのほとんどは , 前の由来 て使われていない数少ない単語のひとつ ・ 3 文字単語の中て、 , コンピュータ用語とし tes の頭文字 ・ Knuth の義母の名前 WiIda Ernestine Ba ・「織物・編み物」を意味する英単語が web すが , 83 ] , [ Kn84 ] などにいろいろ書かれていま WEB という名前の由来については , CKn 度しかありませんて、した。 ング言語というと , FORTRAN と Pascal 程 は , 多くの計算機上て、動く汎用プログラミ B の最初のバージョンが設計された当時に れていた」という理由によるものて、す。 WE の汎用プログラミング言語として広く使わ のは , 「 WEB の設計当時 ( 1981 年 ) , 教育用 プログラム言語として Pascal が選ばれた たからて、しよう。 は , やはり Knuth が自分自身て、設計・制作し という理由のようて、す。「織物・編み物」と いうのは , プログラムとドキュメントを縦 糸と横糸のように編んて、いくという WEB の 特徴を表しています。 また , WEB システムを構成するツールて、 ある WEAVE および TANGLE という名前 は , それぞれ「織る・編む」「からませる・も つれさせる」いう意味の動詞て、す。 初めに , 以下て、使う表記法について説明 します。 WEB のように , 多くの言語を扱うシステ ムて、は , 「コンパイラ」や「トランスレータ」 といっても , それがどの言語からどの言語 への変換を行う処理系なのか , また , その 処理系自身はどのような言語て、書かれてい るのか , という点を常に意識していないと 頭が混乱してしまいます。 こて、は CNa81] に紹介され そのため , ている表記法をアレンジした表記法を使っ て , 言語や処理系間の関係を表します。 こて、採用する表記法て、は , 言語 X て、書か れたプログラムを Fig. 1 のように表現しま す。 また , ソース言語 SL からオプジェクト言 語 OL への変換を行う , 言語 X て、書かれたト ランスレータ ( またはコンパイラ ) を Fig. 2 て、 表します。とくに必要がなければ , X は省略 することがあります。 たとえば , Pascal から機械語へのトラン スレータ ( つまり Pascal コンパイラ ) を使っ て , PascaI て、書かれたソースを機械語へ変 換するという過程は , これらを組み合わせ て , Fig. 3 のように表現します。 さらに , この PascaI コンパイラ自体が C 言 語て、書かれていた場合 , その Pascal コンパ イラを C コンパイラを使ってコンパイルする 過程は , Fig. 4 のように表します。 この表記法は , 複雑な生成関係を表すの にたいへん便利なのて、すが , 図を計算機上 表記法 特集ドキュメント作成支援システム て、書いていると一見テトリスをやっている 21

2. 月刊 C MAGAZINE 1992年3月号

SOFT BANK 本 の ~ 五 tle 一三ロ ・ c 言語実用マスターシリーズ ・実践からのアプローチ 新朝に 新 C 言語入門ビギナー編 C 言語の応用 50 例 複雑な C 言語の規則を整理、厳〕数多くのサンプ C 言語を使い 98 上て、どのようなプログラムが作れる ルプログラムを駆使して、 " 誰て、もわかる C " を実現し のかを、豊富なサンプル例によって紹介。 林晴比古著定価 L900 円 上原・石田・乗松・中山・高木共著定価 2 , 370 円 ・ C プログラマのための実践ガイド ・ C 言語実用マスターシリーズ 新 C 言語入門シニア編 C 十十 C 十十の機能を実例を挙げて紹介し、 C 十十による 「最もわかりやすい C の本」として、簡単なプログラ 本格的な開発の事例を豊富なコードと共にわかりやす ムを作れる方を対象に、 C の信を体系的に解 林晴比古著定価 2 , 400 円 く解言 S. ヘクマトプール著定価 3 , 600 円 ・望洋ライプラリ集 ・ c 言語実用マスターシリーズ C : 98 スーノヾーライフラリ 呷新 C 言語入門応用編 グラフィック、ポップアップウインドウなど、豊富な 実用的なプログラムを自分て作成してみたいという 機能を持った究極のライプラリ集。国内のほとんどの処 方を対象に、 C 言語の様々な応用技術を紹介。 理系に対応。ディスク付。柴田望洋著定価 3 , 700 円 林晴比古著定価 2 , 400 円 ・ポケット版 ・ポインタ理解の秘伝を伝授 私 MS-C Ve 「 6.0 関数リファレンス 秘伝 C 言語問答ポインタ編 0 言 0 関丿ファレンス MS-C Ver. 6.0 のライプラリ関数について解説した、 C 言語を習得する上て最大の難関と言われるポイン 新しいタイプのリファレンス。手元て手軽にひけるハ ポインタ第 タについて、先生と生徒との間答形式て初心者にもわ 高瀬典明著定価 2 , 000 円 柴田望洋著定価 2 ′ 600 円 かりやすく解言 ンデイタイフ。 ・最新 ANSI C 標準規格に完全対応 ・ Quick C 活用書の決定版 Quick C Ve 「 .2.0 プログラミング Quick 詳説 C 言語 H & S リファレンス 2.0 プログラミン C 言語プログラマから高い評価を受けている「 C : 本書は、主要な機能からライプラリ関数、エラーメ A Reference Manual 」第 2 版の完訳。 ッセージまて、を網羅した全 C プログラマ必携の書。 S ・ハービソン & G ・スティール共著定価 4 500 円 本田正隆・三浦義武共著定価 2 , 900 円 ・ C STEP UP シリーズ① ・ Turbo C の奥義を示す TurbO C Ve 「 .2.0 プログラミンク 上級・ C 言語の応用 50 例 画面制御騙、ディスクドライフ。制御騙ほか大きく 4 基本操作はもちろんのこと、内部処理の角斤をはじ つに分け、それぞれくふうを凝らしてプログラムを作成。 め、 BGI の活用方法など上級操作も詳細に解誌 上原・中山・石田・井上共著定価 2 , 480 円 井上哲理・酒井恵光・佐藤隆共著定価 2 , 900 円 ・ C STEP UP シリース③ ・より実用的なプログラムを目指す方へ C 鋼題による 実践一 yacc による C コンバイラブログラミング C 言語による MS-DOS 実践 MS - DOS プログラミング入門 プログラミング 入門 「 c マガジン」連載記事を大幅に加筆。字句解析・構 C プログラミング上て、必須な MS-DOS の知識を 文解析の基礎からコード生成・描産化まて、、 C コンパイ 秋冫文著定価 2 ′ 200 円 提示。 ラの内部を徹底詳解。近藤嘉雪著定価 3 , 300 円 ・自然流プログラムのノウハウを公開 ・ BASIC からのアプローチ C によるプログラミング・スタイルブック C 言語の活用理解 具体例を数多く取り上げ、 BASIC の知識を有効に 「美しいプログラムはよいプログラムて、ある」という 利用しつつ、 BASIC から C へ順次移行て、きるように 持論とその成果を実証する、待望の一 -- 一冊。全 C プログ 林晴比古著定価 2 , 300 円 保坂光・若林淳共著定価 2 , 060 円 ラマ必、し 解説。 五 0 ル言 こ 10 クうマのた′、・無物発 ー ( 第を一第イン、・登・・ 級、 CE みは聞 0 感 : よ在コン”イラブログ尹 0 詳説 C 言語 日、 1 ~ しン 4 プロクラミング スタイルプ C 言語の活用理解 定価はすべて税込です。

3. 月刊 C MAGAZINE 1992年3月号

スタ - トアップ C 羊 + 実力養成講座 行 , 回 、プログラムの信頼性と生産性・ 前回までで C 十十に関する基本的な解説は終えました。今回 , 理論編では , なせ C + 十 ? なせオプジェクト指向 ? をプロ 、グラムの信頼性と生産性から解説し , 実践編では , ディレクト リを下降しながらファイル情報を表示するアプリケーションを しながらラーイとは何かを解説ます。 理論編 木戸研ー / 龍崎昌平 なぜ , オプジェクト指向型言語の C 十十な は , オプジェクト指向を意識したものにな ′′オプジ土クト指向型言語 のか , C 十十のどこにメリットがあるのか , らざるを得ません。これらの項目は , 並列 ツとしての C 十十 そして C 十十のオプジェクト指向機能は , ど 的なものて、はなく , 相互に関係を持ったも のようにして使うのか , 今回と次回の 2 回に のとしてとらえることがて、きるて、しよう。 前回は , C 十十のオプジェクト指向的な側 C 十十という変わった名前自体 , C にクラス わたってお話します。 面に関して概説しました。前回も述べまし を導入した (C with CIass) という意味て、あ たが , C 十十はオプジェクト指向型プログラ / プログラムの信頼性と C 十十 り , オプジェクト指向を意識したものと , ミング言語としては , 非常に貧弱な仕様を この呼称からもうかがえます。 持った処理系て、す。むしろ , オプジェクト 前回述べたように , オプジェクト指向技 つまり , C 十十にはあって , C にはない最大 指向言語として解釈すること自体に無理が 術というのは , 非常に単純なものて、す。前 の要素が , オプジェクト指向機能なのて、す。 あるのかもしれません。 極端にいえば , C 十十は C 言語のエンジニア 回は , それを C 十十に当てはめて解説したわ しかし , 貧弱とはいえ , 言語仕様にオプ けて、すが , いうまて、もなく , その中心とな が , オプジェクト指向プログラミングを行 ジェクト指向的な要素が見え隠れしている る概念はオプジェクトて、す。 うための言語て、あると考えてもよいて、しよ ことは否定てきません。言語の設計者て、あ オプジェクトは , データ型宣言十データ う。けれども , 本稿をお読みの方々は , おそ る Bjarne Stroustrup によれば , C 十十は , 操作関数宣言という特殊な構造体に , 情報 らくまだオプジェクト指向型言語としての 以下の三つの目的に沿って設計されたとの 隠蔽機能を付け加えたものて、 , C 十十のクラ C 十十について , 釈然としない部分を感じて ことて、す ( 「プログラミング言語 C + + の概要」 スがそれにあてはまります。そのクラスに いると思います。実際 , 開発現場において , ( AnOve Ⅳ iewofC 十十 ) 『日経エレクトロ おいて , いちばん重要なものが , 情報隠蔽 最近は C 十十のソースコードやシステム仕様 ニクス』 1987 2.9 P. 240 ) 。 機能て、す。その情報隠蔽機能を利用するこ などを目にする機会が多くなってきていま ①よりよい C 言語であること とにより , 変数の局所化が可能となります。 す。しかしそれらの中て、 , オプジェクト指 ②データの抽象化をサポートすること C 十十のクラスの持つ情報隠蔽機能は , 変数 ③オプジェクト指向プログラミングをサ 向言語としての C 十十という観点から , 評価 の局所化のために存在するといっても過言 ごくわずか ポートすること に値するようなプログラムは , て、はありません。まず , これについて説明 にしかすぎません。 C て、開発してもかまわな よりよいプログラミング言語を実現する しましよう。 いようなプログラムがほとんどなのて、す。 ために , データの抽象化を取り込んだもの に スタートアップ C 十十 87

4. 月刊 C MAGAZINE 1992年3月号

こう主張しているだけあって , A-TangI e が生成する Ada のコードは , きちんとイン デントをつけてフォーマットされています。 オリジナルの WEB のように「 TANGLE の出 力はどうせ計算機が処理するだけだからべ タ書きてよい」と割り切ってしまうのとどち らがいいかは , 考え方や使い方によるて、し なお , Ada 用の WEB べースのシステムと しては , このほかに AdaWeb CPa90] とい うものもあるようて、すが , ここて、は省略し P DER ーます。 Fig. 14 SPIDER 用の WEB べースのシステム」を出力してく 「 C 言語についての記述」を与えると , 「 C 言語 たとえば , SPIDER コンパイラに対して , す。 cc や lex などと同じ範疇の処理系だといえま ンパイラジェネレータ」て、す。 UNIX 上の ya ステムを生成するシステム」っまり一種の「コ テムそのものて、はなく , 「 WEB べースのシ SPIDER [Ra89) は , WEB べースのシス CW CW ℃ WEB S:SPIDER CW れます。この「言語 X についての記述」を記述 する言語が SPIDER て、す (Fig. 14 ) 。 SPIDER は CWEB をベースとして作られ ているのて、 , SPIDER が出力する WEB ファ イルは , TANGLE て、 Pascal に変換するのて、 はなく , CTANGLE を使って C 言語に変換 するようになっています。厳密には , 前述 した CWEB の WEB ファイルとは少し異なる のて、すが , ここて、はこの SPIDER が出力する WEB ファイルのことを CWEB ファイルと呼 ぶことにします。 この SPIDER を使って , 言語 X 用の TAN GLE(XTANGLE と呼びます ) を作る過程を Fig. 15 に示します。同様の手順て、言語 X 用 の WEAVE(XWEAVE) も生成て、きます。 今のところ , SPIDER に付属している言語 記述ファイルには , ・ C ( 十十 ) ・ AWK ・ SSL ( 構造工デイタの仕様記述言語 ) があります。 ・ Ada ののソースを書き換える必要がある ) ことはて、きない (SPIDER システムそのも ラミングパラダイムの言語に対応させる を作るだけて、は , まったく違ったプログ して書かれているのて、 , SPIDER ファイル ・字旬解析のコードが A1g01 系の言語を想定 ることはて、きない ・ FWEB のように , 途中て、言語を切り換え システムて、す力す , このように , SPIDER はなかなか魅力的な Fig. 15 SPIDER による言語 X 用の TANGLE(XTANGLE) の生成 XTANGLE. SPIDER XTANGLE. WEB XTANGLE. C XTANGLE. EXE CW X CW X CW CW CW CW C C X C CW M S:SPIDER CW:CWEB C ℃言語 M : 機械語 M C コンノヾイラ という不満はあります。 n web cnoweb [ F090 ] という処理系は , 名前か らも想像て、きるとおり , WEB を拡張したシ ステムというよりは , WEB に対するアンチ テーゼとして提唱されたシステムて、す。コ ードとドキュメントの両方をひとつのソー スにまとめて書くという点は WEB と同じて、 すが , WEB とは違って , TANGLE や WEA VE などによる変換なして、そのコードをその まま TeX にも C コンパイラにも通せる , とい う特徴があります。 cnoweb は , 「プログラムとドキュメント をまとめて管理する」というよりは , 「プロ グラムを ( コメントも含めて ) TeX て、清書す る」ためのシステムて、あるといえるかもしれ ません。 cnoweb て、書かれたコードには , / * A cnoweb program *input cnoweb *titIe{A c noweb program} main( ) といったように , 先頭のコメントの一部と して Yinput cnoweb という TeX のコマンド が書かれています。そのため , このソース を TeX に通すと , cnoweb. tex という TeX の マクロファイルが読み込まれます。このソ ースを C コンパイラに通しても , コメントの 部分が無視されるのて、 , やはり問題なくコ ンパイルて、きます。 また , 先頭に限らす , ソース中のあらゆ る箇所のコメント内て、 , TeX のマクロが使 えます ( 逆にいえば , TeX の文法に違反する コメントは使えません ) 。標準の pIainTeX のマクロのほかに , Table 3 に示したマクロ が追加されています。 SPIDER 32 C MAGAZINE 1992 3 CTANGLE

5. 月刊 C MAGAZINE 1992年3月号

新 C 言語入門 五ロ る 人 に 始 本 格 的 C を め 0 こ く全 3 巻 > 林晴比古著 [ ビギナー編」 定価 1 , 900 円 c 言語にはじめて接するという方を対象に、 C 言語の基本的な知識を確実に身につけても らうことを目的としました。利用頻度の高い知識だけを整理して提供し、誰でも簡単なプ ログラムをすぐ書けるように導いていきます。 [ シニア編」 定価 2 , 400 円 簡単なプログラムなら作成できるという方を対象に、 C 言語の仕様を体系的に解難し い概念などはわかりやすく図表化して規覚的に理解できるように配慮しました。単に文法 の解説にとどまらずい C の思想″そのものについて解き明かした本格的解説書です。 [ 応用編」 定価ム 400 円 C 言語実用マスターシリーズ元結編。実用的なプログラムを自分で作成してみたいという 方を対象に、 C 言語の様々な応用技術を紹介。開発対象に合わせた実例プログラムを用い て、詳しく解説しました。 言臥門 1 新 ロ . 第口一 林晴比古 応用編 ビギナー編 林晴比古 ・イ一ア編 林晴比古 SOFT BANK ソフトバンク出 ~ 部 定価はすべて税込みです

6. 月刊 C MAGAZINE 1992年3月号

特集 ドキュメント作成支援システム e に変換される といった点があげられます。 そのほか , 予約語の扱いなど , PascaI に 依存した部分の書き換えも当然行われてい ます。 CWEB は , UNIX 用の TeX の配布ファイ ルの中に入っていることもあり , かなり出 回っているようて、すが , 実際にどの程度使 われているかは不明て、す。 EB FWEB CKr91] の、、 F 〃は , FWEB が CW 略します。 ているため , CA090] の紹介はここて、は省 CKr91) のほうが機能が高く , 広く使われ 処理系 CA090) がもうひとつありますが , 以外に , まったく同じ FWEB という名前の 実は , ここて、紹介する [Kr91) の FWEB いうのは WEB の欠点といえます。 ュメントをテキスト端末上て見られないと て大きな長所となっています。実際 , ドキ = 番目の点は標準の WEB システムに対し という点が異なります。 結果を見ることができる 力が可能なので , テキスト端末上で出力 ・ nroff によるテキストファイル形式での出 がインストールする必要がない ンドなので , TeX のようにあとからユーザ ・ troff は多くの UN Ⅸシステムの標準のコマ りやや劣る ・ troff による印刷結果は , 機能的には TeX よ ため , WEB と比べて , troff/nroff を使っている点が特徴て、す。その cweb は , タイプセッタとして TeX て、なく のて、 , 注意してください 6 ] 。これは CWEB とはまったく別のものな て , cweb という処理系もあります [Th8 語を採用した WEB べースのシステムとし CWEB 以外に , プログラム言語として C 言 EB をベースとして FORTRAN への対応を行 ったことから来ていますが , 現在て、は , C, C 十十 , FORTRAN 77 , FORTRAN 90 , Ratfor, TeX という多くの言語に対応した システムに拡張されています。 , こて、注目してほしいのは , プログラミ ング言語として TeX を扱うことがて、きる点 て、す。つまり , TeX のマクロファイルをプ ログラミング言語のソースと見なして , Te X のソースを WEB 方式て、書いて , マクロと そのマクロについてのドキュメントとをい っしょに管理することがて、きるわけて、す。 TeX のマクロはわかりにくいことて、有名て、 すから , これは大きな意味があります。た だし , この FWEB の TeX モードを使うと , TANGLE の出力も WEAVE の出力も TeX のコードになるのて、 , どちらがマクロて、ど ちらがドキュメントなのかをよく考えてお かないと混乱が生じます。 将来的には , UNIX の make コマンドて、読 み込まれる MakefiIe をプログラミング言語 として扱えるように拡張する予定もあるそ うて、す。 さらに , WEB ファイルの途中て、言語を切 り換える機能があるのて、 , これらの言語の うちいくつかを混在させて , 文芸的プログ ラミングを行うこともて、きます。 MWEB CSe87] は Modula-2 用の WEB べ ースシステムて、す。 PascaI て、は , さきほどの case 文のデフォ ルト分岐のように , 標準 PascaI て、定義され ておらず , 実用的なプログラムを書くため には処理系ごとに互換性のない機能を使う 必要があります。また , モジュール ( WEB のモジュールて、はなく , 識別子の名前の隠 蔽などを行う , プログラミングにおけるモ ジュールて、す ) の概念もありません。 これらの問題を解決するために , WEB の PascaI を ModuIa-2 て、置き換えたのが MWE B て、す。 EB Modula-2 は , Pascal の設計者て、もある N iklaus Wirth が設計した言語て、 , Pascal が べースになっていますが , モジュールによ る分割コンパイル , 割り込み , コルーチン , ユーティリティモシュールによるファイル 入出力といった機能があります。システム 記述言語としてかなり強力ぞすが , なぜか あまり利用されていない言語て、す。 MWEB は , Modula-2 に対応させるため ・識別子の長さの延長 ・コメント記号の変更 ・大文字・小文字の区別 〃の処理の変更 などの自然な変更が行われているほかは , ほとんど WEB と同じて、す。 eb A-Web [WB89] は Ada 用の WEB べー スシステムて、す。 Ada は , 軍事用途などの , 大規模リアルタ イムソフトウェアの開発用の言語て、 , やは り Pascal を基礎としています。 Modula ー 2 の モジュールに対応する「パッケージ」という 概念があるほか , リアルタイム処理をサポ ートするため , タスクや delay 文などの機能 が盛り込まれています。 A-Web システムのうち , A-Web から Te X への変換を行う A ーⅥ ave は , オリジナル の WEAVE をもとに WEB て、 ( つまりプログ ラム部分は PascaI て、 ) 書かれています。それ に対して , A - Web から Ada への変換を行う A-Tangle は , WEB て、書かれたオリジナル の TANGLE を使わずに , 新たに A ー Web て、 ( つまりプログラム部分は Ada て、 ) 作ったもの を使っています。これは , 「オリジナルの TA NGLE が , 文脈依存文法を使って書かれて いるのて、 , ほかの言語への移植が難しい上 , ( 先ほどの TANGLE. PAS のリストを見ても わかるとおり ) ソースコードを圧縮してし まうから」と CWB89] の論文は主張してい ます。 特集 ドキュメント作成支援システム 31

7. 月刊 C MAGAZINE 1992年3月号

言吾プログラマ fo 「著 ン一と プリンタ C コー沙、診断システム ライフラリ クラフィック印刷機能の関数ライプラリです。直線・円・ ANSI 仕様および K & R 仕様に基づいて、 C 言語プログラ 文字の印刷はもちろん、棒・層・折れ線グラフの印刷もでき、 ムの誤り易いコーティン久移植性の悪い箇所および保守性 数値データもビジュアルに表現できます。 をそこなう箇所を診断します。 文寸応コン′くイラ : Lattlce C 、 Microsoft C 、 Quick C 、 TU 日 BO C 対応コンパイラ : ポータブル C 、 Lattice C 、 Mic 「 osoft C 価格 . NEC PC ー 9800 版 36.000 円 NEC PC ー 9800 版 ( ソース付 ) に 8.000 円 価格 . SUN-3 版、 NEWS 版、 HP9000 版各円 8 , 000 円、日立 2050 / 32 版Ⅱ 0.000 円、 NEC PC ー 9800 版 58 ′ 000 円 ーオーと ビジネス演算 - CEOPOL/CEOREPO ライフラリ COBOL に優る演算 ( 整数部 1 8 桁、小数部 1 8 桁 ) と数値編 F9450 の表計算テータと日本語ワープロテータを、日立 集機能 ( COBOL と同等 ) を提供する関数ライプラリです 2050 のテータへ変換します。 対応コンパイラ : ポータブレ C 、 Microsoft C 、 Quick C 、 TU 日 BO C 価格 . 日立 2050 / 32 版 32.000 円、 2050 / 32 版 ( ソース付 ) 480.000 円 NEC pc ー 9800 版田 .000 円 適用機種 . 日立 2050 、 2050 / 32 、 2050G 〔姉妹品〕オートビー科学技術計算ライプラリ科学技術計算 ( 仮数部 256 桁、指数部一 2048 価格 . 各 0 ′ 000 円 ~ 十 2047 ) を提供する C 言語ライプラリです PG-KIT C & B A S ー C ジェネレータ ワープロ感覚でレイアウトをイメージ入力する事により、 2D5 日 - ユキ ) し合ネ 1 入力画面部分およひ印刷部分の C 言語または BAS ℃プログ 営業課 ラムを、自動的に生成する開発支援ツールです。 TEL045 ( 64D1211 FAX 045 ( 64D9646 適用機種 . NEC PC -9800 〒 2 引神奈川県横浜市中区山下町 50 ー 2 ( 横浜昭和ビル ) 対応言語 . N88 一日本語 BAS ℃ ( 86 ) 、 Lattice C 、 Mlcrosoft C 、 OulCk C 、 TURBO C 価格 . C 言語版、 BAS ℃版各 29 ′ 800 円、 C & BASIC 版 49.800 円、 C ライプラリ各 7 , 900 円 製品についてのお問い合わせは、上記まで電話または FAX でお気軽にこ・連絡下さい。 く資料請求番号 170 〉 大好評 . 〃林晴比古の本 お近くの書店でお求め下さい SOFT 定価は税込み BANK ・ C 言語実用マスターシリーズ ・ MS ー DOS 実用マスターシリーズ 新 C 言語入門ビギナシニア編 / 応用編 ] 新 MS ー DOS 入門 [ ビギナー / シニア / 応用編 ビギナー編・定価 1 , 900 円シニア / 応用編・定価各 2 , 300 円 ビギナー編・定価 1 900 円シニア / 応用編・定価各 2 , 400 円 ・自然流プログラミングのノウハウを公開 ・ピギナーのためのレクチャーブック プレイ MS-DOS C によるプログラミング・スタイルブック 定価 2 , 300 円 定価 1 , 960 円 ・ C 言語の秘められた能力を解き放つ ・より良く、美しいプログラムを書くために C プリプロセッサ・パワー B C によるプログラミング・スタイルブック 定価 2 , 270 円 定価 1 , 860 円 ・初級 C 言語講座 ・情報を見夫わないための 14 章 パソコン書整理学 PIay the C[ 上・下 ] 定価各 1 , 550 円 定価ー 800 円 ・はじめての Tu 「 bo C プログラミング ・バイト & ワードの風にのって第 2 集 Turbo C 入門 オペラ座のパソコン 定価 1 400 円 定価 2 , 680 円 称 名 一三ロ 上 一般に商標です。 ・お問い合わせ

8. 月刊 C MAGAZINE 1992年3月号

という大きな欠点がありま ように見える , 具体的には , MS-DOS 上て、あれば , と似ています。ただ , このニワトリはちょ TANGLE FILE. WEB っと変わっていて , を実行すると , TANGLE. PAS が生成され ニワトリ (TANGLE. EXE) 自身は卵を生 る , という実現方法が一般的て、す。ここて、 まない て、きた TANGLE. PAS を Pascal コンパイラ ニワトリは , なんらかの卵 ( * . WEB) を を使ってコンパイルすると , WEB て、書いた あたためてヒョコ ( * . PAS) を孵す。 プログラムが実行て、きるようになります。 さて , WEB システムは , TANGLE と W ・ヒョコ ( * . PAS) は成長してトリ ( * . EX E) になる。 EAVE というふたつの要素から構成されま こて、複雑なのは , この TANGLE そのも す。 TANGLE が WEB から Pascal およびプ ののソースが , WEB て、書かれている , とい ということになっています。 こて、おもし ールファイル ( 詳しくは本誌 23 頁を参照 ) へ う点て、す。そのため , TANGLE 自身のオプ ろいのは , このニワトリは , ニワトリの卵 ジェクトコードは , Fig. 7 のような手順て機 (TANGLE. WEB) だけて、なく , ほかのトリ の変換 , WEAVE カ SWEB から TeX への変換 をそれぞれ行います。 械語 ( 仮に TANGLE. EXE とします ) に変換 の卵 ( * . WEB) も孵してくれるという点て、 す。 します。 さて , 創造主の神様の立場になると , G LE この図を見ると , TANGLE. EXE のルー のようなニワトリを「創造」するのは結構め プがて、きていることがわかります。つまり , 変換の途中で必要な TANGLE. EXE が , んどうて、す。普通は単に卵かニワトリかを TANGLE は , WEB のソース . から Pascal 変換の最後にならないと生成されない 作ってしまえば , あとは勝手に増えるわけ のソースを生成するものて、す。先ほどの表 己法て、書くと , TANGLE そのものは Fig. 5 て、すが , このニワトリの場合はそうはいき という問題があります。 TANGLE. EXE を のように表現て、きます。 作るには TANGLE. EXE が必要だ , という ません。 ちょっと考えてみると , この TANGLE を使って , Ⅵ B のソース わけて、す。 から機械語のオプジェクトコードを生成す まず卵を創造し , その卵から神様の手 この TANGLE. EXE と TANGLE. WEB と でヒョコを孵す (=TANGLE. WEB を作 るには , Fig. 6 のような手順を取ります。 の関係は , 「ニワトリと卵」の関係にちょっ Fig. 1 Fig. 2 ソース言語 S 、らオプジェクト言語 OL への変換を行う , 言語 X で書かれたプログラム 言語 X で書かれたトランスレータ ( コンパイラ ) W の構成要素 1 三ロ OL SL Fig. 3 Pasca にンバイラによるコンバイルの例 Fig. 4 Cå ー語で書かれた Pasca ロンバイラのコンバイル M M C P P P P:Pascal M : 機械語 P:Pascal M : 機械語 C ℃言語 22 C MAGAZINE 1992 3

9. 月刊 C MAGAZINE 1992年3月号

提携・ LANGIJAGE 誌 1992 年 3 月 1 日発行 ( 毎月 1 回 1 日発行 ) 第 4 巻第 3 号通巻 30 号 1990 年 2 月 2 日第 3 種郵便物認可 / 監修・石田晴久 C 言語技術情報誌・ C マカジン 980yen MAR. VOI. 4 No. 3 1992 も〇 VFA の誕生から仕組まで フリーソフト作成記 ンスアムⅡ・ハイバーテキストシステム I ・文芸的プログラミングと WEB ドキュメント作成支援 特集 ・ Visual FiIe Administration プログラム rVFA 」・ XGCC ⑩・ rANSI C 言語入門講座」活用集・立体充境ケーム「 TAKA3DES 」 5 2HD 特別付録 ・トキュメント作成支援ツール >DOS 対応「 WEB 」「 Finfo 」「 Efin 」「 info 」»PC -9801 対応「Ⅱ H 阯円日本語 perITeXinf0 ・本誌掲載ソース 明解 AN 引 C 言語入門講座入出力処理とライプラリ ( 2 ) / djgcc 詳解講座グラフィックライプラリ ( 1 ) / X68k 活用講座 / スタートアップ C 十十 実践アルゴリズム戦路再帰 ( 1 ) / プログラミングの工ッセンス「もしも」 / 提携記事 >The ReaIities of Po 血 b 厄 Software

10. 月刊 C MAGAZINE 1992年3月号

グラミングに要する時間の点て、 ) 高価にす ぎ , あるいは , アプリケーションに生ずる オーバヘッドが大きすぎるのて、実用性がな いということもありえます。 公平に言って , ポータビリティに対する 障害は , 実は , コンヒ。ュータ業界における 競争と様々な技術革新がもたらした副作用 て、す。ある 1 社のコンヒ。ュータしか世の中に 存在せず , 最先端の技術がその唯一の機種 との互換性がないだけの理由て、葬り去られ るなんてことをあなたは望みますか ? IS O (lnternational Organization for Standa rdization, 国際標準化機構 ) と IEC (lnterna tional EIectro-technicaI Committee, 国際 電気技術委員会 ) の合同技術委員会 ( J 。 int TechnicaI Committee) は , ソフトウェアの 移植のための枠組みを策定しようとしてい る機関て、すが , 日本が提案したシステムイ ンタフェイスの標準案を否決しました。そ れは , 日本企業がその標準規格を大量の安 いチップセットに実装して市販し , その他 の企業を干上がらせてしまうことを恐れた からて、す。 ハードウェア 工ミュレーション ードウェアメーカーて、も , 移植性につ いて工夫しているところがあります。たと えば Orange Micro 社の Mac286 カードは , Macintosh Ⅱの上て、 DOS プログラムを使え る , という製品て、す。 Applied Engineerin g 社の PC Transporter と Michtron 社の PC Speed は , それぞれ Apple II GS と Atari S T の上て、 , やはり DOS プログラムを走らせる ための製品て、す。しかし , あなたの顧客が ードウェア工ミュレータを買う フいフノ、 と期待するのは虫がよすぎますね。こうい う製品は , むしろ最初から DOS マシンを 1 台 買った方が安くつくぐらい高価な場合があ るし , しかも本来の DOS マシンほど速くな こともあります。それはしよせん , 郷に 入って郷を無視しているのて、すからね〔 = 郷に入れば郷に従え , の逆を行っている〕。 アプリケーション 市販のアプリケーションが別のプラット ホームにも移植されて , データファイル (D TP 用 , ワープロ用 , データベース用 , スプ レッドシート用など ) のサポートが楽にて、き るようになることもときにはあります。た とえばデータベース管理言語て、は , lnform ix Software 社の lnformix 4GL や Faircom 社の c-tree PIus などの第四世代言語は , 信 じられないほど多数のプラットホームをサ 一一五を使 ポートしていますから , フいフⅱロ ってアプリを書くという手もあります。 疑似コード (pseudo code, p-code) を使 って実装されているシステムもあります。 コンパイラが p-code のトークンから成るオ プジェクトファイルを生成し , それを , 特 定のプラットホーム用に書かれたランタイ ムモジュールが解釈します。こういうシス テムは , ネイテイプコードに比べると 5 倍か ら 7 倍は遅いのて、すが , ネイテイプコードま て、生成する , というタイプの製品も一 あります。 噂て、は , Microsoft 社は , Windows 3.0 用 に書かれたプログラムを , 簡単に Macintos h に移植するためのツールを開発中だそうて、 す ( Windows のルック & フィールをめぐる訴 訟が決着しないと世に出ないて、しようが ) 。 Microsoft はすて、に , 「 Sun のワークステーシ ョン用の Windows は出す」と発表していま す。 IBM と AppIe は最近提携して , 両者のシ ステム間の移植が簡単にて、きるような OS の 作成に取り組んて、います。これらの契約の たぐいが , 、実際に多くのプログラマの役に 立ってくるのは , まだ何年も先のことて、す が , しかし未来の諸標準に適合するプログ ラムを書きたいなら , 今からそれを始めな ければなりません。 ANSI コンパイラと PLTLIB 今日のソフトウェアのポータビリティは ふつう , ソフトウェアを二層構造て、設計 ~ 実 装することによって達成されます。核とな る層を ANSI 規格の高級言語て、書き , プラッ トホームに固有の層て、もって , ANSI の言語 がカバーしていないものをすべて扱います。 つまり , ソフトウェアの中の ANSI て、は対応 て、きない処理やプラットホームに特有の部 分を , それだけを別建てにして , 各プラッ トホーム固有のサプルーチンのライプラリ に収めるのて、す。このプラットホームライ プラリ (PLTLIB) が , 画面表示 , ファイル 操作 , タスク制御 , 時間の変更といった処 理をサービスします。 アプリケーションの中て、 , PLTLIB のコ ードが占める比率は , だいたい 20 ~ 35 % 程 度て、す。 Lotus 1 ー 2 ー 3 の最新バージョンは , 噂て、は 20 % がプラットホーム固有のコード て、 , 他は ANSI C のコードだそうて、す。 ANSI 規格の高級言語は , いろいろなプラ ットホームて、幅広くサポートされているも のを選んて、ください。そうすると , C がベス トということになるて、しようね ( プログラマ の数の多さや使えるツール類の豊富さから いっても ) 。 選んだ言語によって , PLTLIB 用にどれ だけのコードを書かなければならないかも 決まります。たとえば , タスク制御の多い アプリを書くのなら , Modula ー 2 を選べば , タスク制御用の PLTLIB を言語本体が内蔵 していますから , ーっプラットホームにつ き 3 ~ 4 個のルーチンを自分て、書かずに済み ます。 ポータブルなソフトウェアの現実 13