JP4009517B2 - プログラム開発支援装置およびコンパイル方法 - Google Patents

プログラム開発支援装置およびコンパイル方法 Download PDF

Info

Publication number
JP4009517B2
JP4009517B2 JP2002305010A JP2002305010A JP4009517B2 JP 4009517 B2 JP4009517 B2 JP 4009517B2 JP 2002305010 A JP2002305010 A JP 2002305010A JP 2002305010 A JP2002305010 A JP 2002305010A JP 4009517 B2 JP4009517 B2 JP 4009517B2
Authority
JP
Japan
Prior art keywords
language
program
file
general
object code
Prior art date
Legal status (The legal status is an assumption and is not a legal conclusion. Google has not performed a legal analysis and makes no representation as to the accuracy of the status listed.)
Expired - Fee Related
Application number
JP2002305010A
Other languages
English (en)
Other versions
JP2004139458A (ja
Inventor
裕紀 前田
Current Assignee (The listed assignees may be inaccurate. Google has not performed a legal analysis and makes no representation or warranty as to the accuracy of the list.)
Advantest Corp
Original Assignee
Advantest Corp
Priority date (The priority date is an assumption and is not a legal conclusion. Google has not performed a legal analysis and makes no representation as to the accuracy of the date listed.)
Filing date
Publication date
Application filed by Advantest Corp filed Critical Advantest Corp
Priority to JP2002305010A priority Critical patent/JP4009517B2/ja
Priority to PCT/JP2003/013302 priority patent/WO2004036420A1/ja
Priority to KR1020057006300A priority patent/KR20060056880A/ko
Priority to US10/531,738 priority patent/US20060074625A1/en
Priority to DE10393511T priority patent/DE10393511T5/de
Publication of JP2004139458A publication Critical patent/JP2004139458A/ja
Application granted granted Critical
Publication of JP4009517B2 publication Critical patent/JP4009517B2/ja
Anticipated expiration legal-status Critical
Expired - Fee Related legal-status Critical Current

Links

Images

Classifications

    • GPHYSICS
    • G06COMPUTING; CALCULATING OR COUNTING
    • G06FELECTRIC DIGITAL DATA PROCESSING
    • G06F8/00Arrangements for software engineering
    • G06F8/20Software design
    • GPHYSICS
    • G06COMPUTING; CALCULATING OR COUNTING
    • G06FELECTRIC DIGITAL DATA PROCESSING
    • G06F11/00Error detection; Error correction; Monitoring
    • G06F11/36Preventing errors by testing or debugging software
    • G06F11/362Software debugging
    • G06F11/3624Software debugging by performing operations on the source code, e.g. via a compiler
    • GPHYSICS
    • G06COMPUTING; CALCULATING OR COUNTING
    • G06FELECTRIC DIGITAL DATA PROCESSING
    • G06F8/00Arrangements for software engineering
    • G06F8/30Creation or generation of source code
    • G06F8/37Compiler construction; Parser generation

Landscapes

  • Engineering & Computer Science (AREA)
  • Theoretical Computer Science (AREA)
  • General Engineering & Computer Science (AREA)
  • Software Systems (AREA)
  • Physics & Mathematics (AREA)
  • General Physics & Mathematics (AREA)
  • Computer Hardware Design (AREA)
  • Quality & Reliability (AREA)
  • Debugging And Monitoring (AREA)
  • Devices For Executing Special Programs (AREA)
  • Stored Programmes (AREA)

Description

【0001】
【発明の属する技術分野】
本発明は、半導体試験装置等の被制御装置に対する制御コマンドが記述された独自仕様言語プログラムと、独自仕様言語プログラムの実行ステップや独自仕様言語プログラムから得られたデータの処理ステップ等が記述された汎用言語プログラムとを開発するためのプログラム開発支援装置およびそれらプログラムのコンパイル方法に関し、特に、上記した独自仕様言語プログラムと汎用言語プログラムとが一つのファイル内に混在して記述された異種言語混在プログラムを開発するためのプログラム開発支援装置およびコンパイル方法に関する。
【0002】
【従来の技術】
膨大かつ多様な信号処理が求められる測定装置や通信装置などの電子機器の多くには、高性能なプロセッサが搭載されている。それに伴い、プロセッサ上で実行されるプログラム(ファームウェア)もまた、複雑でサイズが大きくなる傾向にある。よって、必然と、これら電子機器に記録されているプログラムは、未知のバグを含んでいたり、機能の追加や改善を求められることが多くなっている。
【0003】
そのため、このような電子機器は、動作の設定/監視や上記したプログラムのアップデートを可能にするために、通信ケーブルを介して、外部のコンピュータと接続可能な形態をとっていることが多い。すなわち、この形態では、外部のコンピュータから電子機器のプロセッサに対し、制御コマンドや制御プログラム自体を配信することが可能になっている。さらに換言すれば、外部のコンピュータ上で開発したプログラムのアルゴリズムや設定内容に従って、電子機器を操作することが可能になっている。
【0004】
そのような電子機器のうちでも特に半導体試験装置は、多種多様かつ独自仕様の半導体デバイスに対してそれぞれ個別のデバイステストプログラムを用意する必要がある特殊な測定装置であり、半導体試験装置のプロセッサ上で実行させるプログラムを、利用者(半導体デバイス製造メーカ)自らが開発するという形態が定着している。
【0005】
ところが、半導体試験装置を筆頭とした特殊用途の電子機器は、搭載されるプロセッサも独自仕様のものが多く、必然とそのプロセッサが理解できるバイナリファイルも独自仕様に従ったものとなっている。そのため、そのようなバイナリファイルの元となるソースファイルの作成に必要なプログラム言語の仕様や開発支援環境もまた特殊となり、プログラム開発者は、プログラム言語とともに開発支援環境の操作も習熟する必要があった。
【0006】
このような背景から、近年においては、C言語やJAVA(登録商標)等の汎用言語によって開発されたプログラムを実行することができる電子機器も登場してきているが、そのような電子機器を採用することは、過去の独自仕様のプログラム資産を活用することができないという新たな問題を生み出す。
【0007】
そこで、現状では、データ処理やアルゴリズム全体を、C言語のような汎用言語プログラムで記述し、その汎用言語プログラム内から、電子機器に依存する独自仕様言語プログラムをサブルーチンとして呼び出すという形態がみられる。以下に、この形態におけるプログラムの開発と実行に関し、プログラムを実行する電子機器が半導体試験装置である場合を例に挙げて詳述する。
【0008】
まず、半導体試験装置上でのプログラムの実行動作を理解するために、半導体試験装置とそのプログラム開発環境について説明する。半導体試験装置は、半導体メモリ、ロジックIC、リニアICなどの半導体デバイスに対して所定の動作試験を行う特殊な測定装置であり、一般にその装置構成は、上記した半導体デバイスの種別ごとに異なっている。また、半導体試験装置への試験実行指示、試験結果取得およびプログラム開発は、通常、半導体試験装置に接続されたワークステーションによって行なわれ、半導体試験は、半導体試験装置とワークステーションとで構成される半導体試験システム(例えば、特許文献1参照)によって実現される。
【0009】
図10は、従来の半導体試験システムの概略構成を示すブロック図であり、特に、上記したように異なる装置構成の半導体試験装置間において共通する構成を示すものである。図10において、半導体試験装置100は、テスタプロセッサ110と、テスタ本体120と、テストヘッド130と、通信インターフェース140とを備えて構成されている。
【0010】
テスタプロセッサ110は、テスタ本体120との間で、制御コマンドの送信や試験データの送受信を行う手段であり、テスタ本体120の制御や後述するワークステーションとの間の通信を行うコントローラである。特に、テスタプロセッサ110は、内部に搭載したメモリ(図示略)に、OS(オペレーティングシステム)カーネル111を格納しており、デバイステストプログラムの起動や監視、メモリ管理などを行うとともに、同じくメモリに格納された通信バスドライバ112やテスタバスドライバ113を介して、通信インターフェース140の監視/制御、テスタ本体120の制御、試験データの送受信を行う。
【0011】
ここで、デバイステストプログラムは、上記した汎用言語プログラム114と独自仕様言語プログラム117とで構成されており、それら全体で、被測定デバイス131に対する機能試験やDCパラメトリック試験等の各種の試験を実施する手順等を規定している。汎用言語プログラム114は、試験結果として取得した各種データを処理するコマンドを含んだステートメントと、デバイステストプログラム全体をどのように実行するかを示すコマンドを含んだステートメントとによって構成されており、OSカーネル111上で直接実行可能なバイナリファイルである。
【0012】
一方、独自仕様言語プログラム117は、テスタ本体120を制御するためのコマンドで構成されるオブジェクトファイルである。但し、そのオブジェクトファイルは、過去の資産である独自仕様言語プログラムと同様に、独自仕様言語プログラム117に最適化されたカーネル上でのみ直接実行可能なバイナリファイルである。そのため、独自仕様言語プログラム117をOSカーネル111上で実行させるにあたっては、実行用エミュレータ115による解釈処理を要する。また、独自仕様言語プログラム117は、後述するワークステーション200に対してのディスク・アクセス、キー入力、ディスプレイ表示といった入出力コマンドも含んでおり、それら入出力コマンドの実行にあたっては、実行用エミュレータ115による解釈に加え、さらにIO制御用エミュレータ116による解釈処理を要する。
【0013】
テスタ本体120は、テスタプロセッサ110から送信される制御コマンドに従って、テストヘッド130に実装された被測定デバイス131に対し、機能試験やDCパラメトリック試験、RF試験(高周波試験)等の各種の試験を行う手段であり、レジスタ121、メモリ122、試験信号送受信部123を備えて構成されている。レジスタ121は、テスタプロセッサ110内の上記テスタバスドライバ113との間で送受信される各種のデータを格納し、格納されたデータは、直接またはメモリ122を介して試験信号送受信部123に渡される。
【0014】
また、試験信号送受信部123から出力されるデータは、一旦レジスタ121やメモリ122に格納された後、レジスタ121を介してテスタプロセッサ110内の上記テスタバスドライバ113に渡される。試験信号送受信部123は、パターン発生器やタイミング発生器、DCユニット等の種々の試験ユニットから構成され、これら試験ユニットによって生成された試験信号を被測定デバイス131に入力するとともに、被測定デバイス131の出力ピンに現れるデータを取得する。
【0015】
図11は、上記したワークステーション200の概略構成を示すブロック図である。ワークステーション200は、半導体試験装置100内のテスタプロセッサ110に対してプログラムの転送や実行指示を行うコンソール端末の役割と、上記した汎用言語プログラム114や独自仕様言語プログラム117の開発を支援するプログラム開発支援装置の役割とを担う。図11において、ワークステーション200は、プロセッサ220と、通信インターフェース241と、ハードディスク装置242と、マウス243と、キーボード244と、ディスプレイ装置245とを備えて構成されている。
【0016】
プロセッサ220は、内部に搭載したメモリ(図示略)に、OS(オペレーティングシステム)カーネル221を格納しており、種々のプログラムの起動や監視、メモリ管理などを行うとともに、同じくメモリに格納される通信バスドライバ223、ハードディスクドライバ224、マウスドライバ225、キーボードドライバ226、ディスプレイドライバ227を介して、通信インターフェース241の監視や制御、ハードディスク装置242との間でのプログラムやデータの読み込み/書き込み、マウス243やキーボード244からの入力情報の取得、ディスプレイ装置245への表示情報の出力などを行う。ここで特に、通信インターフェース241は、通信ケーブル(図示せず)を介して、図10に示した通信インターフェース140と接続されており、ワークステーション200と半導体試験装置100との間の通信を可能としている。
【0017】
また、OSカーネル221は、GUI(Graphical User Interface)処理部222を有しており、図示するエディタ228、汎用言語コンパイラ229、リンカ233、汎用言語デバッガ231、独自仕様言語コンパイラ230、独自仕様言語デバッガ232などの各種プログラムは、ディスプレイ装置245上に表示されるウィンドウ画面単位で実行可能である。なお、このワークステーション200は、汎用的なコンピュータの装置構成と同等である。よって、上記した各種ドライバや各種プログラムは、通常はハードディスク装置242に記憶されており、OSカーネル221に従って必要に応じて上記メモリに読み込まれて実行される。
【0018】
次に、上記した半導体試験装置100とワークステーション200とで構成される半導体試験システムにおいて、デバイステストプログラムの開発と実行の流れについて説明する。図12は、従来のデバイステストプログラムの開発と実行手順を示したフローチャートである。ここでは、デバイステストプログラムが、上記したように汎用言語プログラムと独自仕様言語プログラムとで構成されており、汎用言語プログラムとしてC言語を採用し、独自仕様言語プログラムとしてATL(アドバンテスト社独自規格)を採用した場合を例に挙げる。
【0019】
まず、プログラム開発者は、ワークステーション200上においてエディタ228を起動させ、C言語によるソースプログラムを作成する(ステップS301)。このソースプログラムは、上述したように、デバイステストプログラム全体のアルゴリズムを記述するものであり、シーケンス処理の所望の位置で、ATLで記述されたオブジェクトプログラムを呼び出して実行したり、その実行によって得られた試験結果データを処理する手順を規定している。
【0020】
C言語によるソースプログラムの作成を終えると、プログラム開発者は、Cコンパイラ(汎用言語コンパイラ229に相当)に対し、作成したソースプログラムのファイル(以下、必要なヘッダファイル等を含めてCソースファイルと称する。)を指定してコンパイルを実行させる(ステップS302)。コンパイル処理では、まず構文チェックが行なわれ、構文エラーが生じた場合には、エディタ228でエラー箇所を修正し、再度コンパイルを実行する。エラーがない場合には、上記したCソースファイルを機械語に翻訳したオブジェクトファイル(以下、Cオブジェクトファイルと称する。)が生成される。
【0021】
ステップS301で作成された複数のCソースファイルに対し、上記したステップS302が完了すると、プログラム開発者は、リンカ233に対し、生成された複数のCオブジェクトファイルやその他に必要なライブラリファイルを指定してリンクを実行させる(ステップS303)。このリンクによって、半導体試験装置100のテスタプロセッサ110上で直接実行可能な単一のCオブジェクトファイルが生成される。
【0022】
また、プログラム開発者は、C言語によるオブジェクトファイルの生成と並行して、ワークステーション200上においてエディタ228を起動させ、ATLによるソースプログラムを作成する(ステップS401)。このソースプログラムは、上述したように、半導体試験装置100を制御するための制御コマンドを記述するものである。
【0023】
ATLによるソースプログラムの作成が終えると、プログラム開発者は、ATLコンパイラ(独自仕様言語コンパイラ230に相当)に対し、作成したソースプログラムのファイル(以下、ATLソースファイルと称する。)を指定してコンパイルを実行させる(ステップS402)。なお、このコンパイル処理でも、上記したステップS302と同様に、まず構文チェックが行なわれ、構文エラーが生じた場合には、エディタ228でエラー箇所を修正し、再度コンパイルを実行する。エラーがない場合には、上記したATLソースプログラムは、上記したCオブジェクトファイルで表わされる機械語(ある特定のテスタプロセッサで理解できる機械語)とは異なる旧テスタプロセッサ仕様の機械語に翻訳され、オブジェクトファイル(以下、ATLオブジェクトファイルと称する。)が生成される。
【0024】
このような手順によって、単一CオブジェクトファイルとATLオブジェクトファイル群が用意されると、プログラム開発者は、ワークステーション200上において、半導体試験装置100との通信を可能にするコントロールプログラムを起動し、そのコントロールプログラムを用いて単一CオブジェクトファイルとATLオブジェクトファイル群を半導体試験装置100のテスタプロセッサ110へと転送する(ステップS304,ステップS403)。
【0025】
続いて、プログラム開発者は、上記したコントロールプログラムに対して、単一Cオブジェクトファイルの実行指示を与える(ステップS305)。これにより、半導体試験装置100のテスタプロセッサ110は、単一Cオブジェクトファイルに記述されたアルゴリズムに従って、ATLオブジェクトファイルの実行→テスタ本体120の所望の試験ユニットの稼動→被測定デバイス131から得られた試験結果の取得→データ処理を繰り返す。この際、データ処理によって適宜加工等が行われた試験結果は、半導体試験装置100の通信インターフェース140、通信ケーブル、ワークステーション200の通信インターフェース241を介して、上記したコントロールプログラムで受け取ることができ、そのコントロールプログラムに割り当てられたウィンドウ画面上に表示される。
【0026】
ここで、プログラム開発者は、試験結果が明らかに異常である場合等の不具合を発見した場合、デバイステストプログラムに論理的なエラーが含まれていると判断し、ワークステーション200上において汎用言語デバッガ231を起動させ、Cソースファイル中の所定のステートメントにブレークポイントを設定する。そして、プログラム開発者がデバッグ開始を指示することにより、汎用言語デバッガ231は、再度、上記したステップS302〜S305の手順によって単一Cオブジェクトファイルを実行し、実行されたステートメントが、設定したブレークポイントに達したことを検出すると、ブレークしたステートメントの段階で有効となっている変数を表示する。プログラム開発者は、この変数の確認によって論理的なエラーを発見すると、エディタ228を起動させ、Cソースファイルを適宜修正して上記したステップS302〜S305の手順を繰り返す。
【0027】
一方、プログラム開発者は、汎用言語デバッガ231によってCソースファイルの論理的なエラーを発見できないときは、続いて、独自仕様言語デバッガ232を起動させ、ATLソースファイル中の所定のステートメントにブレークポイントを設定し、上記同様のデバッグ処理を行う。
【0028】
【特許文献1】
特開2001−195275号公報
【0029】
【発明が解決しようとする課題】
しかしながら、上記したように、被制御装置(上記例では半導体試験装置)上で実行させるプログラムを汎用言語と独自仕様言語のように異種言語で記述した場合には、独自仕様言語による過去のプログラム資産を活用できるものの、双方のプログラムの開発段階において、それぞれ個別のソースファイルを必要とする。上記した例では、CソースファイルとATLソースファイルとをそれぞれ別ファイルとして用意する必要がある。簡単に言えば、汎用言語で記述されたソースファイル中に独自仕様言語に作成されたオブジェクトファイルの呼び出しを埋め込んだ場合には、少なくとも2つのソースファイルが必要となる。特に、ある一つの汎用言語ソースファイルに対しては、ある特定の独自仕様言語ソースファイルが対応するため、これらファイルはひとまとめで管理しなければならない。
【0030】
さらに、双方のソースファイルの内容から、関連する異種言語のソースファイルを特定することは困難であり、一度管理を誤ると、対応関係を再度見出すのに多くの時間と手間を要するという問題があった。このことから、エディタ上でのソースファイルの修正作業や他のソースファイルの部分的な流用については慎重にならざるを得ず、プログラム開発者にとってもミスを増やす原因となっていた。
【0031】
また、一つの実行プログラムに対して、汎用言語ソースファイルと独自仕様言語ソースファイルとを用意することから、必然と、それらをコンパイルすることによって同じ数だけオブジェクトファイルが生成される。これは、上記した管理がさらに複雑になることを意味する。このように、従来では、一つの実行プログラムに対して異種言語の複数のソースファイルおよびオブジェクトファイルが存在したため、ファイル管理が煩雑となり、プログラムの開発効率を低下させるという問題があった。
【0032】
本発明は上記に鑑みてなされたものであって、汎用言語ソースファイルのプリプロセッサ記述部に独自仕様言語のソースファイルを埋め込むことによって、独自仕様言語のプログラムによる過去の資産を活用できるとともに、一つの実行ファイルに対して必要なソースファイルおよびオブジェクトファイルの数を大幅に減少させることのできるプログラム開発支援装置、およびコンパイル方法を提供することを目的とする。
【0033】
【課題を解決するための手段】
上記目的を達成するために、本発明にかかるプログラム開発支援装置は、独自仕様言語ソースプログラムをコンパイルすることで生成される独自仕様言語オブジェクトコードに従って動作する電子機器を備えた所定のプログラム実行装置上で実行可能なプログラムファイルを作成するためのプログラム開発支援装置において、前記独自仕様言語ソースプログラムをコンパイルして前記独自仕様言語オブジェクトコードを生成する独自仕様言語コンパイル手段(後述する独自仕様言語コンパイラ30に相当)と、汎用言語ソースプログラムの所定領域に前記独自仕様言語ソースプログラムが記述された構成の異種言語混在ソースプログラム内の前記汎用言語ソースプログラム記述部分をコンパイルして汎用言語オブジェクトコードを生成する汎 用言語コンパイル手段(後述する汎用言語コンパイラ29に相当)と、前記異種言語混在ソースプログラムから前記独自仕様言語ソースプログラムを抽出し、抽出した独自仕様言語ソースプログラムを指定して前記独自仕様言語コンパイル手段を実行させるとともに、前記異種言語混在ソースプログラムを指定して前記汎用言語コンパイル手段を実行させ、得られた独自仕様言語オブジェクトコードと汎用言語オブジェクトコードと前記独自仕様言語オブジェクトコードおよび/または汎用言語オブジェクトコードのコード位置情報とを結合して単一のオブジェクトファイルを生成する統合コンパイル手段(後述する統合コンパイラ34に相当)と、前記コード位置情報に基づいて前記オブジェクトファイルから前記独自仕様言語オブジェクトコードを抽出し、前記電子機器を動作させるための前記プログラム実行装置のメモリ上に、抽出された前記独自仕様言語オブジェクトコードをロードするロードプログラムを、前記オブジェクトファイルにリンクすることによって、前記プログラムファイルを生成するリンク手段(後述するリンカ33に相当)と、前記プログラムファイルを前記プログラム実行装置に転送するプログラム転送手段(後述するリンカ33に相当)と、を備えたことを特徴としている。
【0034】
この発明によれば、汎用言語プログラムで記述されるアルゴリズム内に所定のプログラム実行装置特有の独自仕様言語プログラムの命令を組み込んだ態様において、独自仕様言語プログラムのソース自体が汎用言語プログラムのソース内に埋め込まれているので、独自仕様言語プログラムと汎用言語プログラムを、ソースファイルのみでなく、コンパイルによって作成されるオブジェクトファイルの段階においても一つのファイルとして取り扱うことができる。また、コード位置情報を参照して、オブジェクトファイルから、独自仕様言語オブジェクトコードと汎用言語オブジェクトコードを取り出すことができる。また、所定のプログラム実行装置へのファームウェアアップデートを行うことができる。
【0039】
また、本発明にかかるプログラム開発支援装置は、上記した発明において、前記プログラム実行装置に対して該プログラム実行装置に転送されたプログラムファイルを実行させる指示を与えるプログラム実行装置コントロール手段(後述するコントロールプログラムに相当)を備えたことを特徴としている。
【0040】
この発明によれば、所定のプログラム実行装置へのプログラム実行指示、デバッグ等を行うことができる。
【0041】
また、本発明にかかるプログラム開発支援装置は、上記した発明において、前記異種言語混在ソースプログラム内のステートメントにブレークポイントを設定するブレークポイント設定手段(後述する統合デバッガ35に相当)と、前記プログラムファイルの実行時に前記ブレークポイントで該プログラムファイルを停止させるとともに、停止したプログラムファイルの前記ステートメントが前記汎用言語ソースプログラムに属する場合に汎用言語デバッガ(後述する汎用言語 デバッガ31に相当)を起動し、停止したプログラムファイルの前記ステートメントが前記独自仕様言語ソースプログラムに属する場合に独自仕様言語デバッガ(後述する独自仕様言語デバッガ32に相当)を起動することを特徴としている。
【0042】
この発明によれば、独自仕様言語ソースプログラムとの汎用言語ソースプログラムとが混在した異種言語混在プログラムに対してデバッグを行う場合にも、既存するそれぞれのデバッガを利用することができる。
【0043】
また、本発明にかかるプログラム開発支援装置は、上記した発明において、前記汎用言語デバッガと前記独自仕様言語デバッガとから得られたデバッグ情報を共通するウィンドウ画面に表示することを特徴としている。
【0044】
この発明によれば、独自仕様言語ソースプログラムとの汎用言語ソースプログラムとが混在した異種言語混在プログラムに対してデバッグを行う場合にも、共通のデバッグ環境を利用することができる。
【0045】
また、本発明にかかるプログラム開発支援装置は、上記した発明において、前記汎用言語はC言語であり、前記独自仕様言語ソースプログラムは、前記汎用言語ソースプログラムのプリプロセッサコマンドによって該汎用言語ソースプログラム内に記述されたことを特徴としている。
【0046】
また、本発明にかかるプログラム開発支援装置は、上記した発明において、前記プリプロセッサコマンドは、#pragmaであることを特徴としている。
【0047】
また、本発明にかかるプログラム開発支援装置は、上記した発明において、前記プログラム実行装置は、半導体試験装置であることを特徴としている。
【0051】
また、本発明にかかるコンパイル方法は、独自仕様言語ソースプログラムをコンパイルすることで生成される独自仕様言語オブジェクトコードに従って動作する電子機器を備えた所定のプログラム実行装置上で実行可能なプログラムファイルをコンピュータが作成するためのコンパイル方法において、統合コンパイル手段が、前記異種言語混在ソースプログラムから前記独自仕様言語ソースプログラムを抽出する独自仕様言語ソースプログラム抽出ステップ(後述するステップS121に相当)と、独自仕様言語コンパイル手段が、抽出された前記独自仕様言語ソースプログラムをコンパイルして独自仕様言語オブジェクトコードを生成する独自仕様言語コンパイルステップ(後述するステップS123に相当)と、汎用言語コンパイル手段が、汎用言語ソースプログラムの所定領域に前記独自仕様言語ソースプログラムが記述された構成の異種言語混在ソースプログラムの前記汎用言語ソースプログラム記述部分をコンパイルして汎用言語オブジェクトコードを生成する汎用言語コンパイルス テップ(後述するステップS122に相当)と、前記統合コンパイル手段が、前記独自仕様言語オブジェクトコードと前記汎用言語オブジェクトコードと前記独自仕様言語オブジェクトコードおよび/または汎用言語オブジェクトコードのコード位置情報とを結合してオブジェクトファイルを生 成するオブジェクトファイル生成ステップ(後述するステップS124に相当)と、前記統合コンパイル手段が、前記電子機器を動作させるための前記プログラム実行装置のメモリ上に、抽出された前記独自仕様言語オブジェクトコードをロードするロードプログラムを、前記オブジェクトファイルにリンクすることによって、前記プログラムファイルを生成するリンクステップ(後述するステップS130に相当)と、プログラム転送手段が、前記プログラムファイルを前記プログラム実行装置に転送するプログラム転送ステップ(後述するステップS140に相当)と、を含んだことを特徴としている。
【0053】
【発明の実施の形態】
以下に、本発明にかかるプログラム開発支援装置、プログラム実行装置、コンパイル方法およびデバッグ方法の実施の形態を図面に基づいて詳細に説明する。なお、この実施の形態により本発明が限定されるものではない。
【0054】
この実施の形態では、本発明の特徴の理解を容易にするために、上述した従来技術の説明と同様に、本発明を、半導体試験装置とワークステーションとから構成される半導体試験システムに適用した場合について説明する。具体的には、本発明にかかるプログラム開発支援装置が、半導体試験システムのワークステーションに相当し、本発明にかかるプログラム実行装置が半導体試験システムの半導体試験装置に相当し、本発明にかかるコンパイル方法およびデバッグ方法が上記半導体試験システム上でのコンパイル方法およびデバッグ方法に相当する。
【0055】
図1は、本実施の形態にかかる半導体試験システムを示すブロック図である。図1に示す半導体試験システムは、通信ケーブルで接続されたワークステーション10と半導体試験装置11とを備えて構成される。
【0056】
ワークステーション10の基本構成は、図11に示した従来の半導体試験システムのワークステーション200と変わることはなく、図1中のプロセッサ20、通信インターフェース41、ハードディスク装置42と、マウス43と、キーボード44と、ディスプレイ装置45は、それぞれ図11に示したプロセッサ220、通信インターフェース241、ハードディスク装置242、マウス243、キーボード244、ディスプレイ装置245に対応する。
【0057】
また、プロセッサ20内部において、メモリ(図示略)に格納されるOSカーネル21、GUI処理部22、通信バスドライバ23、ハードディスクドライバ24、マウスドライバ25、キーボードドライバ26、ディスプレイドライバ27、エディタ28、汎用言語コンパイラ29、独自仕様言語コンパイラ30、汎用言語デバッガ31、独自仕様言語デバッガ32、リンカ33もまた、それぞれ図11に示したOSカーネル221、GUI処理部222、通信バスドライバ223、ハードディスクドライバ224、マウスドライバ225、キーボードドライバ226、ディスプレイドライバ227、エディタ228、汎用言語コンパイラ229、独自仕様言語コンパイラ230、汎用言語デバッガ231、独自仕様言語デバッガ232、リンカ233と同様に機能する。
【0058】
ここで、本実施の形態で説明するワークステーション10において、従来のワークステーション200と異なるのは、上記した汎用言語コンパイラ29と独自仕様言語コンパイラ30の上位アプリケーションに位置する統合コンパイラ34を有している点である。換言すれば、このワークステーション10は、統合コンパイラ34から、汎用言語コンパイラ29と独自仕様言語コンパイラ30をそれぞれ利用できることを特徴としている。
【0059】
他にも、本実施の形態で説明するワークステーション10では、従来のワークステーション200と異なる点として、上記した汎用言語デバッガ31と独自仕様言語デバッガ32の上位アプリケーションに位置する統合デバッガ35を有している。すなわち、上記した統合コンパイラ34と同様に、このワークステーション10は、統合デバッガ35から、汎用言語デバッガ31と独自仕様言語デバッガ32をそれぞれ利用できることを特徴としている。
【0060】
また、図1に示す半導体試験システムでは、ワークステーション10に半導体試験装置11が接続されているが、この半導体試験装置11の内部構成については図10に示した従来の半導体試験装置100と同様であるので、ここではその説明を省略する。但し、この半導体試験装置11は、ワークステーション10において開発されるプログラムの態様によっては、テスタプロセッサの動作が従来とは一部異なる。その説明については後述する。
【0061】
次に、この半導体試験システムにおいて、デバイステストプログラムの開発と実行の流れについて説明する。図2は、本実施の形態におけるデバイステストプログラムの開発と実行手順を示したフローチャートである。ここでは、図12の説明と同様に、デバイステストプログラムが、汎用言語プログラムと独自仕様言語プログラムとで構成されており、汎用言語プログラムとしてC言語を採用し、独自仕様言語プログラムとしてATL(アドバンテスト社独自規格)を採用した場合を例に挙げる。
【0062】
まず、プログラム開発者は、ワークステーション10上においてエディタ28を起動させ、ソースプログラムを作成する(ステップS110)。ここで、このソースプログラムは、汎用言語であるC言語で記述されるが、図12で説明したCソースファイルの内容とは異なり、プリプロセッサ記述部に、独自仕様言語であるATLソースファイルの内容を記述することを特徴としている。ここで、このソースプログラムをC+ATLソースプログラムと称する。
【0063】
図3は、C+ATLソースプログラムの記述例を示す図である。なお、図3において、左端に配置された「数字:」は行番号を示しており、ここでは説明の便宜上用いるが、実際のプログラム動作においては無視される。以下のC+ATLソースプログラムの内容の説明では、この行番号によって各ステートメントを参照する。
【0064】
C言語コンパイラは、先頭が#で続くステートメントをプリプロセッサコマンドであると認識する。図3に示すC+ATLソースプログラムでは、行番号1の#include、行番号3,4,5の#pragmaがそのプリプロセッサコマンドに相当する。#includeは、ヘッダファイル「AT/hybrid.h」の記述内容を単にその位置に展開するのみであり、行番号10以降に続くメイン関数内において必要となる内容である。
【0065】
一方の#pragmaは、C言語との全般的な互換性を保ちながら、マシンまたはOSに固有の機能を実現する特別なプリプロセッサコマンドである。よって、#pragmaは定義上、マシンまたはOS固有であり、通常コンパイラごとに異なる。#pragmaは、通常、プリプロセッサに新しい機能を与えたり、インプリメントに依存する情報をコンパイラに伝えるといった利用方法が主であるが、本実施の形態で作成されるC+ATLソースプログラムでは、#pragmaによって渡されるトークンとして、独自仕様言語であるATLの記述を埋め込むことを特徴としている。なお、この#pragmaによって渡されるATLの記述の処理については後述する。
【0066】
図3に示すC+ATLソースプログラムにおいて、行番号10〜28に記述されている内容は、従来の半導体試験システムのワークステーション上において作成される内容と同じものであり、その記述の中において、ATLオブジェクトファイルの呼び出しやデータ処理が規定されている。
【0067】
C+ATLソースプログラムの作成が終えると、プログラム開発者は、統合コンパイラ34に対し、作成したC+ATLソースプログラムのファイル(以下、必要なヘッダファイル等を含めてC+ATLソースファイルと称する。)を指定してコンパイルを実行させる(ステップS120)。このコンパイルの実行に際しては、まず構文チェックが行なわれ、構文エラーが生じた場合には、エディタ28でエラー箇所を修正し、再度コンパイルを実行する。エラーがない場合に初めて、オブジェクトファイルを生成するためのコンパイル処理が開始される。
【0068】
図4は、統合コンパイラ34によるコンパイル処理を説明するためのフローチャートである。統合コンパイラ34は、ステップS110において作成されたC+ATLソースファイルにおいて構文エラーを発見できなかったときは、続いて、そのC+ATLソースファイルからATL記述部を抽出し、ATLソースファイルを生成する(ステップS121)。図5は、このATLソースファイルの生成処理を説明するための説明図である。ATLソースファイルの生成処理は、上述したように、C+ATLソースファイルのプリプロセッサ記述部から、#pragmaを識別し、#pragmaの後に続くトークンを解析することから始まる。図5に示す例では、#pragmaの直後のatlが、その後に続く情報がATL記述部であることを示すキーワードとなる。
【0069】
図5の例を用いて具体的な説明を行うと、統合コンパイラ34は、行番号3において、#pragma atlを認識すると、その後に続くキーワードのnameを取り出し、そのキーワードnameに続くダブルクォーテーションで囲まれた記述、すなわちSAMPLEがプログラム名であると解釈する。この解釈によって、ATLソースファイルの先頭部に、PRO SAMPLEが挿入される。さらに、行番号4において、#pragma atlを認識すると、その後に続くキーワードのsocketを取り出し、そのキーワードsocketに続くダブルクォーテーションで囲まれた記述、すなわちSSOCが使用するATLのソケットプログラム名であると解釈する。この解釈によって、ATLソースファイル内のPRO SAMPLEの後にSSOCが挿入される。
【0070】
さらに、統合コンパイラ34は、行番号5において、#pragma atlを認識すると、その後に続くキーワードのprocを取り出し、そのキーワードprocの直後の文字列とその後に続くダブルクォーテーションで囲まれた記述、すなわち、
P1(ARG1,ARG2(2)) ”{WRITE ”ARG1=”,ARG1,/WRITE ”ARG2=”,ARG2,/}”
が関数定義であると解釈する。この解釈によって、ATLソースファイルに、
Figure 0004009517
が追記される。
【0071】
そして、統合コンパイラ34は、C+ATLソースファイルにおいて、#pragma atlを発見することができないまま、C+ATLソースファイルの最終行(行番号28)に達すると、ATLソースファイルの最後にENDを挿入してそのATLソースファイルの作成を終える。
【0072】
ATLソースファイルの作成が終わると、統合コンパイラ34は、C+ATLソースファイルのC言語記述部のコンパイル、すなわちCオブジェクトコードの生成を行う(ステップS122)。このコンパイルは、通常のCコンパイラ(汎用言語コンパイラ29に相当する。)によって処理され、上記した#pragmaの記述部分は無視される。なお、ここでは、統合コンパイラ34がCコンパイラを呼び出して処理させるとしているが、統合コンパイラ34自体にCコンパイラの機能を取り入れ、上記したATLソースファイルの生成と並行して、Cオブジェクトコードの生成を行ってもよい。この場合、図1に示した汎用言語コンパイラ29は不要となる。
【0073】
Cオブジェクトコードの生成が終わると、統合コンパイラ34は、ステップS121において生成されたATLソースファイルのコンパイル、すなわちATLオブジェクトコードの生成を行う(ステップS123)。このコンパイルは、ATLコンパイラ(独自仕様言語コンパイラ30に相当する。)の呼び出しによって実行され、図12のステップS402と同様に、上記したCオブジェクトコードで表わされる機械語(ある特定のテスタプロセッサで理解できる機械語)とは異なる旧テスタプロセッサ仕様の機械語への翻訳を行う。
【0074】
ATLオブジェクトコードの生成が終わると、統合コンパイラ34は、ステップS122において生成されたCオブジェクトコードに、ステップS121において生成されたATLオブジェクトコードを結合し、さらにそのATLオブジェクトコードが格納された位置情報(ATLオブジェクトコード開始位置)を付加したオブジェクトファイル(以下、C+ATLオブジェクトファイルと称する。)を生成する(ステップS124)。図6は、このC+ATLオブジェクトファイルの構成を示す図である。図6に示すように、C+ATLオブジェクトファイルは、Cオブジェクトコードに続いてATLオブジェクトコードが配置される。なお、同図において、ATLオブジェクトコードの位置情報等の付加情報の図示は省略されている。
【0075】
なお、この統合コンパイラ34によるコンパイル処理は、上記同様に作成された複数のC+ATLソースファイルに対して行われ、これにより複数のC+ATLオブジェクトファイルが用意される。このようにして統合コンパイラ34によるコンパイル処理が終わると、プログラム開発者は、リンカ33に対し、生成された複数のC+ATLオブジェクトファイルやその他に必要なライブラリファイルを指定してリンクを実行させる(図2のステップS130)。
【0076】
リンカ33は、複数のC+ATLオブジェクトファイルやその他に必要なライブラリファイルに加え、上記各C+ATLオブジェクトファイルからATLオブジェクトコード部分をロードするためのロードプログラムを用意し、それらをリンクすることによって、半導体試験装置11のテスタプロセッサ上で直接実行可能な単一オブジェクトファイルを生成する。
【0077】
このような手順によって、単一オブジェクトファイルが用意されると、プログラム開発者は、ワークステーション10上において、半導体試験装置11との通信を可能にするコントロールプログラムを起動し、そのコントロールプログラムを用いて上記単一オブジェクトファイルを半導体試験装置11のテスタプロセッサへと転送する(ステップS140)。
【0078】
続いて、プログラム開発者は、上記したコントロールプログラムに対して、単一オブジェクトファイルの実行指示を与える(ステップS150)。これにより、半導体試験装置11のテスタプロセッサは、まず、単一オブジェクトファイルに含まれているロードプログラムに従って、同単一オブ ジェクトファイル内に配置されているCオブジェクトコードとATLオブジェクトコードをメモリ上にロードする。半導体試験装置11と同じ構成を示す図10を参照すれば、ロードされたCオブジェクトコードは汎用言語プログラム114に相当しOSカーネル111によって直接実行され、ATLオブジェクトコードは独自仕様言語プログラム117に相当しIO制御用エミュレータ116および実行用エミュレータ115上で実行される。続いて、テスタプロセッサは、ロードされたCオブジェクトコードに記述されたアルゴリズムに従って、同じくロードされているATLオブジェクトコードの実行→テスタ本体の所望の試験ユニットの稼動→被測定デバイスから得られた試験結果の取得→データ処理を繰り返す。この際、データ処理によって適宜加工等が行われた試験結果は、従来と同様に、半導体試験装置11の通信インターフェース、通信ケーブル、ワークステーション10の通信インターフェース41を介して、上記したコントロールプログラムで受け取ることができ、そのコントロールプログラムに割り当てられたウィンドウ画面上に表示される。
【0079】
なお、ここでは、単一オブジェクトファイル内に、ロードプログラムが含まれているとしたが、半導体試験装置11のテスタプロセッサ内において、あらかじめそのロードプログラムを読み込ませておき、ワークステーション10からの実行指示に従って、まずこのロードプログラムが起動するようにすることもできる。
【0080】
次に、本実施の形態における半導体試験システムのデバック処理について説明する。プログラム開発者は、上記したステップS150の実行によって得た試験結果が、明らかに異常である場合等の不具合を発見した場合、従来と同様、デバイステストプログラムに対してデバック処理を行う。そこでまず、プログラム開発者は、ワークステーション10上において、統合デバッガ35を起動させ、C+ATLソースファイル中の所定のステートメントにブレークポイントを設定する。
【0081】
そして、プログラム開発者がデバッグ開始を指示することによって、統合デバッガ35は、再度、上記したステップS120〜S150の手順によって単一オブジェクトファイルを実行し、実行されたステートメントが、設定したブレークポイントに達したことを検出すると、Cデバッガ(汎用言語デバッガ31に相当する。)とATLデバッガ(独自仕様言語デバッガ32に相当する。)のいずれかのデバッガを起動させるかのデバッガ選択ルーチンを実行する。
【0082】
図7は、このデバッガ選択ルーチンを示すフローチャートである。統合デバッガ35は、単一オブジェクトファイル中において順次実行されているステートメントがブレークポイントに到達すると、そのブレークポイントが設定されたステートメントを表示する(ステップS201)。そして、そのステートメントがATLオブジェクトコード部に相当するならば(ステップS202:Yes)、ATLデバッガを起動し(ステップS206)、ATLデバッガからブレークしたステートメントに含まれる変数等のデバッグ情報を取得する(ステップS207)。なお、ATLデバッガは、上記したブレークポイント設定時に、統合デバッガ35によってATLオブジェクトコード部のブレークポイント設定情報を取得している。
【0083】
統合デバッガ35は、ATLデバッガからデバッグ情報を取得すると、ブレーク時に有効となっている指定変数(シンボル)を表示する(ステップS205)。図8は、統合デバッガ35の実行画面の例を示す図であり、特にATL記述部内でブレークした状態を示している。図8において、統合デバッガ35は、実行ウィンドウ50内に、ウィンドウ表示に標準として付加されるタイトルバーやメニューバーに加え、ブレークポイント設定領域51、ソース表示領域52、シンボル表示領域53を有している。ここでは、C+ATLソースプログラム中のATL記述部内でブレークした状態として、ブレークポイントが設定された行番号5のステートメントがソース表示領域52内に表示されるとともに、シンボル表示領域53内に、そのステートメントで使用されている変数と変数に格納された値が表示されている。
【0084】
一方、統合デバッガ35は、ブレークしたステートメントがCオブジェクトコード部に相当するならば(ステップS202:No)、Cデバッガを起動し(ステップS203)、Cデバッガからブレークしたステートメントに含まれる変数等のデバッグ情報を取得する(ステップS204)。なお、Cデバッガは、上記したブレークポイント設定時に、統合デバッガ35によってCオブジェクトコード部のブレークポイント設定情報を取得している。
【0085】
統合デバッガ35は、Cデバッガからデバッグ情報を取得すると、ブレーク時に有効となっている指定変数(シンボル)を表示する(ステップS205)。図9は、統合デバッガ35の実行画面の例を示す図であり、特にC言語記述部内でブレークした状態を示している。図9に示す統合デバッガ35の実行ウィンドウ50は、図8と同様な構成であるが、ここでは、C+ATLソースプログラム中のC言語記述部内でブレークした状態として、ブレークポイントが設定された行番号15のステートメントがソース表示領域52内に表示されるとともに、シンボル表示領域53内に、そのステートメントで使用されている変数と変数に格納された値が表示されている。
【0086】
プログラム開発者は、この統合デバッガ35のウィンドウ画面上に表示された変数の値を確認することによって論理的なエラーを発見した場合、エディタ28を起動させ、C+ATLソースファイルを適宜修正して上記したステップS120〜S150の手順を繰り返す。
【0087】
以上に説明したとおり、実施の形態にかかる半導体試験システム、すなわち本発明にかかるプログラム開発支援装置、プログラム実行装置、コンパイル方法およびデバッグ方法によれば、独自仕様言語プログラムであるATLソース自体を汎用言語プログラムであるC言語ソース内に埋め込むことによって、従来別管理されていた双方のソースを一つのC+ATLソースファイルとして取り扱うことかできるので、ファイル管理を楽にし、プログラムの開発効率を向上させることができる。
【0088】
なお、本実施の形態では、本発明にかかるプログラム開発支援装置とプログラム実行装置をそれぞれワークステーションと半導体試験装置に適用した場合を例示したが、プログラム開発支援装置を汎用的なコンピュータシステムとし、プログラム実行装置をそのコンピュータシステムと通信可能な測定装置や制御装置に適用することができるのは言うまでもない。
【0089】
【発明の効果】
以上に説明したように、本発明にかかるプログラム開発支援装置およびコンパイル方法によれば、独自仕様言語プログラム自体を汎用言語プログラム内に埋め込むことで、従来別管理されていた双方のソースプログラムを、ソースファイルのみでなく、コンパイルによって作成されるオブジェクトファイルの段階においても一つのファイルとして取り扱うことができるので、ファイル管理を楽にし、プログラムの開発効率を向上させることができるという効果を奏する。
【図面の簡単な説明】
【図1】実施の形態にかかる半導体試験システムの概略構成を示すブロック図である。
【図2】デバイステストプログラムの開発と実行手順を示したフローチャートである。
【図3】C+ATLソースプログラムの記述例を示す図である。
【図4】統合コンパイラによるコンパイル処理を説明するためのフローチャートである。
【図5】ATLソースファイルの生成処理を説明するための説明図である。
【図6】C+ATLオブジェクトファイルの構成を示す図である。
【図7】デバッガ選択ルーチンを示すフローチャートである。
【図8】ATL記述部内でブレークした状態の統合デバッガの実行画面の例を示す図である。
【図9】C言語記述部内でブレークした状態の統合デバッガの実行画面の例を示す図である。
【図10】従来の半導体試験システムの概略構成を示すブロック図である。
【図11】従来の半導体試験システムのワークステーションの概略構成を示すブロック図である。
【図12】従来のデバイステストプログラムの開発と実行手順を示したフローチャートである。
【符号の説明】
10,200 ワークステーション
11,100 半導体試験装置
20,220 プロセッサ
21,111,221 OSカーネル
22,222 GUI処理部
23,112,223 通信バスドライバ
24,224 ハードディスクドライバ
25,225 マウスドライバ
26,226 キーボードドライバ
27,227 ディスプレイドライバ
28,228 エディタ
29,229 汎用言語コンパイラ
30,230 独自仕様言語コンパイラ
31,231 汎用言語デバッガ
32,232 独自仕様言語デバッガ
33,233 リンカ
34 統合コンパイラ
35 統合デバッガ
41,140,241 通信インターフェース
42,242 ハードディスク装置
43,243 マウス
44,244 キーボード
45,245 ディスプレイ装置
50 実行ウィンドウ
51 ブレークポイント設定領域
52 ソース表示領域
53 シンボル表示領域
110 テスタプロセッサ
113 テスタバスドライバ
114 汎用言語プログラム
115 実行用エミュレータ
116 制御用エミュレータ
117 独自仕様言語プログラム
120 テスタ本体
121 レジスタ
122 メモリ
123 試験信号送受信部
130 テストヘッド
131 被測定デバイス

Claims (8)

  1. 独自仕様言語ソースプログラムをコンパイルすることで生成される独自仕様言語オブジェクトコードに従って動作する電子機器を備えた所定のプログラム実行装置上で実行可能なプログラムファイルを作成するためのプログラム開発支援装置において、
    前記独自仕様言語ソースプログラムをコンパイルして前記独自仕様言語オブジェクトコードを生成する独自仕様言語コンパイル手段と、
    汎用言語ソースプログラムの所定領域に前記独自仕様言語ソースプログラムが記述された構成の異種言語混在ソースプログラム内の前記汎用言語ソースプログラム記述部分をコンパイルして汎用言語オブジェクトコードを生成する汎用言語コンパイル手段と、
    前記異種言語混在ソースプログラムから前記独自仕様言語ソースプログラムを抽出し、抽出した独自仕様言語ソースプログラムを指定して前記独自仕様言語コンパイル手段を実行させるとともに、前記異種言語混在ソースプログラムを指定して前記汎用言語コンパイル手段を実行させ、得られた独自仕様言語オブジェクトコードと汎用言語オブジェクトコードと前記独自仕様言語オブジェクトコードおよび/または汎用言語オブジェクトコードのコード位置情報とを結合して単一のオブジェクトファイルを生成する統合コンパイル手段と、
    前記コード位置情報に基づいて前記オブジェクトファイルから前記独自仕様言語オブジェクトコードを抽出し、前記電子機器を動作させるための前記プログラム実行装置のメモリ上に、抽出された前記独自仕様言語オブジェクトコードをロードするロードプログラムを、前記オブジェクトファイルにリンクすることによって、前記プログラムファイルを生成するリンク手段と、
    前記プログラムファイルを前記プログラム実行装置に転送するプログラム転送手段と、
    を備えたことを特徴とするプログラム開発支援装置。
  2. 前記プログラム実行装置に対して該プログラム実行装置に転送されたプログラムファイルを実行させる指示を与えるプログラム実行装置コントロール手段を備えたことを特徴とする請求項に記載のプログラム開発支援装置。
  3. 前記異種言語混在ソースプログラム内のステートメントにブレークポイントを設定するブレークポイント設定手段と、
    前記プログラムファイルの実行時に前記ブレークポイントで該プログラムファイルを停止させるとともに、停止したプログラムファイルの前記ステートメントが前記汎用言語ソースプログラムに属する場合に汎用言語デバッガを起動し、停止したプログラムファイルの前記ステートメントが前記独自仕様言語ソースプログラムに属する場合に独自仕様言語デバッガを起動することを特徴とする請求項1または2に記載のプログラム開発支援装置。
  4. 前記汎用言語デバッガと前記独自仕様言語デバッガとから得られたデバッグ情報を共通するウィンドウ画面に表示することを特徴とする請求項に記載のプログラム開発支援装置。
  5. 前記汎用言語はC言語であり、前記独自仕様言語ソースプログラムは、前記汎用言語ソースプログラムのプリプロセッサコマンドによって該汎用言語ソースプログラム内に記述されたことを特徴とする請求項1〜4のいずれか一つに記載のプログラム開発支援装置。
  6. 前記プリプロセッサコマンドは、#pragmaであることを特徴とする請求項5に記載のプログラム開発支援装置。
  7. 前記プログラム実行装置は、半導体試験装置であることを特徴とする請求項1〜6のいずれか一つに記載のプログラム開発支援装置。
  8. 独自仕様言語ソースプログラムをコンパイルすることで生成される独自仕様言語オブジェクトコードに従って動作する電子機器を備えた所定のプログラム実行装置上で実行可能なプログラムファイルをコンピュータが作成するコンパイル方法において、
    統合コンパイル手段が、前記異種言語混在ソースプログラムから前記独自仕様言語ソースプログラムを抽出する独自仕様言語ソースプログラム抽出ステップと、
    独自仕様言語コンパイル手段が、抽出された前記独自仕様言語ソースプログラムをコンパイルして独自仕様言語オブジェクトコードを生成する独自仕様言語コンパイルステップと、
    汎用言語コンパイル手段が、汎用言語ソースプログラムの所定領域に前記独自仕様言語ソースプログラムが記述された構成の異種言語混在ソースプログラム内の前記汎用言語ソースプログラム記述部分をコンパイルして汎用言語オブジェクトコードを生成する汎用言語コンパイルステップと、
    前記統合コンパイル手段が、前記独自仕様言語オブジェクトコードと前記汎用言語オブジェクトコードと前記独自仕様言語オブジェクトコードおよび/または汎用言語オブジェクトコードのコード位置情報とを結合して単一のオブジェクトファイルを生成するオブジェクトファイル生成ステップと、
    前記統合コンパイル手段が、前記電子機器を動作させるための前記プログラム実行装置のメモリ上に、抽出された前記独自仕様言語オブジェクトコードをロードするロードプログラムを、前記オブジェクトファイルにリンクすることによって、前記プログラムファイルを生成するリンクステップと、
    プログラム転送手段が、前記プログラムファイルを前記プログラム実行装置に転送するプログラム転送ステップと、
    を含んだことを特徴とするコンパイル方法。
JP2002305010A 2002-10-18 2002-10-18 プログラム開発支援装置およびコンパイル方法 Expired - Fee Related JP4009517B2 (ja)

Priority Applications (5)

Application Number Priority Date Filing Date Title
JP2002305010A JP4009517B2 (ja) 2002-10-18 2002-10-18 プログラム開発支援装置およびコンパイル方法
PCT/JP2003/013302 WO2004036420A1 (ja) 2002-10-18 2003-10-17 プログラム開発支援装置、プログラム実行装置、コンパイル方法およびデバッグ方法
KR1020057006300A KR20060056880A (ko) 2002-10-18 2003-10-17 프로그램 개발 지원장치, 프로그램 실행장치, 컴파일방법및 디버그방법
US10/531,738 US20060074625A1 (en) 2002-10-18 2003-10-17 Program development suport device, program execution device, compile method and debug method
DE10393511T DE10393511T5 (de) 2002-10-18 2003-10-17 Programmentwicklungsunterstützungsvorrichtung, Programmausführungsvorrichtung, Kompilierverfahren und Diagnoseverfahren

Applications Claiming Priority (1)

Application Number Priority Date Filing Date Title
JP2002305010A JP4009517B2 (ja) 2002-10-18 2002-10-18 プログラム開発支援装置およびコンパイル方法

Publications (2)

Publication Number Publication Date
JP2004139458A JP2004139458A (ja) 2004-05-13
JP4009517B2 true JP4009517B2 (ja) 2007-11-14

Family

ID=32105150

Family Applications (1)

Application Number Title Priority Date Filing Date
JP2002305010A Expired - Fee Related JP4009517B2 (ja) 2002-10-18 2002-10-18 プログラム開発支援装置およびコンパイル方法

Country Status (5)

Country Link
US (1) US20060074625A1 (ja)
JP (1) JP4009517B2 (ja)
KR (1) KR20060056880A (ja)
DE (1) DE10393511T5 (ja)
WO (1) WO2004036420A1 (ja)

Families Citing this family (11)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
KR100797695B1 (ko) * 2006-07-13 2008-01-23 삼성전기주식회사 리지드-플렉서블 인쇄회로기판의 제조방법
US8949790B2 (en) 2006-08-30 2015-02-03 International Business Machines Corporation Debugging visual and embedded programs
JP5212864B2 (ja) * 2008-09-24 2013-06-19 ワイアイケー株式会社 デバッグ装置
DE102010053668A1 (de) * 2010-12-07 2012-06-14 Klaus-Dieter Becker Vorrichtung und Verfahren zur Erstellung eines Programms für computergesteuerte Maschinen
US8806453B1 (en) * 2011-09-15 2014-08-12 Lockheed Martin Corporation Integrating disparate programming languages to form a new programming language
US9851950B2 (en) 2011-11-15 2017-12-26 Wolfram Alpha Llc Programming in a precise syntax using natural language
US9959186B2 (en) * 2012-11-19 2018-05-01 Teradyne, Inc. Debugging in a semiconductor device test environment
CN104298590B (zh) * 2013-07-16 2019-05-10 爱德万测试公司 用于按管脚apg的快速语义处理器
JP6917169B2 (ja) * 2017-03-30 2021-08-11 東芝産業機器システム株式会社 コンピュータプログラム及びコンピュータシステム
CN109815140A (zh) * 2019-01-05 2019-05-28 咪付(广西)网络技术有限公司 一种嵌入式c语言实现的自动化测试系统及方法
CN112083979A (zh) * 2019-06-12 2020-12-15 腾讯科技(北京)有限公司 界面展示的方法、程序编译的方法以及相关装置

Family Cites Families (5)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
JP2888242B2 (ja) * 1988-11-29 1999-05-10 富士通株式会社 マイクロプロセッサのプログラム開発システム
JPH07319729A (ja) * 1994-05-20 1995-12-08 Hitachi Ltd ソフトウェアデバッグ方法
JPH11110256A (ja) * 1997-10-06 1999-04-23 Toshiba Corp プログラムデバッグ装置、プログラムデバッグ方法及びその方法を記録したコンピュータ読取り可能な記録媒体
JPH11212807A (ja) * 1998-01-30 1999-08-06 Hitachi Ltd プログラム実行方法
JP2002268896A (ja) * 2001-03-12 2002-09-20 Hitachi Ltd 制御プログラム作成方法とその装置

Also Published As

Publication number Publication date
WO2004036420A1 (ja) 2004-04-29
JP2004139458A (ja) 2004-05-13
US20060074625A1 (en) 2006-04-06
DE10393511T5 (de) 2005-09-08
KR20060056880A (ko) 2006-05-25

Similar Documents

Publication Publication Date Title
EP0785510B1 (en) Program debugging system for debugging a program having a graphical user interface
US6430741B1 (en) System and method for data coverage analysis of a computer program
US6539390B1 (en) Integrated development environment for aspect-oriented programming
US20110191752A1 (en) Method and System for Debugging of Software on Target Devices
US20100199263A1 (en) Test case pattern matching
US20050268195A1 (en) Apparatus and method for improving emulation speed of high-level languages in on-chip emulation systems
JP2000181725A (ja) 実行可能なコ―ドを改変し、追加機能を付与するための方法およびシステム
JP4009517B2 (ja) プログラム開発支援装置およびコンパイル方法
US8533683B2 (en) Stack walking enhancements using sensorpoints
US20080127119A1 (en) Method and system for dynamic debugging of software
US20080127118A1 (en) Method and system for dynamic patching of software
CN111352842A (zh) 基于嵌入式的软件调试方法
CN115757183A (zh) 天熠嵌入式操作系统下一种基于代理的任务级调试方法
JPH0748182B2 (ja) プログラム・エラー検出方法
US20120110383A1 (en) Method and apparatus for off-line analyzing crashed programs
JP2007149089A (ja) 代替関数ライブラリを備えるソフトウェアプログラム
CN113127329A (zh) 脚本调试方法、装置及计算机存储介质
US6611924B1 (en) Reducing code size of debug output statements
US6178547B1 (en) Method and apparatus for generating non-redundant symbolic debug information in computer programs
US5878246A (en) System for linking an interposition module between two modules to provide compatibility as module versions change
CN115809076A (zh) Ecu软件自动化集成方法及系统
US11537308B2 (en) Information processing system, information processing device, storage medium, and information processing method of detecting destruction of data due to file transfer
JP2008140263A (ja) 単体試験支援装置
JPH11110256A (ja) プログラムデバッグ装置、プログラムデバッグ方法及びその方法を記録したコンピュータ読取り可能な記録媒体
JP2001356928A (ja) 試験評価システム

Legal Events

Date Code Title Description
A621 Written request for application examination

Free format text: JAPANESE INTERMEDIATE CODE: A621

Effective date: 20050830

A131 Notification of reasons for refusal

Free format text: JAPANESE INTERMEDIATE CODE: A131

Effective date: 20070109

A521 Written amendment

Free format text: JAPANESE INTERMEDIATE CODE: A523

Effective date: 20070226

A131 Notification of reasons for refusal

Free format text: JAPANESE INTERMEDIATE CODE: A131

Effective date: 20070410

A521 Written amendment

Free format text: JAPANESE INTERMEDIATE CODE: A523

Effective date: 20070529

A02 Decision of refusal

Free format text: JAPANESE INTERMEDIATE CODE: A02

Effective date: 20070626

A521 Written amendment

Free format text: JAPANESE INTERMEDIATE CODE: A523

Effective date: 20070706

A911 Transfer to examiner for re-examination before appeal (zenchi)

Free format text: JAPANESE INTERMEDIATE CODE: A911

Effective date: 20070813

TRDD Decision of grant or rejection written
A01 Written decision to grant a patent or to grant a registration (utility model)

Free format text: JAPANESE INTERMEDIATE CODE: A01

Effective date: 20070828

A61 First payment of annual fees (during grant procedure)

Free format text: JAPANESE INTERMEDIATE CODE: A61

Effective date: 20070903

FPAY Renewal fee payment (event date is renewal date of database)

Free format text: PAYMENT UNTIL: 20100907

Year of fee payment: 3

R150 Certificate of patent or registration of utility model

Free format text: JAPANESE INTERMEDIATE CODE: R150

LAPS Cancellation because of no payment of annual fees