機器を制御するコントローラで実行される動作プログラムの配置エリアを特定するプログラムエリア特定情報を生成する情報生成手段と、前記情報生成手段で生成されたプログラムエリア特定情報と、前記コントローラのプログラムカウンタ値とに基づいて、前記コントローラで実行された動作プログラムを特定するプログラム特定処理と、前記特定された動作プログラムを識別する識別情報を送信する識別情報送信処理とを、前記動作プログラムの実行状態を計測する計測プログラムに対して追加する計測処理追加手段と、を備える、プログラム生成装置。前記情報生成手段は、前記コントローラが前記動作プログラムの実行に用いるスタックエリアを特定するスタックエリア特定情報を、さらに生成し、前記計測処理追加手段は、前記情報生成手段で生成されたスタックエリア特定情報と、前記コントローラのスタックポインタ値とに基づいて、前記スタックエリアを用いて前記コントローラで実行されたタスクを特定するタスク特定処理を前記計測プログラムに対して、さらに追加し、前記識別情報送信処理は、前記特定されたタスクを識別する識別情報を、さらに送信する、請求項1に記載のプログラム生成装置。前記識別情報送信処理では、所定レベルの信号値を出力した後に、前記所定レベルの信号値と前記所定レベルの信号値を反転させた信号値とで前記特定された動作プログラムの識別情報を表す信号を出力し、前記識別情報を表す信号の送信が終了すると前記所定レベルを反転させた信号を出力する、請求項2に記載のプログラム生成装置。前記識別情報送信処理は、前記特定された動作プログラムの識別情報が変化した場合に、変化後の識別情報と、前記変化後の識別情報で識別される動作プログラムの実行状態が実行開始状態であることを表す開始状態情報とを、さらに送信し、前記コントローラで実行される前記動作プログラムの識別情報と、前記開始状態情報とを前記コントローラから受信する通信手段と、前記通信手段で受信された識別情報で識別される動作プログラムのプログラム名と、前記開始状態情報の受信時刻に基づいて算出された前記動作プログラムの実行時間と、前記動作プログラムの実行時間に課せられる制約時間とを表示する表示手段と、をさらに備える、請求項1から3のいずれか一項に記載のプログラム生成装置。前記算出された前記動作プログラムの実行時間が、前記動作プログラムの実行時間に課せられる制約時間を超えたか否かを計測する計測手段、をさらに備え、前記表示手段は、前記計測手段が計測した結果をさらに表示する、請求項4に記載のプログラム生成装置。前記コントローラは、動作プログラムを複数のタスクにおいてそれぞれ異なるスタックエリアを用いて並列的に実行し、前記識別情報送信処理は、前記特定されたタスクの識別情報が変化した場合に、変化後の識別情報と、前記変化後の識別情報で識別されるタスクにおける動作プログラムの実行状態が実行開始状態であることを表す開始状態情報とを、さらに送信し、前記通信手段は、前記コントローラで実行される前記タスクの識別情報と、前記開始状態情報とを前記コントローラから受信し、前記表示手段は、前記通信手段で受信された識別情報で識別されるタスクの識別情報と、前記タスクにおいて実行される動作プログラムのプログラム名と、前記開始状態情報の受信時刻とを対応付けて表示する、請求項5に記載のプログラム生成装置。コンピュータを、機器を制御するコントローラで実行される動作プログラムの配置エリアを特定するプログラムエリア特定情報を生成する情報生成手段、前記情報生成手段で生成されたプログラムエリア特定情報と、前記コントローラのプログラムカウンタ値とに基づいて、前記コントローラで実行された動作プログラムを特定するプログラム特定処理と、前記特定された動作プログラムを識別する識別情報を送信する識別情報送信処理とを、前記動作プログラムの実行状態を計測する計測プログラムに対して追加する計測処理追加手段、として機能させる、プログラム生成プログラム。機器を制御するコントローラで実行される動作プログラムの配置エリアを特定するプログラムエリア特定情報を生成する情報生成ステップと、前記情報生成ステップで生成されたプログラムエリア特定情報と、前記コントローラのプログラムカウンタ値とに基づいて、前記コントローラで実行された動作プログラムを特定するプログラム特定処理と、前記特定された動作プログラムを識別する識別情報を送信する識別情報送信処理とを、前記動作プログラムの実行状態を計測する計測プログラムに対して追加する計測処理追加ステップと、を有する、プログラム生成方法。しかしながら、特許文献1に開示された技術では、ソフトウェアの動作に与える影響を軽減しながらソフトウェアの動作状態の変化を即時的に計測できる計測プログラムを生成できないという問題があった。本発明は、上述の事情の下になされたもので、ソフトウェアの動作に与える影響を軽減しながらソフトウェアの動作状態の変化を即時的に計測する計測プログラムを生成できるプログラム生成装置、プログラム生成プログラム、及びプログラム生成方法を提供すること等を目的とする。上記目的を達成するため、本発明のプログラム生成装置は、機器を制御するコントローラで実行される動作プログラムの配置エリアを特定するプログラムエリア特定情報を生成する情報生成手段と、前記情報生成手段で生成されたプログラムエリア特定情報と、前記コントローラのプログラムカウンタ値とに基づいて、前記コントローラで実行された動作プログラムを特定するプログラム特定処理と、前記特定された動作プログラムを識別する識別情報を送信する識別情報送信処理とを、前記動作プログラムの実行状態を計測する計測プログラムに対して追加する計測処理追加手段と、を備える。本発明に係るプログラム生成装置、プログラム生成プログラム、及びプログラム生成方法によれば、ソフトウェアの動作に与える影響を軽減しながらソフトウェアの動作状態の変化を即時的に計測する計測プログラムを生成できる。以下、本発明の実施形態に係る実行状態計測システム1について、添付図面を参照しつつ説明する。本発明の実施形態に係る実行状態計測システム1は、図1に示すように、空気調和装置100、リモートコントロール装置以下、リモコンという200、及び端末装置300を含んで構成されている。空気調和装置100は、例えば、ビルに設置されたエアコンディショナーつまり、エアコンとエアコンの室外機とを含んで構成される。リモコン200は、例えば、ビルや家の壁に設置され、信号線を介して空気調和装置100に接続する。リモコン200は、例えば、設定温度及び室内温度、空気調和装置100による送風量及び風速、並びに動作モードなどの空気調和装置100に設定される状態量を制御する。尚、リモコン200は、複数台の空気調和装置を制御しても良い。端末装置300は、本発明に係るプログラム生成装置である。端末装置300は、例えば、パーソナルコンピュータで構成され、計測プログラムを呼び出す計測プログラムを埋め込まれた動作プログラムを生成する。ここで、動作プログラムとは、リモコン200において実行されるプログラムであって、空気調和装置100の動作制御を含むリモコン200の動作に用いられるプログラムをいう。具体的には、動作プログラムは、空気調和装置100との通信を行う通信プログラム、通信により空気調和装置100の動作を制御する制御プログラム、並びに通信結果、制御結果、及び空気調和装置100の動作状態量などを表示させる表示プログラムを含む。これらの通信プログラム、制御プログラム、及び表示プログラムは、リモコン200において、並行してつまり、並列的に実行される必要があり、かつ即時性リアルタイム性が要求される。このため、動作プログラムの実行状態を計測するために、これらのプログラムつまり、通信プログラム、制御プログラム、及び表示プログラムのいずれか1つ以上の実行を停止させることが困難である。また、これらのプログラムは、並列的に実行されるため、例えば、状態遷移表などを用いてもこれらのプログラムが用いるリソースを調停することが困難である。ここで、計測プログラムとは、当該計測プログラムが埋め込まれる動作プログラムの実行状態を計測するプログラムをいう。ここで、動作プログラムの実行状態は、動作プログラムの実行が開始された実行開始状態、動作プログラムが実行中である実行中状態、動作プログラムの実行が待機された待機中状態、及び動作プログラムの実行が終了された実行終了状態を含む。リモコン200は、図2に示すように、CPUCentralProcessingUnit200a、ROMReadOnlyMemory200b、RAMRandomAccessMemory200c、フラッシュメモリ200d、通信回路200f、ビデオカード200g、LCDLiquidCrystalDisplay200h、及び操作キー200iで構成される。CPU200aは、ROM200b又はフラッシュメモリ200dに保存されたプログラムに従ってソフトウェア処理を実行することで、リモコン200の全体制御を行う。フラッシュメモリ200dが記憶するプログラムは、端末装置300によって書き換えられる。RAM200cは、CPU200aによるプログラムの実行時において、処理対象とする情報つまり、データを一時的に記憶する。通信回路200fは、例えば、3線式の通信回線を介して接続する空気調和装置100及び端末装置300との間でデータ信号を送受信する。操作キー200iは、ユーザの操作に応じた信号又は情報を入力する。ビデオカード200gは、CPU200aから出力されたデジタル信号に基づいて画像を描画つまり、レンダリングすると共に、描画された画像を表す画像信号を出力する。LCD200hは、ビデオカード200gから出力された画像信号に従って画像を表示する表示部である。尚、リモコン200は、LCD200hの代わりに、PDPPlasmaDisplayPanel又はELElectroluminescenceディスプレイを備えても良い。端末装置300は、図3に示すように、CPU300a、ROM300b、RAM300c、ハードディスク300d、メディアコントローラ300e、通信回路300f、ビデオカード300g、LCD300h、キーボード300i、スピーカ300j、及びポインティングディバイス以下、マウスという300kを含んで構成される。CPU300aは、ROM300b又はハードディスク300dに保存されたプログラムに従ってソフトウェア処理を実行することで、端末装置300の全体制御を行う。RAM300c、通信回路300f、ビデオカード300g、及びLCD300hは、RAM200c、通信回路200f、及びビデオカード200gと同様であるので説明を省略する。ハードディスク300dは、各種の情報つまり、データを保存した表つまり、テーブル、各種のプログラムのソースコードを表す電子ファイル以下、ソースファイルという、及び各種のプログラムで呼び出されるライブラリプログラムを記憶する。ハードディスク300dが記憶する各種のソースファイルには、動作プログラムの部品となる部品プログラム以下、動作部品プログラムというのソースファイルと、動作プログラムに埋め込まれる計測プログラムの部品となる部品プログラム以下、計測部品プログラムというのソースファイルとが含まれる。尚、端末装置300は、ハードディスク300dの代わりに、フラッシュメモリを備えても良い。メディアコントローラ300eは、フラッシュメモリ、CDCompactDisc、DVDDigitalVersatileDisc、及びブルーレイディスクBlurayDisc登録商標を含む記録媒体から各種のデータ及びプログラムを読み出す。キーボード300i及びマウス300kは、ユーザの操作に応じた信号又は情報を入力する。スピーカ300jは、CPU300aから出力された信号に基づいて音声を出力する。端末装置300のCPU300aが、図4aのプログラム生成処理を、図3に示したハードウェアを用いて実行することで、図5aに示すようなプログラム組立部301、自動生成部302、端末記憶部303、信号出力部304、及び結果表示部309が実現される。尚、自動生成部302は、図3bの計測処理追加部302a及び情報生成部302bを含んで構成される図4aのプログラム生成処理は、所定周期で発生するタイマ割り込み又はイベントの発生をトリガとして実行される。プログラム生成処理の実行を開始すると、プログラム組立部301は、図1bのキーボード300i及びマウス300jを含んで構成される入力部から入力された信号を確認することで、動作プログラムの生成を求める要求以下、プログラム生成要求というがユーザによってなされたか否かを判別するステップS01。このとき、プログラム生成要求がないと判別された場合にはステップS01;No、プログラム組立部301は、プログラム生成処理の実行を終了する。ステップS01において、プログラム生成要求があると判別された場合にはステップS01;Yes、プログラム組立部301は、図6に示すようなプログラムの組み立てに用いる画面以下、プログラム組立画面というFAを結果表示部309に表示させる。その後、プログラム組立部301は、入力部から入力された信号に基づいてプログラムを組み立てるつまり、プログラムを構成する部分プログラムが実行時に呼び出される順序などを定めるステップS02。図6のプログラム組立画面FAには、開始地点表示IS、プログラム開始コマンド表示ICS、部品プログラム表示IP1及びIP2、プログラム終了コマンド表示ICP、及び終了地点表示IPと、制約時間表示ILとが表示されている。開始地点表示ISは、生成される動作プログラムの先頭を表現する。プログラム開始コマンド表示ICSは、生成される動作プログラムが実行開始状態となったことを表すコマンド以下、プログラム開始コマンドというを送信する計測部品プログラムを表現する。部品プログラム表示IP1及びIP2は、例えば、動作プログラムで呼び出される動作部品プログラムを表現する。プログラム終了コマンド表示ICPは、生成される動作プログラムが実行終了状態となったことを表すコマンド以下、プログラム終了コマンドというを送信する計測部品プログラムを表現する。終了地点表示IPは、生成される動作プログラムの末尾を表現する。制約時間表示ILは、プログラム開始コマンドの送付からプログラム終了コマンドの送付までの時間が制約時間より短くなければならないことを表現する。空気調和装置100の動作制御に用いられる動作プログラムは、リアルタイム性が要求されるためである。動作部品プログラム及び計測部品プログラムを含む部品プログラムは、動作プログラムと比べると小規模で、ひとまとまりにされた所定の処理の実行に用いられるプログラムをいう。部品プログラムを用いて実行される処理の種類は、例えば、例外処理、条件判定処理、代入処理、保存処理、計測処理などがある。例外処理は、既定された例外条件が満足された場合に部分プログラム、又は部分プログラムを呼び出した動作プログラム若しくは計測プログラムの実行を中止する処理である。条件判定処理は、指定された実行条件論理式が真の場合に実行される処理である。代入処理は、指定された演算又は指定された関数の呼び出しを行い、呼び出された関数の戻値を指定された変数に対して代入する処理である。計測処理は、動作プログラムの実行状態を計測するために用いられる処理である。尚、これら各種の部品プログラムのソースファイルは、図5aの端末記憶部303に予め記憶されている。勿論、部品プログラムのソースファイルは、生成される動作プログラムに応じて端末装置300で新たに生成されても良い。図6のプログラム組立画面FAにおいて、画面に向かってより左側に位置する表示によって表現される部品プログラムほど、動作プログラム実行時において先に呼び出される又は実行されるように組み立てられる。つまり、プログラム組立画面FAは、部品プログラムを表現するブロック状の表示を、部品プログラムが実行される順序に従って並べる視覚的なタイムチャート又はブロックチャートを表示する画面である。次に、プログラムの組立方法について説明する。プログラム組立部301は、端末記憶部303に記憶された部品プログラムのプログラム名などを、プログラム組立画面FAに表示するように結果表示部309を制御する。次に、ユーザは、表示されたプログラム名などに基づいて組み立てに用いる部品プログラムを決定する。その後、プログラム組立部301は、入力部から入力される信号に基づいて、組み立てに用いるようにユーザによって指示された部品プログラムを特定し、入力部から入力される信号に基づいてユーザに指定されたプログラム組立画面FA上の位置を特定する。次に、プログラム組立部301は、特定されたプログラム組立画面FA上の位置に、指示された部品プログラムの表示を行うように結果表示部309を制御する。この構成によれば、ユーザは、入力部を操作して部品プログラムを表現する表示の位置を変更するだけで、動作プログラム実行時における部品プログラムの呼出順序を容易に変更できる。また、プログラム組立部301は、入力部から入力される信号に基づいて動作プログラムの実行開始から終了までの時間つまり、実行時間に課せられる制限時間を特定する。その後、プログラム組立部301は、図6のプログラム開始コマンド表示ICSと、プログラム終了コマンド表示ICPとを結ぶ線分をプログラム組立画面FAに表示し、当該表示させる線分に対応した位置に制限時間を表示するように結果表示部309を制御する。図4aのステップS02が実行された後に、自動生成部302は、ステップS02で組み立てられたプログラムを自動的に生成する、図7に示すような自動プログラム生成処理を実行するステップS03。図7の自動プログラム生成処理の実行が開始されると、図5bに示す自動生成部302の計測処理追加部302aは、例えば、実行中の動作プログラム及び実行中のタスクの変化を所定周期で計測するために、図6のプログラム組立画面FAに表示された順序と無関係に実行される計測プログラムつまり、タイマの割込みによって動作する計測プログラムのソースコードを、例えば、タイマ割り込み用の計測部品プログラムのソースコードを用いて生成し、生成したソースコードをソースファイルに対して追加出力するステップS11。尚、ステップS11で追加されるコードは、後述する図8のステップS45からS50のような計測処理を表すコードを含む。図7のステップS11の後に、自動生成部302は、プログラム組立部301で組み立てられたプログラムのソースコードをソースファイルへ出力し始めるステップS12。具体的には、自動生成部302は、図6のプログラム組立画面FA上に並べられた複数のブロック表示を、処理の開始に近い位置つまり、画面に向かって左側に表示されたブロック表示から順に処理対象とし、処理対象としたブロック表示で表現される部品プログラムのソースコードをソースファイルに対して出力し始める。次に、自動生成部302は、ソースコードの出力対象となる部品プログラムが、動作部品プログラムであるか、計測部品プログラムであるかを判別するステップS13。このとき、自動生成部302は、動作部品プログラムであると判別するとステップS13;Yes、出力対象となる動作部品プログラムのソースコードを、図5aの端末記憶部303から検索し、検索されたソースコードを動作プログラムのソースファイルへ追加出力つまり、追加記載するステップS14。尚、ステップS14で追加されるコードは、後述する図8のステップS42及びS44のような処理を表すコードを含んでもよい。これに対して、部品プログラムが計測部品プログラムであると判別されるとステップS13;No、計測処理追加部302aは、ステップS14と同様にソースコードを検索し、検索された計測部品プログラムのソースコードを計測プログラムのソースファイルへ追加出力し、必要に応じて計測プログラムの呼び出し処理のソースコードを動作プログラムのソースファイルへ追加出力するステップS15。尚、ステップS15で追加されるコードは、ステップS11で追加されるコードと同様に、後述する図8のステップS44からS50のような計測処理を表すコードを含む。ステップS14又はステップS15の実行後、自動生成部302は、プログラムに組み込まれた部品プログラムのソースコードを全て出力したか否かを判別するステップS16。このとき、自動生成部302は、未だ全てのソースコードを出力していないと判別するとステップS16;No、上記ステップS13から上記処理を繰り返す。これに対して、自動生成部302は、全てのソースコードを出力したと判別するとステップS16;Yes、ソースコードファイルをプレコンパイルしてバイナリデータつまり、バイナリプログラムを生成し、生成したバイナリプログラムに対してプレリンクを行うステップS17。このとき、自動生成部302は、生成されるプログラムをコントロール装置210が実行するために用いるスタックエリアの範囲以下、スタック範囲という及び生成されるプログラムがコントロール装置210に配置される範囲以下、プログラム範囲というを確定させる。ここで、リモコン200が有するCPU200aは、タイムスケジューリングにより各タスクで複数の動作プログラムを順番に実行する。このとき、リモコン200は、同一のプログラムを複数のタスクで実行する場合もある。この場合、各タスクでは、同じプログラムが実行されるが、プログラムの実行に使用されるスタック領域以下、スタックエリアというが異なる。スタックエリアは、図2のRAM200cにおける記憶領域であって、タスクにおいてCPU200aがプログラムを実行する際に、プログラムの実行に用いられる変数を一時的に記憶させるエリアをいう。ステップS17の後に、図5bに示す自動生成部302の情報生成部302bは、画定したスタックエリアの識別情報以下、スタックIDというを生成した後に、生成されたスタックIDを表すデータと、スタックエリアの開始アドレスを表すデータ及び終了アドレスを表すデータとをスタックエリアリストに追加する。その後、自動生成部302は、データを追加されたスタックエリアリストを電子ファイル以下、スタックエリアリストファイルというに出力するステップS18。尚、スタックエリアリストは、例えば、リモコン200のアドレスバスのバス幅が4バイト幅である場合、スタック範囲の開始アドレスを表す4バイトのデータ、スタック範囲の終了アドレスを表す4バイトのデータ、及びスタックIDを表す2バイトのデータを1つの組とした10バイトのデータを、最大256個まで保持可能なリストである。ステップS18の後に、情報生成部302bは、生成した動作プログラムの識別情報以下、動作プログラムIDというを生成した後に、生成されたプログラムIDを表すデータと、動作プログラムのプログラム範囲の開始アドレスを表すデータ及び終了アドレスを表すデータとをプログラムエリアリストに追加する。その後、自動生成部302は、データを追加されたプログラムエリアリストを電子ファイル以下、プログラムエリアリストファイルというに出力するステップS19。尚、プログラムエリアリストは、プログラムが配置される範囲の開始アドレスを表す4バイトのデータ、プログラムが配置される範囲の終了アドレスを表す4バイトのデータ、及び動作プログラムIDを表す2バイトのデータを1つの組とした10バイトのデータを複数保持可能なリストである。尚、プログラムエリアリストの開始アドレスを表すデータ、終了アドレスを表すデータ、及び動作プログラムIDを表すデータは、それぞれ必ずしも4バイト、4バイト、及び2バイトである必要はない。ステップS19を実行した後に、自動生成部302は、スタックエリアリストファイルと、プログラムエリアリストファイルとをコンパイル対象に含めてから再度コンパイルを実行するステップS20。この処理により、例えば、ステップS17で生成されたバイナリプログラムがスタックエリア及びプログラムエリアリストを参照可能になる。ステップS20の後に、自動生成部302は、プログラム組立部301で特定された制約時間を表す情報と、生成された動作プログラムつまり、制約時間が課せられたプログラムのプログラムIDとを対応付けて情報記憶部202へ保存した後に、自動プログラム生成処理の実行を終了する。図4aのステップS03の処理を実行した後に、図5の信号出力部304は、ステップS03で生成された動作プログラム、動作プログラムから呼び出される計測プログラム、計測プログラムによって参照されるプログラムエリアリストファイル及びスタックエリアリストファイルと、これらを保存するアドレスを指定する情報とをリモコン200へ送信した後にステップS04、プログラム生成処理の実行を終了する次に、端末装置300から送信されたプログラムを受信するリモコン200について説明する。図2に示したリモコン200のCPU200aが、図2に示したハードウェアを用いて、図4bに示すようなプログラム保存処理を実行することにより、図5に示すような信号入力部201及び情報記憶部202が実現される。リモコン200の端末装置300に対する接続を検知すると、図5の信号入力部201は、図4bのプログラム保存処理の実行を開始する。先ず、信号入力部201は、所定時間に亘ってプログラムの受信例えば、情報記憶部202にプログラムを書き込むように命じる書込命令の受信を待った後にステップS31、プログラムを受信したか否か判別するステップS32。このとき、信号入力部201は、プログラムを受信しなかったと判別した場合にはステップS32;No、ステップS31から上記処理を繰り返す。これに対して、信号入力部201は、プログラムを受信したと判別した場合にはステップS32;Yes、端末装置300から転送された動作プログラム、計測プログラム、プログラムエリアリストファイル、及びスタックエリアリストファイルと、これらを保存するアドレスを指定する情報とを受信し、受信した情報で指定された情報記憶部202のアドレスに、これらプログラム及びファイルを保存するステップS33。その後、信号入力部201は、保存したプログラム及びファイルの内容が正常であることを確認する。このとき、信号入力部201は、正常であることを確認するとプログラム保存処理の実行を終了する。これに対して、信号入力部201は、異常であることを確認すると、保存したプログラム及びファイルを情報記憶部202から削除した後にプログラム保存処理の実行を終了する。ここで、図2に示したリモコン200の電源が投入されると、リモコン200のCPU200aは、情報記憶部202に保存された動作プログラム及び計測プログラムを実行する、図8に示すようなプログラム実行処理を開始する。CPU200aが、図2に示したハードウェアを用いてこのプログラム実行処理を実行することで、図5に示すような実行部203、タイマ204、信号出力部205、通信部208、及び動作表示部209が実現される。図8のプログラム実行処理が開始されると、図5の実行部203は、情報記憶部202に記憶された動作プログラム及び動作プログラムに埋め込まれた計測プログラムの実行を開始するステップS41。具体的には、実行部203は、情報記憶部202に記憶された制御プログラム、通信プログラム、及び表示プログラムなどの複数の動作プログラムをタスク毎に起動する。この際、実行部203は、情報記憶部202に記憶されたスタックエリアリストに記載された開始アドレスと終了アドレスに従って、起動したタスクにおいて動作プログラムの実行に用いられるスタックエリアを定める。次に、実行部203は、定めたスタックエリアのスタックIDとタスクのタスクIDとを対応付けて情報記憶部202に保存する。その後、実行部203は、タイムスケジューリングにより各タスクにおいて動作プログラムを所定の順番で実行する以下、タスクを実行するという。ステップS41の後に、実行部203は、次に実行されるプログラムが計測プログラムであるか否かを判別するステップS42。尚、実行部203は、タイマ204が所定周期のタイマイベントを発生させた場合、又は端末装置300のユーザがプログラムの組立において指定した位置にプログラムカウンタが到達した場合に、計測プログラムを実行する。ステップS42において、実行部203は、次に実行されるプログラムが計測プログラムでないと判別するとステップS42;No、動作プログラムを実行するステップS43。具体的には、実行部203は、リモコン200の動作を制御したり、空気調和装置100の動作制御を行う命令を送信するように通信部208を制御したり、通信結果、制御結果、及び空気調和装置100の動作状態量などを表示するように動作表示部209を制御した後に、ステップS42に戻り上記処理を繰り返す。ステップS42において、実行部203は、次に実行されるプログラムが計測プログラムであると判別するとステップS42;Yes、CPU200aのスタックポインタレジスタの値及びプログラムカウンタレジスタの値を読み出し、読み出した値を情報記憶部202へ保存するステップS44。尚、プログラムカウンタレジスタは、CPU200aが実行しているプログラム命令の位置を示す。プログラムカウンタレジスタが示す位置の命令をCPU200aが実行すると、プログラムカウンタレジスタの値は、値1だけインクリメントされる。次に、実行部203は、計測プログラムに従ってステップS45からS50の処理を実行する。ステップS45では、実行部203は、情報記憶部202に記憶されたスタックエリアリストから、情報記憶部202へ保存したスタックポインタレジスタ値よりも開始アドレスが前で、かつスタックポインタレジスタ値よりも終了アドレスが後のスタックエリアのスタックIDを検索するステップS45。その後、実行部203は、スタックIDと対応付けて情報記憶部202が記憶するタスクIDを検索する。その後、実行部203は、情報記憶部202に記憶されたプログラムエリアリストから、情報記憶部202へ保存したプログラムカウンタレジスタ値よりも開始アドレスが前で、かつプログラムカウンタレジスタ値よりも終了アドレスが後のプログラムエリアのプログラムIDを検索するステップS46。実行部203は、後述するステップS50で情報記憶部202に既に保存されたスタックIDと、ステップS45で検索されたスタックIDとに基づいて、プログラムの実行に用いられるスタックエリアが変化したか否か、及び後述するステップS50で保存されたプログラムIDと、ステップS46で検索されたプログラムIDとに基づいて、実行中のプログラムが変化したか否かを判別するステップS47。ステップS47において、実行部203は、使用中のスタックエリア及び実行中のプログラムのどちらも変化しなかったと判別するとステップS47;No、ステップS42に戻り上記処理を繰り返す。これに対して、実行部203は、使用中のスタックエリア又は実行中のプログラムが変化したと判別するとステップS47;Yes、図9aに示すような、識別マーカのコマンド部及びデータ部の値を算出するステップS48。ここで、識別マーカとは、信号に付与されるマーカであり、実行状態が変化したプログラム又はタスクを識別すると共に、変化した実行状態を表す標識をいう。具体的には、識別マーカは、ビット列による非同期通信用の信号である。識別マーカは、図9aに示すようなタスク開始コマンド、タスク終了コマンド、プログラム開始コマンド、及びプログラム終了コマンドを含む。これらのコマンドは、それぞれ1バイトのコマンド部とデータ部とで構成される2バイトつまり、16ビットのビット列である。ビット列は、電圧レベルによってHighレベルとLowレベルとの2値で表現される。タスク開始コマンドは、図9aに示すように、タスクの実行が開始されたことを表すコマンド部0x01と、実行開始状態となったタスクのタスクIDを表すデータ部とで構成される。同様に、タスク終了コマンドは、タスクの実行が終了されたことを表すコマンド部0x02と、実行終了状態となったタスクのタスクIDを表すデータ部とで構成される。さらに、プログラム開始コマンドは、プログラムの実行が開始されたことを表すコマンド部0x03と、実行開始状態となったプログラムのプログラムIDを表すデータ部とで構成される。同様に、プログラム終了コマンドは、プログラムの実行が終了されたことを表すコマンド部0x04と、実行終了状態となったプログラムのプログラムIDを表すデータ部とで構成される。つまり、ステップS48において、実行部203は、使用中のスタックエリアが変化したと判別するとステップS47;Yes参照、0x01のコマンド部と、ステップS45で検索されたスタックIDで識別されるスタックを用いて実行されたタスクIDを表すデータ部とで構成されるタスク開始コマンドを生成し、0x02のコマンド部と、ステップS50で保存されたタスクIDを表すデータ部とで構成される識別マーカつまり、タスク終了コマンドを生成する。同様に、実行部203は、実行中のプログラムが変化したと判別すると、0x03のコマンド部と、ステップS46で検索されたプログラムIDを表すデータ部とで構成されるプログラム開始コマンドを生成し、0x04のコマンド部と、ステップS50で保存されたプログラムIDを表すデータ部とで構成されるプログラム終了コマンドを生成する。ステップS48の後に、実行部203は、識別マーカつまり、コマンドを送信キューに追加した後に、送信キューに蓄積された識別マーカを出力するように信号出力部205に対して指示を行う。その後、信号出力部205は、図10に示すような識別マーカ出力処理を、実行部203からの指示に従って実行するステップS49。図10の識別マーカ出力処理を開始すると、信号出力部205は、現在の出力信号レベルを記憶するステップS61。次に、信号出力部205は、出力信号の信号レベルをLowレベルにするステップS62。その後、信号出力部205は、送信キューに格納されている識別マーカを1つに読み出した後に、読み出した識別マーカのコマンド部8ビットの1ビット目から8ビット目を順に出力してからステップS63、識別マーカのデータ部8ビットの1ビット目から8ビット目を順に出力するステップS64。次に、信号出力部205は、送信キューに識別マーカが残っているか否かを判別しステップS65、識別マーカが残っていると判別するとステップS65;Yes、ステップS63に戻り上記処理を繰り返す。これに対して、信号出力部205は、送信キューに識別マーカが残っていないと判別するとステップS65;No、ステップS61で情報記憶部202に保存した信号レベルを反転させたレベルで信号出力を開始した後にステップS66、識別マーカ出力処理の実行を終了する。具体例としては、信号出力部205は、図9bに示すような識別マーカ1を出力した後から識別マーカ2を出力するまでの時間T2においては、識別マーカ1を出力する前の時間T1における信号レベルLowを反転させたHighレベルの信号を出力する。また、信号出力部205は、識別マーカ2を出力した後から次に識別マーカを出力するまでの時間T3においては、時間T2における信号レベルHighを反転させたLowレベルの信号を出力する。これらの構成によれば、所定レベルの信号値を出力した後に、例えば、データ部のような動作プログラム又はタスクの識別情報つまり、プログラムID又はタスクIDを表す信号を出力し、識別情報を表す信号の送信が終了すると所定レベルを反転させた信号を出力する。このため、信号値の反転によって動作プログラム又はタスクの実行状態が変化してから次に実行状態が変化するまでの時間つまり、動作プログラム又はタスクの実行時間を、例えば、オシロスコープを用いて容易に計測できる。また、所定レベルの信号値と所定レベルの信号値を反転させた信号値とで動作プログラムの識別情報つまり、プログラムIDを表すので、動作プログラム又はタスクの実行状態を把握するために、UARTUniversalAsynchronousReceiverTransmitterなどの非同期通信を用いてタスクのディスパッチログを出力する場合と異なり、出力された信号に対する専用のデコーダを必要としない。さらに、UARTを用いる場合と比べて、即応性が良く、かつ動作プログラムの実行に与える影響が少ない。図8のステップS49の後に、実行部203は、ステップS45及びS46でそれぞれ検索されたスタックID、タスクID、及びプログラムIDを情報記憶部202へ保存した後にステップS50、ステップS42から上記処理を繰り返す。リモコン200から出力された信号を受信する端末装置300のCPU300aは、図2に示したハードウェアを用いて、図11に示すような状態計測処理を実行することにより、図5に示すような信号入力部307、計測部308、及び結果表示部309として機能する。リモコン200から出力された信号の立ち上がりエッジをトリガとして、信号入力部307は、図11の状態計測処理の実行を開始する。信号入力部307は、先ず、16ビット分のデータを受信するステップS71。次に、信号入力部307は、受信したデータつまり、識別マーカと、データの受信時刻を表す情報とを対応付けて情報記憶部202へ保存するステップS72。次に、計測部308は、保存されたデータがタスク開始コマンドであるか否かを判別するステップS73。具体的には、計測部308は、保存されたデータのコマンド部が、図9aに示すようなタスク開始コマンドのコマンド部0x01であるか否かを判別する。このとき、計測部308は、保存されたデータがタスク開始コマンドであると判別するとステップS73;Yes、保存されたデータからタスクIDを表すデータ部を抽出し、情報記憶部202に画定された画面バッファのタスク用のスタック変数に対して、抽出されたデータ部で表されるタスクIDをプッシュするステップS74。また、計測部308は、画面バッファの変数値であって、当該タスクIDで識別されるタスクの状態を表す変数の値を、タスクが実行中である実行中状態を表す値に変更する。ステップS73において、保存されたデータがタスク開始コマンドでないと判別するとステップS73;No、計測部308は、保存されたデータがタスク終了コマンドであるか否かを判別するステップS75。具体的には、計測部308は、保存されたデータのコマンド部が、図9aに示すようなタスク終了コマンドのコマンド部0x02であるか否かを判別する。このとき、計測部308は、保存されたデータがタスク終了コマンドであると判別するとステップS75;Yes、保存されたデータからタスクIDを表すデータ部を抽出した後に、抽出されたデータ部で表されるタスクIDをタスク用のスタック変数からポップするステップS76。また、計測部308は、当該タスクIDで識別されるタスクの状態を表す変数の値を、タスクの実行が待機されている待機中状態を表す値に変更する。ステップS75において、保存されたデータがタスク終了コマンドでないと判別するとステップS75;No、計測部308は、保存されたデータがプログラム開始コマンドであるか否かを判別するステップS77。具体的には、計測部308は、保存されたデータのコマンド部が、図9aに示すようなプログラム開始コマンドのコマンド部0x03であるか否かを判別する。このとき、計測部308は、保存されたデータがプログラム開始コマンドであると判別するとステップS77;Yes、保存されたデータからプログラムIDを表すデータ部を抽出した後に、抽出されたデータ部で表されるプログラムIDを画面バッファのプログラム用のスタック変数へプッシュするステップS78。また、計測部308は、当該プログラムIDで識別される動作プログラムの状態を表す変数の値を、プログラムが実行されている実行中状態を表す値に変更する。ステップS77において、保存されたデータがプログラム開始コマンドでないと判別するとステップS77;No、計測部308は、保存されたデータがプログラム終了コマンドであるか否かを判別するステップS79。具体的には、計測部308は、保存されたデータのコマンド部が、図9aに示すようなプログラム終了コマンドのコマンド部0x04であるか否かを判別する。このとき、計測部308は、保存されたデータがプログラム終了コマンドであると判別するとステップS79;Yes、保存されたデータからプログラムIDを表すデータ部を抽出した後に、抽出されたデータ部で表されるプログラムIDをプログラム用のスタック変数からポップするステップS80。また、計測部308は、当該プログラムIDで識別される動作プログラムの状態を表す変数の値を、プログラムの実行が待機されている待機中状態を表す値に変更する。ステップS74、ステップS76、ステップS78、又はステップS80の後に、計測部308は、画面バッファのタスクの状態を表す変数の値及び動作プログラムの状態を表す変数の値の変化と、これらの変数値が変化した時刻つまり、情報記憶部202に保存したコマンドの受信時刻とを対応付けて表示するように結果表示部309を制御するステップS81。その後、計測部308は、状態計測処理の実行を終了する。具体的には、ステップS81において、結果表示部309は、図12aに示すような結果表示画面FC1を表示する。結果表示画面FC1は、動作プログラムの実行時刻を表現するタイムラインTLと、表示プログラムの実行状態を表す表示ブロックPD、通信プログラムの実行状態を表す表示ブロックPT、及び制御プログラムの実行状態を表す表示ブロックPCとが表示されている。具体例として、信号入力部307が、時刻t1において、通信プログラムのプログラムIDを表すデータ部を有するプログラム開始コマンドを入力し、時刻t2において、通信プログラムのプログラムIDを表すデータ部を有するプログラム終了コマンドを入力した場合を挙げて説明する。結果表示部309は、通信プログラムの実行状態を表す表示ブロックPTの表示を、時刻t1から実行中状態を表す表示に切り替えた後に、時刻t2から表示ブロックPTの表示を、待機中状態を表す表示に切り替える。その後、計測部308は、通信プログラムのプログラムIDと対応付けて情報記憶部202に記憶された制約時間を表す情報を検索し、検索された情報で表される制約時間を通信プログラムのプログラム名又はプログラムIDと対応付けて表示する。また、計測部308は、検索された情報で表される制約時間が時刻t1から時刻t2までの時間つまり、通信プログラムの実行時間より所定時間以上短いか否かを計測つまり、判別する。計測部308は、制約時間よりも通信プログラムの実行時間が所定時間以上短いことを計測すると、例えば、想定内に収まっています。などの制約時間よりも実行時間が短かったことを表す表示を行う。これに対して、計測部308は、制約時間よりも通信プログラムの実行時間が所定時間以上長いことを計測すると、例えば、想定内に収まっていません。などの制約時間よりも実行時間が長かったことを表す警告表示又はエラー表示を行う。さらに、計測部308は、制約時間と通信プログラムの実行時間との差異が所定時間より短いことを計測すると、例えば、想定と同じぐらいです。などの制約時間と実行時間とが略一致していることを表す表示を行う。さらに、同じプログラムIDで識別される動作プログラムがリモコン200で複数実行されている場合には、結果表示部309は、図12bに示すような結果表示画面FC2を表示する。図12bの結果表示画面FC2は、実行されている動作プログラムを識別するプログラムIDと、当該動作プログラムを実行するタスクIDとを対応付けて複数表示する。具体的には、リモコン200では、2つの通信ポートのそれぞれで通信されるデータを通信するために、同じプログラムIDで識別される通信プログラムが、2つのタスクで並列的に実行されている。このため、図12bの結果表示画面FC2には、タイムラインTLと、タスクID002で識別されるタスクにおいて実行されている通信プログラムの実行状態を表す表示ブロックPT1と、タスクID003で識別されるタスクにおいて実行されている通信プログラムの実行状態を表す表示ブロックPT2とが表示されている。また、画面に向かって表示ブロックPT1の左側には、表示ブロックPT1で実行状態が表されるプログラムの名称と、当該プログラムを実行するタスクを識別するタスクIDとが対応付けて表示されている。同様に、表示ブロックPT2の左側には、表示ブロックPT2で実行状態が表されるプログラムの名称と、当該プログラムを実行するタスクを識別するタスクIDとが対応付けて表示されている。このため、信号入力部307がプログラム開始コマンドとタスク開始コマンドとを入力すると、結果表示部309は、プログラム開始コマンドのプログラムIDで識別されるプログラムの実行状態を表す表示ブロックの内で、タスク開始コマンドのデータ部が表すタスクIDで識別されるタスクで実行されているプログラムの実行状態を表す表示ブロックの表示を、実行中状態を表す表示に切り替える。尚、結果表示部309は、表示ブロックと、表示ブロックで実行状態を表されるプログラムの名称及びプログラムIDのひとつ以上と、プログラムが実行されたタスクのタスクIDとを対応付けて表示しても良い。同様に、信号入力部307がプログラム終了コマンドとタスク終了コマンドとを入力すると、結果表示部309は、プログラム終了コマンドのプログラムIDで識別されるプログラムの実行状態を表す表示ブロックの内で、タスク終了コマンドのデータ部が表すタスクIDで識別されるタスクで実行されているプログラムの実行状態を表す表示ブロックの表示を、待機中状態を表す表示に切り替える。これらの構成によれば、動作プログラムの名称と、例えば、プログラム開始コマンドの受信時刻に基づいて算出された動作プログラムの実行時間と、動作プログラムの実行時間に課せられる制約時間とを表示する。また特に、算出された動作プログラムの実行時間が、当該動作プログラムの実行時間に課せられる制約時間を超えたか否かを表示する。これらのため、ユーザは、リアルタイム性が要求されるリモートコントロール装置200で実行される動作プログラムの実行時間が制約時間を満足するか否かを容易に検証できる。またこれらの構成によれば、例えば、プログラムエリアリストなどの動作プログラムが配置されるエリアを特定するプログラムエリア特定情報と、動作プログラムの実行に用いられたプログラムカウンタ値とに基づいてリモートコントロール装置200で実行された動作プログラムを特定する。このため、動作プログラムに対する計測処理の追加が少ないため、動作プログラムの動作に与える影響を軽減しながら動作プログラムの実行状態を計測する計測プログラムを生成できる。さらにこれらの構成によれば、例えば、スタックエリアリストなどのスタックエリアを特定するスタックエリア特定情報と、動作プログラムの実行に用いられたスタックエリアを示すスタックポインタ値とに基づいて、リモートコントロール装置200で実行されたタスクを特定する。このため、動作プログラムの動作に与える影響を軽減しながらソフトウェアの実行に用いられるタスクの実行状態を計測する計測プログラムを生成できる。またさらに、これらの構成によれば、タスクの識別情報つまり、タスクIDと、当該タスクで実行されている動作プログラムの名称と、当該タスクの実行状態が実行開始状態であることを表す開始状態情報の受信時刻とを表示する。このため、コントローラ200が同一の動作プログラムを複数のタスクで実行しても、ユーザは、それぞれのタスクにおいて動作プログラムが実行開始状態となった時刻を容易に検証できる。尚、本実施形態に係る機能を実現するための構成を予め備えた端末装置300として提供できることはもとより、プログラムの適用により、既存の端末装置を本実施形態に係るプログラム生成装置として機能させることもできる。すなわち、上記実施形態で例示した端末装置300による各機能構成を実現させるための制御プログラムを、既存の端末装置を制御するコンピューターCPUなどが実行できるように適用することで、本実施形態に係る端末装置300として機能させることができる。このようなプログラムの配布方法は任意であり、例えば、メモリカード、CD-ROM、又はDVD-ROMなどの記録媒体に格納して配布できる他、インターネットなどの通信媒体を介して配布することもできる。尚、本発明のプログラム生成方法は、端末装置300を用いて実施できる。また、上述の機能を、OSOperatingSystemが分担して実現する場合又はOSとアプリケーションとの協働により実現する場合等には、OS以外の部分のみを媒体に格納して配布してもよく、また、ダウンロード等しても良い。また、本発明は、本発明の広義の精神と範囲を逸脱することなく、様々な実施形態及び変形が可能とされるものである。また、上述した実施形態は、本発明を説明するためのものであり、本発明の範囲を限定するものではない。つまり、本発明の範囲は、実施形態ではなく、特許請求の範囲によって示される。そして、特許請求の範囲内及びそれと同等の発明の意義の範囲内で施される様々な変形が、本発明の範囲内とみなされる。本出願は、2010年11月26日に出願された日本国特許出願2010-263519号に基づく。本明細書中に日本国特許出願2010-263519号の明細書、特許請求の範囲、図面全体を参照として取り込むものとする。