JPH117380A - マルチプラットフォーム対応プログラム編集方式 - Google Patents

マルチプラットフォーム対応プログラム編集方式

Info

Publication number
JPH117380A
JPH117380A JP15830697A JP15830697A JPH117380A JP H117380 A JPH117380 A JP H117380A JP 15830697 A JP15830697 A JP 15830697A JP 15830697 A JP15830697 A JP 15830697A JP H117380 A JPH117380 A JP H117380A
Authority
JP
Japan
Prior art keywords
platform
program code
editing
instruction
statement
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.)
Pending
Application number
JP15830697A
Other languages
English (en)
Inventor
Kiyoshi Okubo
清 大久保
Yoshinori Uchida
義徳 内田
Mikio Ikoma
幹夫 居駒
Kousuke Tanida
耕救 谷田
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.)
Hitachi Ltd
Original Assignee
Hitachi Ltd
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 Hitachi Ltd filed Critical Hitachi Ltd
Priority to JP15830697A priority Critical patent/JPH117380A/ja
Publication of JPH117380A publication Critical patent/JPH117380A/ja
Pending legal-status Critical Current

Links

Landscapes

  • Stored Programmes (AREA)

Abstract

(57)【要約】 【課題】プログラム開発者は対象とするプラットフォー
ムだけを意識してプログラムコードの編集を行える編集
方式を提供する。 【解決手段】プラットフォーム種別と、プラットフォー
ムに依存する命令が記述されているプログラムコードを
入力しプログラムコードを編集する時、編集対象とする
プラットフォームに依存する命令であるか否かをプラッ
トフォーム共通情報を基に判定し、プラットフォームに
依存する命令を検出した場合、編集対象とするプラット
フォームに依存する命令である事を明示する情報をプロ
グラム中のその命令の記述箇所に付与する。

Description

