JPH11249875A - プログラミング支援方法及びその装置 - Google Patents

プログラミング支援方法及びその装置

Info

Publication number
JPH11249875A
JPH11249875A JP10045655A JP4565598A JPH11249875A JP H11249875 A JPH11249875 A JP H11249875A JP 10045655 A JP10045655 A JP 10045655A JP 4565598 A JP4565598 A JP 4565598A JP H11249875 A JPH11249875 A JP H11249875A
Authority
JP
Japan
Prior art keywords
function
file
return value
type
dependency
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
JP10045655A
Other languages
English (en)
Inventor
Toru Aoyama
徹 青山
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.)
NEC IC Microcomputer Systems Co Ltd
Original Assignee
NEC IC Microcomputer Systems Co 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 NEC IC Microcomputer Systems Co Ltd filed Critical NEC IC Microcomputer Systems Co Ltd
Priority to JP10045655A priority Critical patent/JPH11249875A/ja
Priority to US09/256,916 priority patent/US20020049698A1/en
Priority to EP99103690A priority patent/EP0939366A3/en
Priority to CN99103489A priority patent/CN1232212A/zh
Publication of JPH11249875A publication Critical patent/JPH11249875A/ja
Pending legal-status Critical Current

Links

Classifications

    • GPHYSICS
    • G06COMPUTING OR CALCULATING; COUNTING
    • G06FELECTRIC DIGITAL DATA PROCESSING
    • G06F8/00Arrangements for software engineering
    • G06F8/30Creation or generation of source code

Landscapes

  • Engineering & Computer Science (AREA)
  • Software Systems (AREA)
  • General Engineering & Computer Science (AREA)
  • Theoretical Computer Science (AREA)
  • Physics & Mathematics (AREA)
  • General Physics & Mathematics (AREA)
  • Stored Programmes (AREA)

Abstract

(57)【要約】 【課題】プログラム作成者の負担が少なく、プログラム
作成効率が高いプログラミング支援方法及びその装置を
提供する。 【解決手段】依存関係を表す依存関係ファイル30にし
たがい、全てのプログラムファイル群10内の関数登録
部の関数の登録用の記述からプロトタイプ宣言形式の記
述に変換して外部プロトタイプ宣言定義用ファイル20
を構築するファイル発生手段40を有する。

Description

