JP3665392B2 - 情報処理装置 - Google Patents
情報処理装置 Download PDFInfo
- Publication number
- JP3665392B2 JP3665392B2 JP22978295A JP22978295A JP3665392B2 JP 3665392 B2 JP3665392 B2 JP 3665392B2 JP 22978295 A JP22978295 A JP 22978295A JP 22978295 A JP22978295 A JP 22978295A JP 3665392 B2 JP3665392 B2 JP 3665392B2
- Authority
- JP
- Japan
- Prior art keywords
- line number
- source program
- line
- user
- unit
- 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
Links
Images
Landscapes
- Devices For Executing Special Programs (AREA)
Description
【発明の属する技術分野】
本発明は,原始プログラムを実行形式プログラムに翻訳する情報処理装置に関する。
【0002】
プログラムを開発する場合,編集,翻訳,実行を統一した環境のもとで行うプログラム開発ツールを使用する。このようなツールを使用してプログラムを開発するとき,ユーザは,原始プログラムに行番号が付与されているか,あるいは付与されていないかを宣言し,ツールはその宣言に従って翻訳を行う。
【0003】
【従来の技術】
図5は従来の技術である。
図5において,
100は入力装置であって,原始プログラム100’を入力するものである。
【0004】
100’は原始プログラムである。
101は情報処理装置である。
102は出力装置であって,ディスプレイ,プリンタ等である。
【0005】
111はコンパイラである。
113は構文解析部であって,原始プログラム100’の構文解析をしてリストを作成するものである。
【0006】
114は構文解析の処理部である。
115は内部行番号作成部であって,内部行番号を自動生成するものである。内部行番号は,例えば,初期値1,増分値1でプログラムの先頭行から順次付与するものである。
【0007】
116はリスト作成部であって,翻訳されたプログラムのリスト,エラーメッセージ等のリストを作成するものである。
117は実行形式プログラム作成部であって,翻訳された各行のプログラム
をリンクして実行形式のプログラムとするものである。
【0008】
122は行番号情報保持部であって,原始プログラムに行番号があるかないかを表すユーザにより指定された行番号情報を保持するものである。
125は行番号情報判定部であって,ユーザにより設定された行番号情報が行番号有りを指定するものであるか(行番号情報フラグがオン),あるいは行番号なし(行番号フラグがオフ)を指定するものであるかを判定するものである。
【0009】
126はリスト出力部であって,コンパイラ111で作成されたリスト(実行形式プログラム,エラーメッセージ等のリスト)を外部装置に出力するものである。
【0010】
128は制御部であって,構文解析部113,実行形式プログラム作成部117,リスト出力部126を制御するものである。
図6により図5の構成の動作を説明する。
【0011】
図6は従来のコンパイラのリスト作成の動作のフローチャートである。
S1 ユーザは入力装置100により原始プログラムに行番号を付与したか,あるいは付与していないかの行番号情報を指定する。その情報は行番号情報保持部122に保持される。
【0012】
S2 入力された原始プログラムを保持する(図5において,入力された原始プログラムの保持部は図示を省略されている)。
S3 行番号情報判定部125は行番号情報保持部122の保持する行番号情報を判定する。行番号有り(行番号情報フラグがオン)であればS4に進み,行番号無し(行番号情報フラグがオフ)であればS10に進む。
【0013】
S4,S5 構文解析の処理部114は原始プログラム100’を1行ずつ読み,行番号が付与されているか,あるいは付与されていないかを行毎に判定する。行番号が付与されていればS6に進み,付与されていなければS7に進む。
【0014】
S6 構文解析の処理部114は付与されている行番号を使用する。
S7 構文解析の処理部114は,行番号を付与されていない行に対して行番号0000を付与する。
【0015】
S8 行番号0000の行にエラーメッセージを付与する。
S9,全ての行を読んだか判定し,読んでいなければS4以降の処理を繰り返し,読んでいればS13に進む。
【0016】
S10,S11 S3において,行番号情報判定部125が行番号無しであると判定した場合には,内部行番号作成部115は原始プログラムを1行ずつ読み,行番号を自動設定する(初期値1,増分値1)。
【0017】
S12 全ての行を読んだか判定し,読んでいなければS10以降の処理を繰り返し,読んでいればS13に進む。
S13,S14 リスト作成部116はリストを作成し,リスト出力部126は出力装置102に実行形式プログラム,エラーメッセージ等のリストを出力する。
【0018】
【発明が解決しようとする課題】
従来は,原始プログラムに行番号が付いているとしてユーザが宣言した場合において,行番号を付与されていない行がある時は,その行に行番号0000を付与し,行番号0000とエラーメッセージを表示するようにしていた。そのため,そのメッセージが実際の原始プログラムのどの行に対するエラーメッセージであるのか分かり難かった。
【0019】
また,従来はユーザの宣言は絶対的なものであり,行番号情報を行番号があるものとしてユーザが宣言した場合には,翻訳に際してコンパイラ自身の判断でその宣言を変更し内部行番号を付与することはしなかった。しかし,ユーザは行番号情報の設定の内容を意識して行うとは限らず,ほとんどのユーザは標準設定されている指定をそのまま使用しているだけである。そのため,宣言の内容に係わらずコンパイラの判断で内部行番号を自動設定して翻訳をした方が良い場合にも,ユーザの指定した宣言で翻訳処理がなされていた。
【0020】
本発明は,コンパイラが柔軟に原始プログラムの内容を判断し,ユーザの宣言と異なる方法で処理した方が良い場合にはコンパイラはユーザの宣言と異なる方法で翻訳する情報処理装置を提供することを目的とする。
【0021】
【課題を解決するための手段】
本発明は,入力された原始プログラムを保持する原始プログラム保持部と,原始プログラムの構文解析をして実行形式プログラムに翻訳するコンパイラを有する情報処理装置において,コンパイラは原始プログラムに行番号を持たない行が含まれているとき,行番号が付与されていないことを自動的に検出し,原始プログラムが行番号を持たないものとして内部行番号を自動的に付与し,内部行番号に従って翻訳するようにした。
【0022】
図1は本発明の基本構成を示す図である。
図1において,
1は入力装置であって,キーボード,磁気ディスク装置等である。
【0023】
2は情報処理装置である。
3は出力装置であって,ディスプレイ,プリンタ,磁気ディスク装置等である。
【0024】
11は原始プログラム(ソースプログラム)である。
21は原始プログラム保持部であって,入力された原始プログラムを保持するものである。保持された原始プログラムには,ユーザの付与した行番号と行番号作成部26が自動的に付与する内部行番号を持つものである。原始プログラム保持部21において,内部行番号は行番号作成部26の作成した内部行番号であり,ユーザ付与行番号はユーザの付与した行番号である。ユーザ付与行番号において行番号0002と0003の間の1行に行番号の欠落がある。内部行番号はその欠落した行に対して行番号0003を自動設定し,その次の行に0004を自動設定している。
【0025】
22はコンパイラであって,原始プログラム11を実行形式プログラム(図示せず)に翻訳するものである。
23は行番号情報保持部であって,原始プログラム11が行番号を付与されているものであるか,あるいは行番号を付与されていないものであるかを表す行番号情報(行番号情報フラグ)を保持するものである。例えば,行番号有りの時,行番号情報フラグはオン,行番号無しの時は行番号情報フラグをオフとする。
【0026】
24は行番号識別フラグ保持部であって,行番号識別フラグ作成部27の作成した行番号識別フラグを保持するものである。行番号識別フラグは,例えば,行番号有りはオフ,行番号無しはオンである。
【0027】
25は構文解析部であって,原始プログラム11に行番号が付与されている場合にはその行番号に従って構文解析をし,行番号情報判定部29の判定が行番号無し,あるいは,行番号情報判定部29の判定が行番号有りとするものであっても行番号の付け落とし等で行番号がない時には自動的に内部行番号を付与し,内部行番号に従って構文解析をするものである。
【0028】
26は行番号作成部であって,原始プログラム11に自動的に内部行番号を作成するものである。
27は行番号識別フラグ作成部であって,行番号情報が行番号有りである場合に原始プログラム11の行番号の有無を判定するものである。行番号識別フラグは,例えば行番号情報が行番号有り(オン)の場合にオフに初期設定され,行番号が欠落している場合にオンとするものである。
【0029】
28はリスト作成部であって,リスト作成(実行形式プログラム,エラーメッセージ等)をするものである。
29は行番号情報判定部であって,行番号情報保持部23に保持されている行番号情報の内容(オンもしくはオフ)を判定するものである。
【0030】
30はリスト出力部であって,作成リストを出力装置3に出力するために保持するものである。
図1の本発明の基本構成の動作を説明する。以下において,例えば,行番号情報の行番号無しは行番号情報フラグをオフとし,行番号情報の行番号有りは行番号情報フラグをオンとするものとする。また,行毎の行番号の有無を表す行番号識別フラグは行番号有りはオフ,行番号無しはオンとする。
【0031】
ユーザの作成した原始プログラム11が情報処理装置2に入力され,原始プログラム保持部21に保持される。ユーザにより行番号情報が入力され,行番号情報保持部23に保持される。行番号情報が行番号有りの場合に行番号情報フラグはオン,無しの場合にオフとするものとする。
【0032】
構文解析部25は,行番号情報判定部29の判定結果に従って,行番号情報が行番号無し(オフ)であれば原始プログラム11に内部行番号を作成し,原始プログラム保持部21に設定する。行番号情報保持部23の行番号情報がオン(行番号有り)であって,全ての行に行番号が付与されている場合にはユーザの作成した行番号に従って翻訳するが,原始プログラム11に行番号の欠落等で行番号が付与されていないことを検出した場合には,原始プログラム11に対して自動的に内部行番号(例えば,初期値1,増分値1)を付与し,原始プログラム保持部21の原始プログラムに保持する。この時,原始プログラム保持部21にはユーザの設定した行番号と内部行番号の両方が設定される。そして,行番号識別フラグ作成部27は行番号識別フラグを作成し,行番号識別フラグ保持部24に保持する。例えば,行番号の欠落等で行番号が付与されていない時は行番号識別フラグ保持部24の行番号識別フラグをオンにする。また,構文解析部25は行番号情報フラグがオフ(行番号無し)の時は内部行番号により翻訳を行う。あるいは,行番号情報フラグがオン(行番号有り)で行番号識別フラグがオフ(行番号が全ての行に付与されている)の時にはユーザの付与した行番号により翻訳を行う。
【0033】
リスト出力部30は上記のような翻訳処理で作成されたプログラム,エラーメッセージ等のリストを保持し,出力装置3に出力する。
なお,上記において,行番号情報保持部23の行番号情報が行番号有り(オン)の場合には,自動的に内部行番号を生成し,原始プログラム保持部21にユーザ作成の行番号と内部行番号の両方を自動的に設定するようにしても良い。そして,行番号情報フラグがオンであっても行番号識別フラグがオンの場合には,構文解析,リスト作成において内部行番号を使用し,行番号情報フラグがオンで行番号識別フラグがオフの場合にユーザ設定の行番号を使用する点は上記と同様である。
【0034】
本発明によれば,原始プログラムの行番号の欠落を自動的に判定し,行番号の付け忘れ等で行番号が付与されていない場合,あるいは行番号を付与しなかったが行番号情報保持部23には行番号有りを設定したままで処理しているような場合でも,自動的に内部行番号を付与し,構文解析をするので,エラーと判定されるケースを少なくすることができ,エラーメッセージが出されてもその行番号の位置を容易に判断することができる。そのため,本発明によればプログラムの開発作業の能率を大幅に向上させることができる。
【0035】
【発明の実施の形態】
図2は本発明のシステム構成の実施例である。
図2において,
51は入力装置であって,キーボード等である。
【0036】
52は磁気ディスク装置であって,原始プログラム61を保持するものである。
53は情報処理装置である。
【0037】
55は磁気装置である。
56は表示装置である。
57は印刷装置である。
【0038】
61は原始プログラムであって,磁気ディスク装置52に格納されているものである。
62は行番号情報であって,入力装置51によりユーザが指定して入力するものである。
【0039】
63は行番号情報保持部であって,行番号情報を保持するものである。行番号情報は行番号有り(オン)が標準設定されている。
64は共通情報保持部であって,制御部68,構文解析部70等から共通にアクセスすることのできるデータを保持する領域である。
【0040】
65は行番号識別フラグ保持部である。
66は原始プログラム保持部である。原始プログラム保持部66において,内部行番号は行番号作成部72の作成した内部行番号であり,ユーザ付与行番号はユーザの付与した行番号である。ユーザ付与行番号において行番号0002と0003の間の1行に行番号の欠落がある。内部行番号はその欠落した行に対して行番号0003を自動設定し,その次の行に0004を自動設定している。
【0041】
67はコンパイラである。
69は行番号情報判定部である。
70は構文解析部である。
【0042】
71は構文解析処理部であって,原始プログラム61の構文解析を行うものである。
72は行番号作成部である。
【0043】
73は行番号識別フラグ作成部である。
74はリスト作成部である。
75はリスト出力部である。
【0044】
76は実行形式プログラム作成部であって,各行の翻訳されたプログラムをリンクして実行形式プログラムを作成するものである。
図3,図4を参照して,図2のシステム構成の実施例を説明する。
【0045】
図3,図4は本発明のコンパイラのフローチャートである。
S1,S2 行番号情報判定部69は行番号情報保持部63を参照し,行番号情報の行番号情報フラグのオン(行番号有り)もしくはオフ(行番号無し)を判定する。行番号情報が行番号有りであればS3に進み,行番号無しであればS22に進む。
【0046】
S3 行番号情報が行番号有りであるので,制御部68は行番号識別フラグ保持部65の行番号識別フラグをオフに初期設定する。
S4 構文解析部70は原始プログラム61を1行読む。
【0047】
S5 構文解析部70は読み込んだ行の行番号の有無を判定する。行番号がなければS6で行番号識別フラグをオンとする。行番号があればS7に進む。
S6 行番号識別フラグをオンにする。
【0048】
S7 ユーザの付与した行番号と行番号作成部72の作成した内部行番号を原始プログラム保持部66に設定する。
S8 全ての行を読んだか判定する。全ての行を読んでいなければS4に戻って次の行を読み,S5以降の処理を繰り返す。全て読んでいればS9に進む。
【0049】
S9,S10,S11,S12 構文解析部70は行番号情報が行番号なし(行番号情報フラグがオフ)かあるいは行番号識別フラグがオンであるか判定し,行番号情報フラグがオフもしくは行番号識別フラグがオンであれば,内部行番号を使用する。また,行番号情報フラグがオンであって,行番号識別フラグがオフであればユーザの付与した行番号を使用する。
【0050】
S22,S23 S2でユーザの指定した行番号情報が行番号無し(行番号情報フラグがオフ)であれば,構文解析部70は原始プログラムを1行読み込み,行番号作成部72は内部行番号を付与する。
【0051】
S24 全ての行を読んだか判定する。全ての行を読んでいなければS22に戻って次の行を読み,S23の処理を繰り返す。全て読んでいれば,S9に進み,S9以降の処理をする。
【0052】
【発明の効果】
本発明によれば,原始プログラムの行番号の欠落等を自動的に判定し,ユーザが行番号を付け落とした等で行番号が付与されていない場合,あるいは行番号を付与しなかったが行番号情報設定部には行番号有りを設定して処理したような場合でも,コンパイラが自動的に内部行番号を付与して構文解析を行う。そのため,行番号の欠落のためにエラー箇所が分からないということがなくなり,プログラム開発の能率が大幅に向上する。
【図面の簡単な説明】
【図1】本発明の基本構成を示す図である。
【図2】本発明のシステム構成の実施例を示す図である。
【図3】本発明のコンパイラのフローチャートを示す図である。
【図4】本発明のコンパイラのフローチャートを示す図である。
【図5】従来の技術を示す図である。
【図6】従来のコンパイラのリスト作成の動作のフローチャートを示す図である。
【符号の説明】
1:入力装置
2:情報処理装置
3:出力装置
11:原始プログラム
21:原始プログラム保持部
22:コンパイラ
24:行番号識別フラグ保持部
25:構文解析部
26:行番号作成部
27:行番号識別フラグ作成部
28:リスト作成部
29:行番号情報判定部
30:リスト出力部
Claims (3)
- 入力された原始プログラムを保持する原始プログラム保持手段と、
前記原始プログラム保持手段に保持した原始プログラムに行番号を持たない行がある場合に、該原始プログラムに所定の増分値をとる内部行番号を付与する行番号作成手段と、 前記行番号作成手段が内部行番号を付与した原始プログラムを構文解析して実行形式プログラムに翻訳する翻訳手段と
を備えることを特徴とする情報処理装置。 - 前記原始プログラムのユーザ行番号有無の指定の別を識別する情報を記憶する行番号情報フラグ記憶手段と、
前記原始プログラム保持手段に保持した原始プログラムを読み込み、ユーザ行番号を持たない行があるか検索する検索手段と、
前記検索手段で検索した結果に基づき、前記原始プログラムのユーザ行番号を持たない行の有無を識別する情報を記憶する行番号識別フラグ記憶手段と、
をさらに備え、
前記行番号作成手段は、前記行番号情報フラグ記憶手段にユーザ行番号無の指定が記憶されている場合、または、ユーザ行番号有の指定が記憶されていて、且つ、前記行番号識別フラグ記憶手段にユーザ行番号を持たない行有が記憶されている場合に、前記原始プログラム保持手段に保持した原始プログラムに所定の増分値をとる内部行番号を付与する
ことを特徴とする請求項1記載の情報処理装置。 - 前記翻訳手段は、前記行番号情報フラグ記憶手段にユーザ行番号有の指定が記憶されていて、且つ、前記行番号識別フラグ記憶手段にユーザ行番号を持たない行無が記憶されている場合には、前記原始プログラム保持手段に保持した原始プログラムを構文解析して実行形式プログラムに翻訳する
ことを特徴とする請求項2に記載の情報処理装置。
Priority Applications (1)
Application Number | Priority Date | Filing Date | Title |
---|---|---|---|
JP22978295A JP3665392B2 (ja) | 1995-09-07 | 1995-09-07 | 情報処理装置 |
Applications Claiming Priority (1)
Application Number | Priority Date | Filing Date | Title |
---|---|---|---|
JP22978295A JP3665392B2 (ja) | 1995-09-07 | 1995-09-07 | 情報処理装置 |
Publications (2)
Publication Number | Publication Date |
---|---|
JPH0973398A JPH0973398A (ja) | 1997-03-18 |
JP3665392B2 true JP3665392B2 (ja) | 2005-06-29 |
Family
ID=16897596
Family Applications (1)
Application Number | Title | Priority Date | Filing Date |
---|---|---|---|
JP22978295A Expired - Fee Related JP3665392B2 (ja) | 1995-09-07 | 1995-09-07 | 情報処理装置 |
Country Status (1)
Country | Link |
---|---|
JP (1) | JP3665392B2 (ja) |
-
1995
- 1995-09-07 JP JP22978295A patent/JP3665392B2/ja not_active Expired - Fee Related
Also Published As
Publication number | Publication date |
---|---|
JPH0973398A (ja) | 1997-03-18 |
Similar Documents
Publication | Publication Date | Title |
---|---|---|
US5946701A (en) | Document processing apparatus | |
US8209670B2 (en) | Program conversion program, program conversion apparatus and program conversion method | |
JP2002292945A (ja) | オープンな仕様環境におけるデータの位置を決定するための方法及び装置 | |
JP3665392B2 (ja) | 情報処理装置 | |
JPH11353164A (ja) | ソースプログラム生成システムおよびソースプログラム生成方法ならびにチャート生成システムおよびチャート生成方法 | |
AU776882B2 (en) | Generating optimized computer data field conversion routines | |
JPH07239788A (ja) | 不要変数型宣言チェック機能付きコンパイラ | |
JPH08249193A (ja) | プログラムの言語仕様範囲の検査方式 | |
JP2000132405A (ja) | インライン展開処理装置及び方法 | |
JPH07101383B2 (ja) | 図式プログラムエディタエラ−表示方式 | |
JP2990701B2 (ja) | ファイル編集方式 | |
JP2024008473A (ja) | プログラム変換支援装置、プログラム変換支援方法、およびプログラム | |
JPH05197561A (ja) | コンパイル方式 | |
JP3179076B2 (ja) | 流れ図からの原始プログラム自動生成方式 | |
JP2002041325A (ja) | シミュレーションシステム、シミュレーション方法及び記録媒体 | |
JPH1011299A (ja) | 遅延評価機能付きコンパイル装置、コンパイル方法、およびコンパイルプログラムを記憶する媒体 | |
JPH06259280A (ja) | エラー処理方法 | |
JPH04373020A (ja) | 関数対応表作成装置 | |
JPH11110202A (ja) | ジョブ制御言語文自動作成方法 | |
JPH0535455A (ja) | プログラムのスクロール表示方式 | |
JPH09305388A (ja) | リエンジニアリング支援ツール | |
JPH01320538A (ja) | 言語処理プログラムの実行方式 | |
JPH1031585A (ja) | 仕様書入力によるプログラミング自動生成方式 | |
JPH0449421A (ja) | ファイル編集方式 | |
JPH07141170A (ja) | テスト支援リスト生成方法とその装置 |
Legal Events
Date | Code | Title | Description |
---|---|---|---|
A977 | Report on retrieval |
Free format text: JAPANESE INTERMEDIATE CODE: A971007 Effective date: 20041202 |
|
A131 | Notification of reasons for refusal |
Free format text: JAPANESE INTERMEDIATE CODE: A131 Effective date: 20041221 |
|
A521 | Written amendment |
Free format text: JAPANESE INTERMEDIATE CODE: A523 Effective date: 20050215 |
|
RD02 | Notification of acceptance of power of attorney |
Free format text: JAPANESE INTERMEDIATE CODE: A7422 Effective date: 20050215 |
|
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: 20050329 |
|
A61 | First payment of annual fees (during grant procedure) |
Free format text: JAPANESE INTERMEDIATE CODE: A61 Effective date: 20050401 |
|
R150 | Certificate of patent or registration of utility model |
Free format text: JAPANESE INTERMEDIATE CODE: R150 |
|
FPAY | Renewal fee payment (event date is renewal date of database) |
Free format text: PAYMENT UNTIL: 20080408 Year of fee payment: 3 |
|
FPAY | Renewal fee payment (event date is renewal date of database) |
Free format text: PAYMENT UNTIL: 20090408 Year of fee payment: 4 |
|
FPAY | Renewal fee payment (event date is renewal date of database) |
Free format text: PAYMENT UNTIL: 20090408 Year of fee payment: 4 |
|
FPAY | Renewal fee payment (event date is renewal date of database) |
Free format text: PAYMENT UNTIL: 20100408 Year of fee payment: 5 |
|
FPAY | Renewal fee payment (event date is renewal date of database) |
Free format text: PAYMENT UNTIL: 20110408 Year of fee payment: 6 |
|
FPAY | Renewal fee payment (event date is renewal date of database) |
Free format text: PAYMENT UNTIL: 20110408 Year of fee payment: 6 |
|
LAPS | Cancellation because of no payment of annual fees |