【発明の詳細な説明】
【0001】
【発明の属する技術分野】本発明は、マルチプラットフ
ォームを対象としたプログラムコードの編集方法に関す
る。
【0002】
【従来の技術】近年のソフトウェアは、各計算機メーカ
ーが提供する様々なプラットフォームをターゲットとし
ているが、プラットフォーム毎に機能を実現するための
命令が部分的に異なる事が多く、同じプログラムコード
をそのまま使用する事が不可能であるため、プラットフ
ォーム毎にソフトウェアの開発を行う必要がある。しか
し、各プラットフォーム毎にプログラムコードを作成す
ると、資源の大規模化や保守・管理の複雑化を招く恐れ
があり、一般的には一つのプログラムコード中で、それ
ぞれのプラットフォームに依存する部分だけを切り分け
て管理する事が多い。
【0003】最も多く使われているのは、各プラットフ
ォームで標準的に使用できるプログラミング言語である
C言語でプログラミングを行い、プラットフォームに特
化した部分は#ifdef−#indef文等のコンパ
イル制御命令でプログラムコードの翻訳時に必要なプラ
ットフォームに関する有効な命令部だけを翻訳し、使用
不可能な命令部は翻訳しない様にする方式である。
【0004】具体的には、図5に示すプログラムコード
の場合、(33)と(36)の命令文はプラットフォー
ムに依存しないが、(34)の命令文はWin35AP
Iでのみ有効であり、(35)の命令文はHI−UXで
のみ有効となる。
【0005】この方式では、プログラムコードのどの部
分がプラットフォームに依存するのかを人間が判断し、
#ifdef−#indef文を付与しなければならな
かった。
【0006】また、特開平1−159732号の記載の
ように、アプリケーションプログラムにおけるアルゴリ
ズムの情報を基に条件命令等を生成する方式の発明は既
に存在するが、プラットフォームへの依存を解析し、プ
ログラムコード中に#ifdef−#endif文等の
コンパイル制御を行う命令の挿入・削除を行うものでは
なかった。
【0007】
【発明が解決しようとする課題】従来の方式では、プロ
グラムコードにおけるプラットフォーム依存部をプログ
ラム編集者が理解し、プログラムコード中のプラットフ
ォーム依存部分に明示的にプラットフォームの切り分け
を行う命令文を記述しなければならず、記述漏れによる
不良の作り込み等、編集者の能力に依存する部分が大き
く、生産性や品質にばらつきが有るという問題があっ
た。
【0008】本発明の目的は、プログラムコードにおけ
るプラットフォーム依存部をエディタが認識し、プログ
ラムコード中に対象プラットフォームを切り分ける命令
を自動的に挿入・削除する事により、生産性・品質の向
上を図る事にある。
【0009】
【課題を解決するための手段】上記の目的は、編集対象
とするプラットフォーム種別と、1あるいは複数のプラ
ットフォームに依存する命令が記述されているプログラ
ムコードを入力し、コマンド等の編集操作に従いプログ
ラムコードを編集する時、プログラムコードが編集対象
とするプラットフォームに依存する命令であるか否かを
プラットフォーム共通情報を基に判定し、プログラムコ
ードが編集対象とするプラットフォームに依存する命令
であれば、プログラムコードにそのプラットフォームに
依存する命令である事を明示する情報を付与し、複数の
プラットフォームに依存する手続きを一つのプログラム
コードで管理可能とする事で達成される。
【0010】
【発明の実施の形態】上記目的を達成するための一実施
例を図1のシステム構成図に示す。本システムは、編集
操作指示を入力する入力部(1)と全てのプラットフォ
ームに対し、共通な関数仕様情報を保持するプラットフ
ォーム共通情報(2)と編集対象とするプログラムコー
ド情報(3)を基にプログラムコードの編集を行う主処
理部(4)と編集時のプログラムコードをディスプレイ
等に出力する出力部(5)で構成する。
【0011】主処理部(4)は、編集操作指示を解析す
る編集指示解析部(6)とその指示を実行する編集操作
実行部(7)とプラットフォーム共通情報(2)を基に
プログラムコード中の命令が編集対象とするプラットフ
ォームに依存するか否かを解析するプラットフォーム依
存解析部(8)とプラットフォーム依存解析結果をプロ
グラムコードに反映するプログラムコード管理部(1
0)と編集対象とするプラットフォームに有効なプログ
ラムコードのみを抽出し表示させるデータ表示部(9)
で構成する。
【0012】主処理部(4)で行う処理の詳細を図2、
図3を用いて説明する。
【0013】図2は主処理部(4)で行う一連の処理を
示したフロー図である。
【0014】編集対象とするプラットフォーム種別ある
いは編集指示の入力(11)を行い、その編集指示がど
のような操作であるのかを編集指示解析部(6)で解析
(12)する。もし編集指示解析結果が終了指示(1
3)であった場合は終了処理を行う。この時、プログラ
ムコードの更新指示(14)があれば、編集を反映した
プログラムコードを最新の情報として更新(15)す
る。
【0015】編集指示解析結果が終了指示以外(13)
の場合、その編集指示の操作を編集操作実行部(7)で
実行(16)する。
【0016】編集操作の実行により、プログラムコード
に変更が加わった場合、変更が加わった全ての命令文に
対し、それが編集対象とするプラットフォームに依存す
るか否かをプラットフォーム依存解析部(8)で解析し
た結果を基に、プログラムコードをプログラムコード管
理部(10)で編集(17)する。
【0017】以上の操作を行った結果をデータ表示部
(9)で解析(18)し出力部(5)で出力する。
【0018】図3はプラットフォーム依存に関する解析
・編集処理(17)を詳細に示したフロー図である。
【0019】プラットフォーム依存に関する情報をプラ
ットフォーム共通情報(2)から入力(19)し、プラ
ットフォーム共通情報(2)の終了を検出(20)する
までプラットフォーム依存の判定(21)を繰り返す。
【0020】プラットフォーム依存の判定(21)は、
図4に示すような、どのプラットフォームでも共通な関
数名や関数の返却値、あるいは引数の型等から構成する
関数仕様をプラットフォーム共通情報(2)としてデー
タベース化し、プログラムコード中で呼び出す関数情報
が、プラットフォーム共通情報(2)に登録されていな
い、あるいはプログラムコード中に関数の定義あるいは
宣言が存在しない場合にプラットフォームに依存してい
ると認識する事で実現する。
【0021】変更が加わったプログラムコードが編集対
象とするプラットフォームに依存する関数を呼び出して
いる(21)場合、解析しているプログラムコード中の
関数呼び出し文の直前の命令が編集対象とするプラット
フォームに依存するか否かを直前の命令文が#ifde
f−#endif文でプラットフォームに依存している
旨を定義されているか否かを基に判定(22)する。直
前の命令文が編集対象とするプラットフォームに依存し
ない場合(22)、変更が加わった関数呼び出し文から
以降を編集対象とするプラットフォームに依存すると認
識し、プラットフォーム依存を示す情報をプログラムコ
ード管理部(10)でプログラムコードに#ifdef
文を付与する操作を行う(23)。
【0022】直前の命令文が編集対象とするプラットフ
ォームに依存する場合(22)、#ifdef文の付与
は行わない。
【0023】解析しているプログラムコード中の関数呼
び出し文の直後の命令が編集対象とするプラットフォー
ムに依存するか否かを直後の命令文が#ifdef−#
endif文でプラットフォームに依存している旨を定
義されているか否かを基に判定(24)し、直後の命令
文が編集対象とするプラットフォームに依存しない場合
(24)、変更が加わった関数呼び出し文までを編集対
象とするプラットフォームに依存すると認識し、プログ
ラムコード管理部(10)でプログラムコードに#en
dif文を付与する操作を行う(25)。
【0024】直後の命令文が編集対象とするプラットフ
ォームに依存する場合(24)、#endif文の付与
は行わない。
【0025】変更が加わったプログラムコードが編集対
象とするプラットフォームに依存しない(20)場合、
解析しているプログラムコード中の関数呼び出し文の直
前の命令が編集対象とするプラットフォームに依存する
か否かを直前の命令文が#ifdef−#endif文
でプラットフォームに依存している旨を定義されている
か否かを基に判定(26)し、変更が加わった関数呼び
出し文の直前の命令文が編集対象とするプラットフォー
ムに依存する(26)場合、変更が加わった関数呼び出
し文の直前の命令文までを編集対象とするプラットフォ
ームに依存すると認識し、プログラムコード管理部(1
0)でプログラムコードに#endif文を付与する操
作を行う(28)。
【0026】直前の命令文が編集対象とするプラットフ
ォームに依存しない場合(27)、#endif文の付
与は行わない。
【0027】解析しているプログラムコード中の関数呼
び出し文の直後の命令が編集対象とするプラットフォー
ムに依存するか否かを直後の命令文が#ifdef−#
endif文でプラットフォームに依存している旨を定
義されているか否かを基に判定(28)し、変更が加わ
った関数呼び出し文の直後の命令文が編集対象とするプ
ラットフォームに依存する(28)場合、変更が加わっ
た関数呼び出し文の直後の命令文からを編集対象とする
プラットフォームに依存すると認識し、プログラムコー
ド管理部(10)でプログラムコードに#ifdef文
を付与する操作を行う(29)。
【0028】直後の命令文が編集対象とするプラットフ
ォームに依存しない場合(28)、#ifdef文の付
与は行わない。
【0029】図5を用いて本エディタによるプログラム
コード編集例を説明する。編集前のプログラムコードに
対し、編集対象とするプラットフォーム(この場合はプ
ラットフォーム種別が_TYPE1_SOURCEとす
る)に依存するプログラムコード(30)を追加した場
合、直前の命令文(31)はプラットフォームに依存し
ない(22)為、当該関数呼び出し文からプラットフォ
ームに依存する(23)として、変更が加わった関数呼
び出し文(30)の直前に#ifdef文を付与する。
直後の命令文(32)もプラットフォームに依存しない
(24)ことから、当該関数呼び出し文までをプラット
フォームに依存する(25)として、変更が加わった関
数呼び出し文(30)の直後に#endif文を付与す
る。
【0030】つまり、編集後に示すようなプログラムコ
ードが生成される。
【0031】
【発明の効果】本発明によれば、目的とするプラットフ
ォームの事だけに注目してプログラムコードを編集する
ことが出来、プラットフォームに依存する部分の切り分
けを機械的に行える為、マルチプラットフォームを対象
としたプログラム開発の効率向上を図る事が出来る。す
なわち、マルチプラットフォームを対象としたプログラ
ム開発の作業効率を大幅に向上する事が出来る。
【図面の簡単な説明】
【図1】本発明を構成するシステムの一実施例を示す構
成図である。
【図2】図1の主処理部における処理フローチャートで
ある。
【図3】図2のプラットフォーム依存解析における処理
フローチャートである。
【図4】プラットフォーム共通情報で保持する情報の一
例である。
【図5】本発明によるエディタの実行例である。
【符号の説明】
1…入力部、 2…プラットフォーム共通情報、3…プ
ログラムコード情報、4…主処理部、5…出力部、
6…コマンド解析部、7…コマンド実行部、8…プラッ
トフォーム依存解析部、9…データ表示部、10…プロ
グラムコード管理部。
───────────────────────────────────────────────────── フロントページの続き (72)発明者 谷田 耕救 神奈川県横浜市戸塚区戸塚町5030番地 株 式会社日立製作所ソフトウェア開発本部内