【発明の詳細な説明】
【0001】
【発明の属する技術分野】本発明はプログラミング支援
方法及びその装置に関し、特にエディタを用いてC言語
におけるプロトタイプ宣言を作成する場合におけるプロ
グラミング支援方法及びその装置にに関する。
【0002】
【従来の技術】従来から、コンピュータプログラムを作
成する際には、複数のプログラム作成者が分担して作業
を進めるために、またプログラムの保守性とプログラム
の作業効率を高めるために、作成すべきプログラムを複
数のモジュールに分割して作成している。
【0003】プログラムを複数のモジュールに分割する
ことにより、関数定義部と関数呼び出し部とが異なるモ
ジュール内に存在するという場合がある。同一モジュー
ル内に関数定義部と関数呼び出し部があれば、コンパイ
ラ等のプログラム翻訳装置は関数呼び出し部を関数定義
部から直接翻訳することが可能となる。また、関数呼び
出し部と関数定義部との構文を比較することにより、関
数の戻り値の型や、引数の数、引数の型の不整合も容易
に発見することが可能である。
【0004】しかし、関数定義部と関数呼び出し部が異
なるモジュールに別れている場合、関数呼び出し部から
直接関数定義部を探し出すことは多くの手順を必要と
し、現実的ではない。
【0005】近年、広く用いられているプログラミング
言語の一つC言語では、複数のモジュールに別れている
関数呼び出し部と関数定義部をお互い結び付ける手段と
して、プロトタイプ宣言を採用している。
【0006】C言語で使われるプロトタイプ宣言は、関
数定義部の関数定義行と同一記述の行を、関数登録部の
含まれるモジュールの先頭と、関数呼び出し部が含まれ
るモジュールの先頭に挿入する。ここで、関数定義行と
は、関数の型、関数名、複数の引数の型と引数名を記述
している記述行であり、同一記述の行とは、関数呼び出
し部と同一関数の型と関数名、引数は同一並びで同数の
記述行を表す。
【0007】また、一般的に、プロトタイプ宣言行を集
めた、プロトタイプ宣言定義用ファイルを作成し、この
外部プロトタイプ宣言定義用ファイルをプリプロセッサ
制御命令”include”に従って、コンパイラ等の
プログラム翻訳装置によって取り込まれるように、各モ
ジュールの先頭で宣言する。つまり、プロトタイプ宣言
を記述することにより関数定義部と関数呼び出し部が異
なるモジュールにあっても、コンパイラ等のプログラム
翻訳装置は翻訳することが可能となる。
【0008】特開平7−200309号公報(文献1)
記載の従来のプログラミング支援方法におけるプログラ
ムファイルの一例として、プロトタイプ宣言行を含む外
部プロトタイプ宣言定義用ファイルの内容の一例をプロ
グラムリストで示す図7を参照すると、この図に示す外
部プロトタイプ宣言定義用ファイル20は、プロトタイ
プ宣言行21を有する。
【0009】また、関数登録部と関数呼び出し部の内容
の一例をプログラムリストで示す図8を参照すると、図
8(A)に示すプログラムファイル80は、プリプロセ
ッサ制御命令81と、関数定義部82とを含み、図8
(B)に示すプログラムファイル83は、プリプロセッ
サ制御命令84と、関数呼び出し部85とを含む。
【0010】外部プロトタイプ宣言定義用ファイル20
は、プリプロセッサ制御命令81、84によりコンパイ
ラ等のプログラム翻訳装置によってプログラムファイル
80,83にそれぞれ取り込まれ、インライン展開(読
み込まれる)される。プロトタイプ宣言行21が、プロ
グラムファイル80,81にそれぞれ読み込まれる(イ
ンライン展開される)ため、コンパイラ等のプログラム
翻訳装置は複数のプログラムファイルに分散している関
数を翻訳することが可能となる。この場合、プロトタイ
プ宣言行21と、関数定義部82と関数呼び出し部85
の関数の戻り値の型、関数の引数の数、関数の引数の型
がそれぞれ一致している必要がある。
【0011】前述のように、C言語におけるプロトタイ
プ宣言は、登録した関数の型(戻り値の型)と当該関数
が使用する引数の型とを明示的に宣言し、プログラム翻
訳時の最適化を行う。分割された複数のプログラムファ
イル間で登録した関数を利用したり、登録した関数の型
(戻り値の型)と当該関数が使用する引数の型につい
て、利用する(関数を呼び出す)側との整合性を評価す
る。
【0012】つまり、プロトタイプ宣言の性格上、関数
登録部の関数の戻り値の型、引数の数と型、関数呼び出
し部の関数の戻り値の型、引数の数と型、プロトタイプ
宣言の関数の戻り値の型、引数の数と型が同一である必
要性がある。
【0013】第1の問題点は、関数登録部の関数の戻り
値の型、引数の数と型、関数呼び出し部の関数の戻り値
の型、引数の数と型、プロトタイプ宣言の関数の戻り値
の型、引数の数と型のいずれかを変更した場合は、必ず
プログラマが手動で編集(変更)する必要があるという
ことである。
【0014】一般的に関数登録部と関数呼び出し部につ
いては、関数仕様変更の観点や新規関数追加の観点から
考えると一方の修正を忘れたり、登録を忘れるというこ
とは考えづらい。しかし、プロトタイプ宣言に関して
は、特に、C言語のプログラミング経験の浅いプログラ
マは、関数登録部と関数呼び出し部の修正/登録は行っ
ても、修正/登録と直接関係ないため、プロトタイプ宣
言の修正や登録を忘れやすく、プログラミング作成効率
が悪い。
【0015】第2の問題点は、第1の問題点で述べたよ
うに関数登録部と関数呼び出し部については、関数仕様
変更の観点や新規関数追加の観点から考えると一方の修
正を忘れたり、登録を忘れるということは考えづらい。
しかし、関数呼び出し部で関数の戻り値を格納するよう
な変数が存在する場合に関数の戻り値を変更した場合に
は、関数の戻り値を格納する変数の型も合わせて変更す
る必要がある。これらの型を同一にする作業についても
プログラマ自身が修正する必要がある。しかもミスを犯
したことは、コンパイラ等のプログラム翻訳装置が警告
を出力するまでわからない。
【0016】
【発明が解決しようとする課題】上述した従来のプログ
ラミング支援方法及びその装置は、プロトタイプ宣言の
性格上、関数登録部の関数の戻り値の型、引数の数と
型、関数呼び出し部の関数の戻り値の型、引数の数と
型、プロトタイプ宣言の関数の戻り値の型、引数の数と
型が同一である必要性があるが、上記各型のいずれかを
変更した場合は、必ずプログラマが手動で編集(変更)
する必要があり、作業効率が低いという欠点があった。
【0017】また、関数呼び出し部で関数の戻り値を格
納するような変数が存在する場合に関数の戻り値を変更
した場合には、関数の戻り値を格納する変数の型も合わ
せて変更する必要があり、これらの型を同一にする作業
についてもプログラマ自身が修正する必要があり、ミス
を犯しやすいという欠点があった。
【0018】さらに、プログラマが、ミスを犯したこと
は、コンパイラ等のプログラム翻訳装置が警告を出力す
るまでわからないという欠点があった。
【0019】本発明の目的は、関数登録部からプロトタ
イプ宣言を自動生成することが可能で、すなわちプロト
タイプ宣言と関数登録部の関数の型(戻り値の型)と当
該関数が使用する引数の型との整合性を常に保つことが
可能であり、また関数の戻り値と関数の戻り値を格納す
る変数の型の整合性を事前に評価することが可能で、プ
ログラム作成者の負担が少なく、プログラム作成効率が
高いプログラミング支援方法及びその装置を提供するこ
とにある。
【0020】
【課題を解決するための手段】本発明のプログラミング
支援方法は、分割された複数のソースプログラムファイ
ルの依存関係を表す依存関係ファイルを読み込み、前記
複数のソースプログラムファイルを1つの連続するファ
イルと同等に扱うことができるプログラミング支援方法
において、前記依存関係ファイルにしたがい、全ての前
記複数のソースプログラムファイル内の関数登録部の関
数の登録用の記述からプロトタイプ宣言形式の記述に変
換して外部プロトタイプ宣言定義用ファイルを構築する
ファイル発生ステップを有することを特徴とするもので
ある。
【0021】本発明のプログラミング支援装置は、分割
された複数のソースプログラムファイルの依存関係を表
す依存関係ファイルを読み込み、分割された複数のプロ
グラムファイルを1つの連続するファイルと同等に扱う
ことができるようプログラミング支援を行うプログラミ
ング支援装置において、複数に分割したソースプログラ
ムファイルから成るプログラムファイル群と、外部プロ
トタイプ宣言形式を定義するための定義用ファイルと、
前記複数のソースプログラムファイルの依存関係を表す
依存関係ファイルと、前記依存関係ファイルにしたがい
前記プログラムファイル群から全ての関数登録部の関数
の登録用の記述を抽出し前記プロトタイプ宣言形式の記
述に変換して前記定義用ファイルを自動発生するファイ
ル発生手段と、前記関数の型及び前記プロトタイプ宣言
行と同名の関数を前記依存関係ファイルにしたがって関
数の呼び出し部を検出し前記関数が代入する関数戻り値
を格納する変数の型である関数戻り値格納変数型を検索
する検索手段と、前記関数戻り値の型及び前記関数戻り
値格納変数型を評価する型評価手段とを備えて構成され
ている。
【0022】
【発明の実施の形態】次に、本発明の実施の形態をブロ
ックで示す図1を参照すると、この図に示す本実施の形
態のプログラミング支援方法を実行するプログラミング
支援装置は、複数に分割したプログラムファイル群10
と、外部プロトタイプ宣言を定義するための定義用ファ
イル20と、依存関係を表す依存関係ファイル30と、
プログラムファイル群10から定義用ファイル20を自
動発生するファイル発生手段40と、関数の型、関数戻
り値格納変数型を検索する検索手段50と、関数戻り
値、関数戻り値格納変数を評価する型評価手段60と、
プログラマに結果を通知する表示手段70とを備える。
【0023】次に、図1を参照して本実施の形態の動作
について説明すると、まず、依存関係を表す依存関係フ
ァイル30は複数に分割したプログラムファイル群10
を最終的には結合して1つのプログラムとしてまとめら
れることを示し、ファイル発生手段40によって定義用
ファイル20を生成する。
【0024】ファイル発生手段40は、読み込んだプロ
グラムファイルの依存関係を表す依存関係ファイル30
にしたがい、プログラムファイル群10から全ての関数
登録部の関数を登録するための記述を洗い出し、プロト
タイプ宣言形式の記述21に変換して定義用ファイル2
0を自動発生する。つまり、プログラムファイル群10
からファイル発生手段40により、自動的に定義用ファ
イル20を生成する。
【0025】検索手段50は、定義用ファイル20内で
戻り値を持つ(void型以外の)関数名を洗い出し、
依存関係ファイル30にしたがい、プログラムファイル
群10内から同名の関数を検索する。
【0026】型評価手段60は、検索手段50が検索し
た結果から関数の戻り値と関数戻り値格納変数との型を
評価(比較)し、異なる場合には表示手段70でプログ
ラマに結果を通知する。
【0027】次に、本実施の形態の外部プロトタイプ宣
言定義用の定義ファイル20を自動発生するファイル発
生手段40を含む第1の実施例をブロックで示す図2を
参照して、定義ファイル20の自動生成の動作について
詳細に説明すると、プログラムファイル11は、「in
t」型と「char *」型の引数を持つ「void」
型の戻り値の関数「FUNC11」と、「int」型の
引数を持つ「void」型の戻り値の関数「FUNC1
2」が登録されているプログラムファイルである。
【0028】同様にプログラムファイル13は、「in
t」型と「char *」型の引数を持つ「long」
型の戻り値の関数「FUNC21」と、「int」型と
「int」型の引数を持つ「int」型の戻り値の関数
「FUNC22」が登録されているプログラムファイル
である。
【0029】同様にプログラムファイル15は、「sh
ort」型の引数を持つ「void」型の戻り値の関数
「FUNC31」と、「int *」型と「char」
型の引数を持つ「char」型の戻り値の関数「FUN
C32」が登録されているプログラムファイルである。
【0030】プログラムファイルの依存関係ファイル3
0は、プログラムファイル11、プログラムファイル1
3、及びプログラムファイル15が最終的には結合さ
れ、1つの全体的なプログラムとしてまとめられること
を示し、定義用ファイル20を自動生成させるファイル
発生手段40に読み込まれる。
【0031】ファイル発生手段40は、読み込んだプロ
グラムファイルの依存関係を表す依存関係ファイル30
にしたがい、プログラムファイル11、プログラムファ
イル13、及びプログラムファイル15から、全ての関
数登録部の関数を登録するための記述を洗い出し、プロ
トタイプ宣言の記述21に変換して定義用ファイル20
を自動生成する。
【0032】定義用ファイル20は、複数のプログラム
ファイル11、13、15中のプリプロセッサ制御行に
よる命令12、14、16「#include ”pr
otype.h”」にしたがって取り込まれる。
【0033】前述の第1の実施例にしたがえば、プログ
ラムファイル11、13、15中の関数登録部の関数を
登録するための記述が変更された場合であっても、定義
用ファイル20は常にプログラムファイル11、13、
15中の関数登録部の関数を登録するための記述から自
動生成される。つまり、プログラムファイル11、1
3、15中の関数登録部の関数を登録するための記述と
定義用ファイル20は、常に整合がとれた状態を保つこ
とが可能である。
【0034】図3は、図2に示すプログラムファイル1
1、13、15から、ファイル発生手段40で自動生成
された依存関係ファイル30の例を示す。
【0035】図3(A),(B)にそれぞれ示す依存関
係ファイル31、32は、それぞれ複数のファイルの記
述からなり、記述されたファイルを組み合わせることに
より目的の実行ファイルを生成するためのファイルであ
る。
【0036】例えば、依存関係ファイル31は、mai
n.c,sub1.c,sub2.cを組み合わせta
rget.exeを作ることが記述されている。ここで
示すプログラムファイルの依存関係を表すファイルは一
例であり、勿論他の記述の依存関係ファイルでも同様で
ある。
【0037】定義用ファイル20を自動生成するための
ファイル発生手段40の処理をフローチャートで示す図
4を参照して、ファイル発生手段40の定義用ファイル
20の自動生成動作について説明すると、まず、ステッ
プS1で動作を開始し、ステップS2でプログラムファ
イルの依存関係ファイル30にしたがい、依存関係にあ
る全てのプログラムファイル11、13、15を1ファ
イルづつ読み込み可能な状態とする。
【0038】次に、ステップS3は、依存関係ファイル
30の最初に記述しているファイルを開き、ステップS
4で、そのファイルの1行目を読み込む。ステップS5
で当該行の内容がC言語の関数行かそれ以外かを調査
し、関数行であればステップS6で関数登録行を全て抽
出し、抽出した行をステップS7でプロトタイプ宣言の
記述21に変換し、ステップS8で定義用ファイル20
に新しい行を生成してプロトタイプ宣言の記述21に変
換した結果を書き込む。
【0039】ステップS5で関数行以外の場合には、ス
テップS6,S7,S8は実行しない。
【0040】次に、ステップS9では、次の行内容を読
み込み、ステップS10で、ファイルの終わり(EO
F:End of File)を判断する。もしEOF
でなければ、ステップS5に戻り既出の処理を繰り返
す。またEOFであったならば、ステップS11で、依
存関係ファイル30にしたがい次のファイルを読み込む
ための準備を行い、ステップS12で次に読み込むべき
ファイルが存在するかどうかを判断する。
【0041】もし読み込むべきファイルが存在すれば、
ステップS4に戻り、次のファイルの1行目を読み込
み、既出の処理を繰り返す。また読み込むべくファイル
がない場合には、ステップS13で処理を終了する。
【0042】このようなファイル発生手段は、ワークス
テーションやパーソナルコンピュータ装置上で動作する
ソフトウェアとして実現できる。
【0043】以上のように関数登録部から自動的にプロ
トタイプ宣言を生成し、常に関数登録部とプロトタイプ
宣言とで、関数の戻り値、関数の引数の数、関数の引数
の型の整合が取れ、プログラム作成者の負担が小さく、
開発効率の高いプログラミング支援方法を提供すること
ができる。
【0044】次に、本実施の形態のプログラム支援装置
における関数の戻り値と関数戻り値を格納する変数との
型の評価を行う型評価手段60を用いて依存関係を表す
依存関係ファイル30の処理を行う第2の実施例をブロ
ックで示す図5を参照して、依存関係ファイル30の処
理に関する動作について詳細に説明すると、依存関係フ
ァイル30は複数に分割したプログラムファイル群10
が最終的には結合され、1つのプログラムとしてまとめ
られることを示す。定義用ファイル20は、前述のよう
にプログラムファイル群10から抽出したプロトタイプ
宣言形式の記述21を含む外部プロトタイプ宣言定義用
ファイルである。検索手段50は、外部プロトタイプ宣
言定義用ファイル20に記述している関数の内、戻り値
を持つものを順次抽出する。
【0045】抽出した定義用ファイル20内の関数名と
同名の関数を、依存関係ファイル30にしたがい、プロ
グラムファイル群10内から抽出する。抽出した関数呼
び出し部で、当該関数が戻り値を格納する変数に、関数
の戻り値を代入しているかどうかを調査する。また、代
入する戻り値を格納する変数の型も調査する。
【0046】型評価手段60は、検索手段50の調査結
果を受け、異なる場合には、表示手段70で異なる旨の
情報をプログラマに示す。
【0047】定義用ファイル20を自動生成するための
検索手段50及び型評価手段60を用いる依存関係ファ
イル30の処理をフローチャートで示す図6を参照し
て、依存関係ファイル30の処理動作について説明する
と、まず、ステップS20で処理を開始し、ステップS
21で定義用ファイル20の1行目を読み込み、ステッ
プS22でファイルの最後(EOF)を評価する。EO
Fでない場合には、ステップS23で戻り値があるかを
評価する。もしEOFの場合には、ステップS23から
ステップS32をスキップする。ステップS23で戻り
値がない場合には、ステップS21に戻る。
【0048】ステップS24は、ステップS23で戻り
値がある場合、依存関係ファイル30にしたがい、プロ
グラムファイル群10の中を読み込む。ステップS25
はステップS23の戻り値のある関数名を同名の関数を
ステップS24で開いたファイル内から検索する。
【0049】ステップS26で同名の関数であるかを判
断し、ステップS27で関数戻り値を格納する変数に、
戻り値を代入しているかどうかを判断する。ステップS
28,S29は、ステップS26,S27で結果が真の
場合には、関数の戻り値と、戻り値を格納する変数の型
が同じであるかどうかを判断する。異なる場合には、ス
テップS30で異なる旨の表示をプログラマに対して表
示する。またステップS26,S27のいずれかが偽の
場合には、ステップS28,S29,S30はスキップ
する。
【0050】ステップS31,S32は同一プログラム
ファイル内の次の関数呼び出し部を検索し、EOFまで
ステップS26からステップS30を繰り返す。ステッ
プS32でEOFを検出すると、ステップS33で、依
存関係ファイル30にしたがい、ステップS34で指定
された次のプログラムファイルがあるかどうかを判断
し、ファイルがある場合には、ステップS25からステ
ップS32までを繰り返す。
【0051】ステップS34で指定された次のプログラ
ムファイルがないことを検出すると、ステップS35で
定義用ファイル20の次の行を読み込み、ステップS2
4からステップS35までを繰り返す。
【0052】ステップS36で、定義用ファイル20の
次の行がないことを検出すると、ステップS37で処理
を終了る。
【0053】このような関数の戻り値と関数戻り値を格
納する編集との型評価は、ワークステーションやパーソ
ナルコンピュータ装置上で動作するソフトウェアとして
実現される。
【0054】以上のように、関数呼び出し部の関数の戻
り値と、戻り値を格納する変数との型の検査をコンパイ
ラ等のプログラム翻訳装置で翻訳する前に行い、プログ
ラマに警告を表示することにより、開発効率の高いプロ
グラミング支援方法を提供することができる。
【0055】また、本実施の形態では、C言語によって
プログラムを作成する場合について説明しているが、プ
ロトタイプ宣言もしくは同様の手段で関数の翻訳を行う
他の高級言語のコンパイラ等のプログラム翻訳装置であ
っても同様の効果を奏することは勿論である。
【0056】
【発明の効果】以上説明したように、本発明のプログラ
ミング支援方法及びその装置は、依存関係ファイルにし
たがい、全ての複数のソースプログラムファイル内の関
数登録部の関数の登録用の記述からプロトタイプ宣言形
式の記述に変換して外部プロトタイプ宣言定義用ファイ
ルを構築するファイル発生ステップを有するので、C言
語において必須のプロトタイプ宣言を複数のソースファ
イルに存在する関数定義部からファイル発生手段によっ
て直接生成することと、また関数定義部と関数呼び出し
部とで、戻り値や引数の不整合が起きる可能性のある関
数呼び出し部を洗い出し、該当する関数呼び出し部をプ
ログラマに通知することとから、プロトタイプ宣言、関
数登録部、関数呼び出し部の不整合によって引き起こさ
れるプログラム翻訳時エラーを未然に防ぎ、プログラム
作成者の負担を軽減し、型の不一致などによるプログラ
ム中のバグなどの減少を図り、プログラムの信頼性を向
上させることができるという効果がある。
【図面の簡単な説明】
【図1】本発明のプログラミング支援装置の一実施の形
態を示すブロック図である。
【図2】本実施の形態のプログラミング支援装置の外部
プロトタイプ宣言定義用ファイルを自動生成する第1の
実施例を示すブロック図である。
【図3】図1の依存関係ファイルの内容の一例を示すプ
ログラムリストである。
【図4】本実施の形態の第1の実施例の動作を示すフロ
ーチャートである。
【図5】本実施の形態の依存関係ファイルの処理に関連
する第2の実施例を示すブロック図である。
【図6】本実施の形態の第2の実施例の動作を示すフロ
ーチャートである。
【図7】従来のプログラミング支援方法における外部プ
ロトタイプ宣言定義用ファイルの内容の一例を示すプロ
グラムリストである。
【図8】関数登録部と関数呼び出し部の内容の一例を示
すプログラムリストである。
【符号の説明】
10 プログラムファイル群 11,13,15,80,83 プログラムファイル 12,14,16,81,84 プリプロセッサ制御
命令 20 定義用ファイル 21 記述 30,31,32 依存関係ファイル 40 ファイル発生手段 50 検索手段 60 型評価手段 70 表示手段 82 関数定義部 85 関数呼び出し部

