高度な検索
Developer Connection
Member Login ログイン | ご入会 ADC連絡先

spacer image


Technote 1066

E.T.O: The Right Tools for the Right Job


内容

E.T.O.について

E.T.O.の主要コンポーネント

地平線の彼方に見えるもの:プレリリース版ツール

まとめ(Summary)

「私が関わっているプログラミング作業に利用できるApple製開発ツールには、どのようなものがありますか?」という問い合わせがデベロッパのみなさんからたびたび寄せられることが、このTechnoteを作成する動機となりました。本Technoteでは、AppleのE.T.O.(Essentials - Tools - Objects)の主要コンポーネントを紹介します。E.T.O.はCD-ROM2枚組で提供され、Apple Developer Catalog Home Page(http://www.devcatalog.apple.com, 日本ではhttp://www.byse.co.jp/adc/)で入手可能です。

Macintosh用製品を開発しているデベロッパにとって本Technoteは、自分たちが所有しているApple製開発ツールやユーティリティを知るためのリファレンスとして役立ちます。しかしながら、入手可能な多数のサードパーティ製開発ツールに関してはカバーしていません。サードパーティ製品のベンダーリストが必要な場合には、Apple Developer Catalog Home Page(http://www.devcatalog.apple.com)をご参照ください。

註:
本TechnoteはE.T.O. 21が出荷された直後に作成されました。すべてのリファレンスは、E.T.O. 21においては正確です。E.T.O.は定期的にアップデートされているので、AppleのCore Tools Products Home Page(http://www.devtools.apple.com/eto/)で最新版を確認するようにしてください。


E.T.O.について

E.T.O.は、アプリケーションをC、C++あるいはアセンブリ言語で書き、それらのデバッグとテストを行うデベロッパに対してコアとなる開発ツールを提供するための、Appleの最も重要な製品です。E.T.O.は、680x0およびPowerPCのどちらのMacintosh用アプリケーションを開発するのにも適しています。
E.T.O.は、MPW開発環境やMacAppアプリケーション・フレームワーク、さらにはOpenDoc Development Frameworkを含んでおり、定期購買形式でのみ販売されています(sold only by subscription)。アップデートは、その購買契約を結んでいる1年の間に、4ヶ月毎に購買者に自動的に送付されます。新たに購買契約を結んだ場合には、購入者はただちに最新版を受け取ることができ、さらに、2回の定期アップデートが行われます。価格は、年間3回発行の新規購入で195ドル、また、更新費用は年125ドルです。
E.T.O.は完全な開発システムを提供するだけでなく、Metrowerks CodeWarriorやSymantec C++には無いコンポーネントをも含んでいるので、それらの人気の高い開発環境と組み合わせて使用することも非常に有用です。他の開発環境を使用している場合、E.T.O.はMacintosh Programmer's Assistantやパフォーマンス解析ツール、Pascal-to-Cコンバータ、さらにはVirtual Userテストツールといったものを含んでいるため、非常に便利に感じることでしょう。CodeWarriorのユーザは、MrC/MrCppコンパイラのプラグイン版やPower Mac Debuggerを利用することも可能です。Appleは現在、E.T.O.をCodeWarriorあるいはSymantec C++とともに購入する方に対して、特別バンドル価格で提供しています。E.T.O.とSymantec C++ Release 5を一緒に購入する場合は249ドル、また、E.T.O.とMetrowerks CodeWarrior 9の場合は499ドルというように、わずかに100ドル追加するだけで、E.T.O.の定期購買契約を結ぶことができるのです。

E.T.O.の主要コンポーネント

MPW Shell
Shellは、Macintosh Programmer's Workshop(MPW)開発環境の中核をなすものです。これは、マルチウィンドウ形式のテキストエディタとコマンド実行環境を統合したものであり、数々のビルトインコマンドと強力なスクリプティング言語をサポートしているので、それを使用することによりユーザは自分のニーズに合わせて開発環境をカスタマイズすることができます。Shellはまた、統合ソースコード・コントロール・システムであるProjectorも含んでいます。これを使用することにより、プログラマのチームが開発にあたるような大規模で複雑なソフトウェアプロジェクトの管理を単純化することができます。



SC/SCpp -- CおよびC++コンパイラ(68K)
SCとSCppは、680x0コードを生成する新しいC/C++コンパイラです。MPWに含まれていた以前のコンパイラよりもコンパイル速度が向上しており、Power Macintoshではネイティブモードで動作します。また、新しく導入されたCFM-68Kランタイムモデルもサポートしています。

MrC/MrCpp -- CおよびC++コンパイラ(PowerPC)
MrCとMrCppは、MPWに含まれる新しいコンパイラです。コンパイルに要する時間が大幅に短縮されており、また、Power Macintosh上で最高速の実効速度を実現するために、効率が良く高度に最適化されたPowerPCコードを生成します。MrCはANSI C規格(ANSI X3.159-1991)に、また、MrCppはANSI C++規格草案の作業文書(ANSI C++ working paper、ANSI X3J16)に準拠しています(ただし、テンプレートと例外処理は除く)。

アセンブラ(68KおよびPowerPC)
E.T.O.には、68xxxのすべてのインストラクションセットをサポートしたアセンブラと、PowerPCインストラクションセットをサポートしたアセンブラの2つが含まれています。68xxxアセンブラは、MC68000、MC68010、MC68020およびMC68030マイクロプロセッサ、MC68851ページドメモリ管理ユニット(PMMU)、MC68881およびMC68882浮動小数点コプロセッサのすべてのインストラクションとアドレッシングモードをサポートしています。

MPWツールとスクリプト群
E.T.O.には、開発作業を補助するための数々のツールとスクリプトが用意されています。それらの中にはリンカやMakeツール、リソース操作や解析のためのツール、ファイル比較ユーティリティ等が含まれています。

MacApp(68KおよびPowerPC)
MacAppは、先進的なオブジェクト指向アプリケーション・フレームワークおよびクラスライブラリです。これを用いることにより、オブジェクト指向プログラミングの利点を活用しながらPower Macintoshおよび680x0用アプリケーションの開発を効率化することが可能です。より詳細な情報に関しては、AppleのMacApp Home Page(http://devtools.apple.com/macapp/)をご覧ください。

OpenDoc Development Framework
ODFは頑健性を備えた(robust)オブジェクト指向フレームワークであり、これを使用することにより、クロスプラットフォームのOpenDocコンポーネント開発を単純化することが可能です。ODFは、コンポーネントの標準的な動作(component's default behavior)の大部分を実装しているので、OpenDocコンポーネントの開発プロセスが容易になります。より詳細な情報に関しては、AppleのOpenDoc Development Framework Home Page(http://devtools.apple.com/odf/)をご覧ください。

68K Macintosh Debugger
68K Macintosh Debuggerは680x0 Macintosh用アプリケーションをデバッグするためのone-machine/two-machineデバッガであり、68kおよびPowerPCのどちらのマシン上でも動作することが可能です。このデバッガは、従来形式の68Kアプリケーション(classic 68K application)、CFM-68Kアプリケーションおよび共有ライブラリのいずれをもデバッグすることが可能です。デバッガのホストは68K Mac DebugServicesという「ハイレベルな核」("high-level" nub)を通じて、ダイレクトコールバック経由で同一マシン上の、あるいはAppleTalk経由でリモートマシン上のターゲット・アプリケーションと交信します。

Power Macintosh Debugger
Power Macintosh Debugger 2.0はPower Macintoshネイティブアプリケーションをデバッグするためのone-machine/two-machineデバッガです。デバッガのホストはPower Mac DebugServicesという「ハイレベルな核」を通じて、ダイレクトコールバック経由で同一マシン上の、あるいはAppleTalk経由でリモートマシン上のターゲット・アプリケーションと交信します。リモートモード(two-machineモード)では、ホストはPPC Debugger Nubという「ローレベルな核」("low-level" nub)を通じてシリアル接続で、ターゲット・アプリケーションと交信することも可能です。「ハイレベルな核」はデバッグ中のプロセスを止めるだけでターゲットマシン全体を停止させてしまうことがないので、できる限りをこちらを使用するようにしてください。逆に、「ローレベルな核」はターゲットシステム全体を制御することができるので、例えば割り込み時に実行されるようなローレベル・コードをデバッグするときに必要になります。
Power Mac Debuggerはまた、ASP(Adaptive Sampling Profiler、適応型サンプリングプロファイラ)機能も有しています。ASPは、コードの各々の部位がどの様な頻度で実行されるかを測定することが可能です。ASPはデバッガ組み込みの機能なので、デバッガのPerformanceメニューを使用することでASPを起動することができます。その他のサンプラと異なり、測定のためにソースコードを修正する必要は、ASPを使用する場合にはありません。つまり、パフォーマンスの測定をする際にソースを再コンパイルする必要がないのです。それに加え、アプリケーションのパフォーマンスに関するより正確な状況をつかむことが可能です。というのも、パフォーマンスのサンプリングを行うために挿入したコードによるページングやメモリ消費を心配する必要がないからです。



MacsBug(68KおよびPowerPC用)
MacsBugは、ソフトウェアをアセンブリ言語レベル(680x0およびPowerPC)でデバッグするためのローレベルデバッガです。システム起動時にロードされ、手動で(インタラプトスイッチかユーザが独自に定義したキーが押されることにより)、あるいはプログラム的(プログラム中で特殊なトラップをコールすることにより)に起動されるまでは待機しています。また、MacsBugはその動作中にシステムをほとんど使用しないので、致命的なシステムエラーが発生した場合でも使用が可能です。

ResEdit
ResEditは、メニューやウィンドウ、アイコンやダイアログボックスといったMacintoshのユーザインタフェースの要素や、さらにはその他標準のデータ構造を作成・編集するための、グラフィカルなリソースエディタです。プログラマや上級ユーザならば、既存のインタフェースを修正することはもちろんのこと、アプリケーションに新たにユーザインタフェースを作成することも迅速に行うことができます。

Macintosh Programmer's Assistant
Macintosh Programmer's Assistantは、Toolboxマネージャ、データ構造、ルーチン、定数、リソース、そしてMPWコマンドというように、様々な角度からMacintosh APIの最新情報に迅速にアクセスする事ができる、オンライン・リファレンス・ツールです。MPW環境から「ホットキー」を使用して直接アクセスするためのMPWスクリプトとツールも提供されています。

Virtual User
Virtual Userは、ホストのMacintoshからターゲットのMacintoshの動作を遠隔コントロールすることを可能にする、テスト自動化システムです。ホストは、スクリプトと呼ばれるファイルに記述されているコマンドを読むことにより、ひとつあるいは複数のターゲットマシンでテストを実行することができます。スクリプトは、Virtual Userスクリプト言語で記述されたテキストファイルです。このインタープリタ型手続き言語は、アプリケーションのヒューマン・インタフェースのさまざまな要素を認識・操作し、コマンドの実際の結果を予測値と比較し、その比較結果に基づき分岐するといった能力を、Virtual Userに与えています。

MPW p2c
p2cは、Object Pascalで記述されたソースコードをC++にコンバートするトランスレータです(C++のかわりに標準Cコードを生成するオプションも備えています)。


地平線の彼方に見えるもの:プレリリース版ツール

ResEdit 3.0
ResEdit 3.0は、従来のRedEditをまったく新しく実装し直したものであり、リソースファイルやPEFファイル、さらにはその他のタイプのファイルを編集するための、強力で拡張性と保守性に優れたツールです。これは従来のバージョンのResEditを代替するものであり、以下のような機能を備えています。
  • 標準的なMacintoshアプリケーションのルック・アンド・フィール
  • プラグインやより強化されたテンプレートによる拡張性に富んだアーキテクチャ
  • WorldScriptのサポート
  • Macintosh Drag and Dropのサポート

MrPlus/MrProf
MrPlusは、Apple PEFファイルを操作するパフォーマンスツールです。MPW上で動作し、以下に示すような多数の機能を有しています。
  • 重要なプログラム構造の総数や、さまざまなインストラクションの出現頻度、レジスタの使用頻度といった、実行ファイルの静的な情報を抽出します。
  • オリジナルのファイルに機能追加したPEFファイルを作成します。新たに作成されたPEFファイルは計測用コード(instrumentation code)を含んでおり、実行時にプログラムの動的な情報を出力します。すでにリストされている静的情報に相当するのは、インストラクション・ミックスのレポート中の動的データです。静的情報との相違は、動的情報は出現頻度ではなく実行頻度を表しているという点です。動的情報はまた、ルーチンのプロファイル情報(それぞれのルーチン中で実行されるインストラクションの比率)も含んでいます。
  • 低位メモリ(0〜32K)にデータのストアを行おうとするコードをトラップするための計測用コードを含んだPEFファイルを作成します。
  • インストラクション・キャッシュの利用率の改善と仮想メモリ下におけるページフォルト数の減少を行うために、PEFファイル中のコードの各部位の順番を変更し最適化します。
MrProfは、MrPlusにより計測用コードを挿入されたプログラムを実行した際に収集されたデータを、テーブル形式およびグラフィック形式で表示するアプリケーションです。MrProfの入力データは、.pmapファイルとオプションのxcoffファイル、そして、ひとつ以上の.pcntファイルです。

PPCProffおよびProff
PPCProff(PowerPCプログラム用)とProff(従来形式の68Kプログラム用)は、CあるいはC++でコンパイルされたプログラムに対するプロファイリングおよびパフォーマンスモニタリング機能を提供します。プログラム実行中にコールされるすべてのルーチンに関して、Proffツールはコールする側およびコールされる側のルーチンの識別子と、それぞれのルーチンで消費した時間を記録します。

PPCProffは、PPCLinkに -profileオプションを指定してリンクしたPowerPCアプリケーションおよび共有ライブラリを実行したときに生成されるProfiler.pghデータファイルを解析し、その結果を出力します。

Direct SOMobjects for Mac OS
このフォルダには、MrCppコンパイラのプレリリース版の"Direct-to-SOM"機能を利用するための情報が含まれています。この機能を利用することにより、IDL言語やIDLコンパイラを使用することなく、C++を使用するだけでSOMベースのクラスを作成することが可能です。このフォルダにはまた、新しいSOMobjectsヘッダファイルが含まれているので、SOMobjects for Mac OS 2.0.8と一緒にインストールされる標準セットを置き換えて使用してください。

MrC/MrCpp - CodeWarrior用プラグイン版
Metrowerks CodeWarrior開発環境で使用可能なMrC/MrCppのプレリリース版です。
CodeWarrior 9以降でのみ使用可能であることに注意してください。

まとめ(Summary)

E.T.O.は、C、C++あるいはアセンブリ言語プログラマをサポートするためにデザインされたAppleのコア開発ツールを多数集め、それらを提供するためのものです。また、堅固な開発環境(Macintosh Programmer's Workshop)やコンパイラ、デバッガ、アプリケーション・フレームワーク、テスティングツールを含んでおり、それらを使用することにより68KおよびPower Macintosh用アプリケーションの開発を能率的にすることが可能です。

詳細な参照資料
E.T.O.あるいはそれに含まれるコンポーネントに関してご質問やコメントがある場合は、devsupport@apple.comにe-mailをお送りください。より詳細な情報は、AppleのDeveloper Tools Home Page(http://devtools.apple.com/)でご覧になれます。
E.T.O.に関するメーリングリストもあります。サブスクライブの方法は、AppleのMPW-Dev Mailing List Information Web Page(http://www.devtools.apple.com/eto/ProductInfo/MPW-DevList.html)をご覧ください。
デベロッパー関連の一般的な情報については、Apple Developer World Web Page(http://devworld.apple.com/)がございますので、そちらをご覧ください。
spacer image