Claims (1)

    【特許請求の範囲】
  1. 【請求項1】プログラムコードを編集するためのエディ
    タにおいて、編集対象とするプラットフォーム種別と、
    1あるいは複数のプラットフォームに依存する命令が記
    述されているプログラムコードを入力し、コマンド等の
    編集操作に従いプログラムコードを編集する時、プログ
    ラムコードが編集対象とするプラットフォームに依存す
    る命令であるか否かを各プラットフォームに共通な命令
    情報を登録したプラットフォーム共通情報を基に判定
    し、そのプログラムコード中で編集対象とするプラット
    フォームに依存する命令を検出した場合、プログラムコ
    ード中のその命令が編集対象とするプラットフォームに
    依存する命令である事を明示する情報をプログラム中の
    その命令の記述箇所に付与し、複数のプラットフォーム
    に依存する手続を一つのプログラムコードで管理可能と
    し、編集後のプログラムコードはどのプラットフォーム
    環境下でも、そのまま翻訳できる形式で生成するマルチ
    プラットフォーム対応プログラム編集方式。
JP15830697A 1997-06-16 1997-06-16 マルチプラットフォーム対応プログラム編集方式 Pending JPH117380A (ja)

Priority Applications (1)

Application Number Priority Date Filing Date Title
JP15830697A JPH117380A (ja) 1997-06-16 1997-06-16 マルチプラットフォーム対応プログラム編集方式