Claims (6)

    【特許請求の範囲】
  1. 【請求項1】 分割された複数のソースプログラムファ
    イルの依存関係を表す依存関係ファイルを読み込み、前
    記複数のソースプログラムファイルを1つの連続するフ
    ァイルと同等に扱うことができるプログラミング支援方
    法において、 前記依存関係ファイルにしたがい、全ての前記複数のソ
    ースプログラムファイル内の関数登録部の関数の登録用
    の記述からプロトタイプ宣言形式の記述に変換して外部
    プロトタイプ宣言定義用ファイルを構築するファイル発
    生ステップを有することを特徴とするプログラミング支
    援方法。
  2. 【請求項2】 前記外部プロトタイプ宣言定義用ファイ
    ル内の関数登録部に該当するプロトタイプ宣言行を順次
    抽出し、 関数の型及び前記プロトタイプ宣言行と同名の関数を前
    記依存関係ファイルにしたがって関数の呼び出し部を検
    出し前記関数が代入する関数戻り値を格納する変数の型
    である関数戻り値格納変数型とを抽出する関数型及び関
    数戻り値格納変数型抽出ステップを有することを特徴と
    する請求項1記載のプログラミング支援方法。
  3. 【請求項3】 前記ファイル発生ステップが、前記依存
    関係ファイルにしたがい前記複数のソースプログラムフ
    ァイルの各々を解釈するステップと、 前記複数のソースプログラムファイルの内の最初のファ
    イルを開くステップと、 前記最初のファイルの1行の記述を読み込むステップ
    と、 前記1行の記述が関数であるか否かを判断する関数判断
    ステップと、 前記関数断ステップの判断結果が関数である場合前記フ
    ァイル内の関数行を抽出する関数行抽出ステップと、 抽出した前記関数行をプロトタイプ宣言形式に変更する
    ステップと、 前記プロトタイプ宣言形式に変更した前記関数をプロト
    タイプ宣言定義ファイルに登録するステップとを有する
    ことを特徴とする請求項1記載のプログラミング支援方
    法。
  4. 【請求項4】 前記依存関係ファイルの処理が、前記外
    部プロトタイプ宣言定義用ファイルの1行の記述を読む
    ステップと、 前記1行が最終行であるか否かを判断する最終行判断ス
    テップと、 前記最終行判断結果が否である場合戻り値があるか否か
    を判断し前記戻り値があると判断した場合前記依存関係
    ファイルを読み込むステップと、 前記戻り値の関数呼び出し部を検索するステップと、 関数呼び出しを行うか否かを判断する関数呼び出し判断
    ステップと、 前記関数呼び出し判断結果が呼び出しを行うと判断した
    場合戻り値を格納する引数があるか否かを判断する引数
    判断ステップと、 前記引数判断結果が有りの場合引数の型を評価する引数
    型評価ステップと、 前記引数型評価結果が戻り値と同じか否かを判断し同一
    であるならば警告を表示するステップとを有することを
    特徴とする請求項1記載のプログラミング支援方法。
  5. 【請求項5】 前記関数の型と前記関数戻り値格納変数
    型との抽出結果から前記関数の戻り値と前記関数戻り値
    格納変数型を評価する関数戻り値関数戻り値格納変数型
    評価ステップを有することを特徴とする請求項2記載の
    プログラミング支援方法。
  6. 【請求項6】 分割された複数のソースプログラムファ
    イルの依存関係を表す依存関係ファイルを読み込み、分
    割された複数のプログラムファイルを1つの連続するフ
    ァイルと同等に扱うことができるようプログラミング支
    援を行うプログラミング支援装置において、 複数に分割したソースプログラムファイルから成るプロ
    グラムファイル群と、 外部プロトタイプ宣言形式を定義するための定義用ファ
    イルと、 前記複数のソースプログラムファイルの依存関係を表す
    依存関係ファイルと、 前記依存関係ファイルにしたがい前記プログラムファイ
    ル群から全ての関数登録部の関数の登録用の記述を抽出
    し前記プロトタイプ宣言形式の記述に変換して前記定義
    用ファイルを自動発生するファイル発生手段と、 前記関数の型及び前記プロトタイプ宣言行と同名の関数
    を前記依存関係ファイルにしたがって関数の呼び出し部
    を検出し前記関数が代入する関数戻り値を格納する変数
    の型である関数戻り値格納変数型を検索する検索手段
    と、 前記関数戻り値の型及び前記関数戻り値格納変数型を評
    価する型評価手段とを備えることを特徴とするプログラ
    ミング支援装置。