Applications Claiming Priority (1)

Application Number Priority Date Filing Date Title
JP15830697A JPH117380A (ja) 1997-06-16 1997-06-16 マルチプラットフォーム対応プログラム編集方式

Publications (1)

Publication Number Publication Date
JPH117380A true JPH117380A (ja) 1999-01-12

Family

ID=15668754

Family Applications (1)

Application Number Title Priority Date Filing Date
JP15830697A Pending JPH117380A (ja) 1997-06-16 1997-06-16 マルチプラットフォーム対応プログラム編集方式

Country Status (1)

Country Link
JP (1) JPH117380A (ja)

Similar Documents

Publication Publication Date Title
US5555169A (en) Computer system and method for converting a conversational statement to computer command language
US5606697A (en) Compiler system for language processing program
US20040049768A1 (en) Method and program for compiling processing, and computer-readable medium recoding the program thereof
JPH08202545A (ja) ターゲット言語コードを生成するためのオブジェクト指向システム及びその方法
US6961931B2 (en) Dependency specification using target patterns
JPH05257709A (ja) 並列化判別方法およびそれを用いた並列化支援方法
JP3813087B2 (ja) プログラム変換方法、コンピュータ装置及びプログラム
US5815716A (en) Method for supporting multiple call interface conventions for computer programs using directives
JP3196675B2 (ja) 言語処理方式
JPH117380A (ja) マルチプラットフォーム対応プログラム編集方式
JP2007122187A (ja) プログラム・コード生成装置
JPH08194611A (ja) プログラム修正による影響範囲を解析する装置
JP2003050722A (ja) プログラム解析システムとプログラム解析方法
JPH0683597A (ja) オブジェクト指向プログラム開発装置およびオブジェクト指向プログラム開発方法
JP2002082811A (ja) コンパイル方法および記録媒体
JP3019874B2 (ja) プログラム生成/合成装置および方法
JP3018783B2 (ja) コンパイル方式
JP2001125793A (ja) コンパイラシステム及びコンパイル方法並びに記録媒体
JPH11237984A (ja) オブジェクト指向プログラム設計支援装置、方法および記録媒体
JPH0561687A (ja) コンパイラの処理方式
JPH0635714A (ja) プログラムの最適化方式
JPH05204699A (ja) デバッグ時識別子探索方式
JP2002287966A (ja) データ項目辞書生成方法
JPH07105014A (ja) 言語処理システムのシンボル処理方式
JPH06236261A (ja) 手続き型言語プログラム・コンポーネントの分離方式