JP10045655A 1998-02-26 1998-02-26 プログラミング支援方法及びその装置 Pending JPH11249875A (ja)

Priority Applications (4)

Application Number Priority Date Filing Date Title
JP10045655A JPH11249875A (ja) 1998-02-26 1998-02-26 プログラミング支援方法及びその装置
US09/256,916 US20020049698A1 (en) 1998-02-26 1999-02-24 Programming supporting method and programming support device
EP99103690A EP0939366A3 (en) 1998-02-26 1999-02-25 Programming supporting method and programming support device
CN99103489A CN1232212A (zh) 1998-02-26 1999-02-26 程序设计支持方法以及程序设计支持设备

Applications Claiming Priority (1)

Application Number Priority Date Filing Date Title
JP10045655A JPH11249875A (ja) 1998-02-26 1998-02-26 プログラミング支援方法及びその装置

Publications (1)

Publication Number Publication Date
JPH11249875A true JPH11249875A (ja) 1999-09-17

Family

ID=12725405

Family Applications (1)

Application Number Title Priority Date Filing Date
JP10045655A Pending JPH11249875A (ja) 1998-02-26 1998-02-26 プログラミング支援方法及びその装置

Country Status (4)

Country Link
US (1) US20020049698A1 (ja)
EP (1) EP0939366A3 (ja)
JP (1) JPH11249875A (ja)
CN (1) CN1232212A (ja)

Families Citing this family (16)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
US8799856B2 (en) * 2007-06-12 2014-08-05 International Business Machines Corporation System and method for automatically declaring variables
CA2806768C (en) * 2010-07-29 2018-07-03 Irdeto Canada Corporation System and method for efficiently deploying massively diverse program instances to resist differential attacks
US20130297755A1 (en) * 2010-11-23 2013-11-07 Nokia Siemens Networks Oy Network element configuration management
CN105446788B (zh) * 2014-08-20 2019-01-11 联想(北京)有限公司 一种信息处理方法及电子设备
NL2017282B1 (en) 2016-08-03 2018-02-14 Douwe Egberts Bv System for preparing a beverage
NL2017283B1 (en) 2016-08-03 2018-02-14 Douwe Egberts Bv System and apparatus for preparing a beverage
NL2017285B1 (en) 2016-08-03 2018-02-14 Douwe Egberts Bv System, apparatus, method, capsule and kit of capsules for preparing a beverage
NL2017280B1 (en) 2016-08-03 2018-02-14 Douwe Egberts Bv System for preparing a beverage
NL2017277B1 (en) 2016-08-03 2018-02-14 Douwe Egberts Bv Apparatus and method for preparing a beverage and system comprising the apparatus and an exchangeable capsule
NL2017281B1 (en) 2016-08-03 2018-02-14 Douwe Egberts Bv System for preparing a beverage
NL2017284B1 (en) 2016-08-03 2018-02-14 Douwe Egberts Bv System and method for preparing a beverage field and background
NL2019216B1 (en) 2016-08-03 2018-05-04 Douwe Egberts Bv System for preparing a quantity of beverage suitable for consumption
NL2017278B1 (en) 2016-08-03 2018-02-14 Douwe Egberts Bv System, apparatus, method, capsule and kit of capsules for preparing a beverage
NL2017279B1 (en) 2016-08-03 2018-02-14 Douwe Egberts Bv System for preparing a beverage
JP6674048B2 (ja) * 2016-12-19 2020-04-01 日本電信電話株式会社 判定装置、判定方法及び判定プログラム
NL2022190B1 (en) 2018-12-12 2020-07-03 Douwe Egberts Bv Air purge groove

Also Published As

Publication number Publication date
EP0939366A2 (en) 1999-09-01
CN1232212A (zh) 1999-10-20
US20020049698A1 (en) 2002-04-25
EP0939366A3 (en) 2002-09-18

Similar Documents

Publication Publication Date Title
US6694509B1 (en) Automated regression testing of workstation software
US5170465A (en) Incremental-scanning compiler for source-code development system
US5313387A (en) Re-execution of edit-compile-run cycles for changed lines of source code, with storage of associated data in buffers
US5325531A (en) Compiler using clean lines table with entries indicating unchanged text lines for incrementally compiling only changed source text lines
US5182806A (en) Incremental compiler for source-code development system
US5287444A (en) Message processing system
US5193191A (en) Incremental linking in source-code development system
US7526753B2 (en) System and method for creating, managing and using code segments
US5201050A (en) Line-skip compiler for source-code development system
US7761788B1 (en) System and method for capturing document style by example
US6901579B1 (en) Generation of source code from classes and maintaining the comment that indicates the role of the class in the generated source code
JPH11249875A (ja) プログラミング支援方法及びその装置
JPH08234975A (ja) プログラム生成装置および方法
JPS6375835A (ja) 目的コ−ド、プログラム・リスト及び設計文書を生成する装置
US5301327A (en) Virtual memory management for source-code development system
JP2018156133A (ja) コンパイラプログラム、情報処理装置およびコンパイル方法
JPH11306046A (ja) テストケース生成システム及びテストケース生成方法
CN118312153A (zh) 编译器后端代码生成方法、装置、存储介质
US20050188323A1 (en) Template creation apparatus and creation method
AU638999B2 (en) Incremental compiler for source-code development system
Loureiro Ecma-sl-a platform for specifying and running the ecmascript standard
CN109947711A (zh) 一种对ios项目开发过程中的多语言文件自动化管理方法
Fraternali et al. Almost rerere: An approach for automating conflict resolution from similar resolved conflicts
JP2002014847A (ja) プログラム検査装置、プログラム検査方法及び検査を行うためのプログラムを格納した記録媒体
Ceccato et al. Data model reverse engineering in migrating a legacy system to Java

Legal Events

Date Code Title Description
A02 Decision of refusal

Free format text: JAPANESE INTERMEDIATE CODE: A02

Effective date: 20020507