JPH0133855B2 - - Google Patents
Info
- Publication number
- JPH0133855B2 JPH0133855B2 JP4517081A JP4517081A JPH0133855B2 JP H0133855 B2 JPH0133855 B2 JP H0133855B2 JP 4517081 A JP4517081 A JP 4517081A JP 4517081 A JP4517081 A JP 4517081A JP H0133855 B2 JPH0133855 B2 JP H0133855B2
- Authority
- JP
- Japan
- Prior art keywords
- program
- jcl
- output
- name
- source
- 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
Links
- 238000000034 method Methods 0.000 claims description 4
- 238000010586 diagram Methods 0.000 description 5
- 238000012937 correction Methods 0.000 description 3
- 238000007792 addition Methods 0.000 description 2
- 230000000694 effects Effects 0.000 description 1
- 238000003672 processing method Methods 0.000 description 1
- 238000004080 punching Methods 0.000 description 1
Classifications
-
- G—PHYSICS
- G06—COMPUTING; CALCULATING OR COUNTING
- G06F—ELECTRIC DIGITAL DATA PROCESSING
- G06F8/00—Arrangements for software engineering
- G06F8/40—Transformation of program code
- G06F8/41—Compilation
Landscapes
- Engineering & Computer Science (AREA)
- General Engineering & Computer Science (AREA)
- Theoretical Computer Science (AREA)
- Software Systems (AREA)
- Physics & Mathematics (AREA)
- General Physics & Mathematics (AREA)
- Devices For Executing Special Programs (AREA)
Description
【発明の詳細な説明】
本発明はデータ処理装置の処理プログラムを、
高級言語で書かれたソースから機械語で書かれた
オブジエクトに変換するコンパイラに関し、オブ
ジエクトの実行時に必要とされる入出力環境設定
情報(いわゆるジヨブ制御文)を自動的ないし半
自動的に作成する手段を提供することを目的とす
る。
高級言語で書かれたソースから機械語で書かれた
オブジエクトに変換するコンパイラに関し、オブ
ジエクトの実行時に必要とされる入出力環境設定
情報(いわゆるジヨブ制御文)を自動的ないし半
自動的に作成する手段を提供することを目的とす
る。
一般にあるプログラムを作つて実行させる場合
以下のような手順を踏まねばならない。
以下のような手順を踏まねばならない。
先ずCOBOL、FORTRAN等の高級言語で
プログラムをコーデイングする。
プログラムをコーデイングする。
それを80欄カードにパンチする(この状態の
プログラムをソースプログラムと称す)。
プログラムをソースプログラムと称す)。
コンパイラ装置にソースを通して機械語に翻
訳し、磁気テープ、デイスク、ドラム等に出力
する(この状態のプログラムをオブジエクトプ
ログラムと称す)。
訳し、磁気テープ、デイスク、ドラム等に出力
する(この状態のプログラムをオブジエクトプ
ログラムと称す)。
そのプログラムで使用される入出力デバイス
や必要な記憶領域の大きさなどの資源環境を設
定したジヨブ制御文(JCL)を作成する(例え
ばパンチカードにパンチする)。
や必要な記憶領域の大きさなどの資源環境を設
定したジヨブ制御文(JCL)を作成する(例え
ばパンチカードにパンチする)。
JCL及び上記オブジエクトを所定のデバイス
にかけて起動をかけ、実行する。
にかけて起動をかけ、実行する。
このような手順のうちのJCLの作成は、従来
利用者がすべて手作業で作成していたので、手間
を要するばかりでなくミスを犯す危険もあつた。
しかし、第1図に示す如く、あるシステムで割り
当て可能な資源Aのうち、ソースプログラムの記
述から理論的に割り当て可能と判断できる資源B
が存在する。即ちA−Bは理論的に割り当て不可
能であり、その資源を割り当てることは誤り、も
しくは無駄である。またBの範囲内で実際に割り
当てられる資源Cは、割り当てに利用者の自由度
が残されているため、ソースプログラムのみから
一義的に求めることは不可能であるが、標準的に
予測し得る資源Dが存在することも事実である。
もしCとDの誤差がある程度以下であれば、Dを
自動予測して提供することで利用者の負担及び誤
りの発生を減少することができる。そして、この
ような予測処理はソースをコンパイルする時点で
並行して行なうのが最も効率が良い。
利用者がすべて手作業で作成していたので、手間
を要するばかりでなくミスを犯す危険もあつた。
しかし、第1図に示す如く、あるシステムで割り
当て可能な資源Aのうち、ソースプログラムの記
述から理論的に割り当て可能と判断できる資源B
が存在する。即ちA−Bは理論的に割り当て不可
能であり、その資源を割り当てることは誤り、も
しくは無駄である。またBの範囲内で実際に割り
当てられる資源Cは、割り当てに利用者の自由度
が残されているため、ソースプログラムのみから
一義的に求めることは不可能であるが、標準的に
予測し得る資源Dが存在することも事実である。
もしCとDの誤差がある程度以下であれば、Dを
自動予測して提供することで利用者の負担及び誤
りの発生を減少することができる。そして、この
ような予測処理はソースをコンパイルする時点で
並行して行なうのが最も効率が良い。
第2図は本発明の一実施例ブロツク図であり、
1はソースプログラム、2はコンパイル手段、3
は環境出力手段で第1図におけるBの範囲を出力
するもの、4はオブジエクトプログラムの実行に
必要とされる入出力環境設定情報を読取り、この
読取つた情報を埋込んだジヨブ制御文(JCL)の
ひな型を仮JCLとして生成する手段、5はコンパ
イラの出力するオブジエクトプログラム、6はひ
な型のJCLの修正手段、7は修正されたJCL出力
手段、8はオブジエクトプログラムの実行手段で
ある。
1はソースプログラム、2はコンパイル手段、3
は環境出力手段で第1図におけるBの範囲を出力
するもの、4はオブジエクトプログラムの実行に
必要とされる入出力環境設定情報を読取り、この
読取つた情報を埋込んだジヨブ制御文(JCL)の
ひな型を仮JCLとして生成する手段、5はコンパ
イラの出力するオブジエクトプログラム、6はひ
な型のJCLの修正手段、7は修正されたJCL出力
手段、8はオブジエクトプログラムの実行手段で
ある。
コンパイル手段2は一般にはそれ自体一つのデ
ータ処理装置であり、コンパイラと称する翻訳用
プログラムにて動作する。本発明では従来公知の
コンパイラに、仮JCLと環境リストを出力するた
めのプログラムを追加することで実現できる。
ータ処理装置であり、コンパイラと称する翻訳用
プログラムにて動作する。本発明では従来公知の
コンパイラに、仮JCLと環境リストを出力するた
めのプログラムを追加することで実現できる。
第3図にCOBOL言語によるソースプログラム
の例、第4図にはそれに基づいて出力された仮
JCLの例を示す。第3図において、第1行(1)は次
行(2)がこのプログラムの識別名の定議をする文で
あることを示している。(2)はこのプログラムの識
別名が「TAPESORT」という名であることを定
義している。(3)はそれ以下の行が環境設定をする
文であることを示している。(4)はそれ以下の行が
入出力に関する定義をする文であることを示して
いる。(5)はそれ以下の行がフアイル(論理的な意
味の)の定義をする文であることを示している。
の例、第4図にはそれに基づいて出力された仮
JCLの例を示す。第3図において、第1行(1)は次
行(2)がこのプログラムの識別名の定議をする文で
あることを示している。(2)はこのプログラムの識
別名が「TAPESORT」という名であることを定
義している。(3)はそれ以下の行が環境設定をする
文であることを示している。(4)はそれ以下の行が
入出力に関する定義をする文であることを示して
いる。(5)はそれ以下の行がフアイル(論理的な意
味の)の定義をする文であることを示している。
(6)、(7)、(8)は“SRT”という名のフアイルと
してDA−Sという種類のデバイス(例えば磁気
デイスク)を用い、その中に“SORTWK01〜
03”の3つのフアイルを作ることを指定してい
る。“SRT”や“SORTWK”等の名前はプログ
ラマが自由につけることができる。DA−Sとい
うデバイス種名はその運用システムで定められた
命名である。(9)、(10)は同様に“LP”という名の
フアイルとして、UR−Sという種類のデバイス
(例えばラインプリンタ)を用い、そのフアイル
名を“LPFILE”とすることを示している。(11)、
(12)も同様に“IN”としてTP−Sという種類のデ
バイス(例えば磁気テープ)を用い、フアイル名
を“INFILE”とすることを示している。(13)
はそれ以下の行が処理手順の記述であることを示
している。(14)、(15)は“INFILE”なるフア
イルを入力用に、また“LPFILE”なるフアイル
を出力用にそれぞれ使用可能にせよ、という意味
の命令ステツプである。(16)以下には具体的な
ソート手順が記述されるべきものであるが、ここ
では省略してある。(17)は一連のジヨブステツ
プの終了を示す命令ステツプである。このような
ソースプログラムをコンパイルする際に、(6)〜(12)
を見れば使用される入出力デバイスは磁気デイス
ク、ラインプリンタ、磁気テープであることが判
明する。ただし、それらが複数名づつ存在すると
きに、そのうちのどの1台のデバイスを使用する
かは利用者が任意に決めることであり、一義的に
は定まらない。また(14)、(15)を見ることによ
り磁気テープ(INFILE)は入力用に、ラインプ
リンタ(LPFILE)は出力用に使用されるもので
あることが判明する。第2図に示した仮JCLの生
成手段4は、第3図に示したソースプログラムの
各文で定義したプログラム名や、入出力装置のフ
アイル名の文字列を読取り、このプログラムを実
行させるための情報を埋込んでJCLを第4図の様
な仮JCLとして生成する。
してDA−Sという種類のデバイス(例えば磁気
デイスク)を用い、その中に“SORTWK01〜
03”の3つのフアイルを作ることを指定してい
る。“SRT”や“SORTWK”等の名前はプログ
ラマが自由につけることができる。DA−Sとい
うデバイス種名はその運用システムで定められた
命名である。(9)、(10)は同様に“LP”という名の
フアイルとして、UR−Sという種類のデバイス
(例えばラインプリンタ)を用い、そのフアイル
名を“LPFILE”とすることを示している。(11)、
(12)も同様に“IN”としてTP−Sという種類のデ
バイス(例えば磁気テープ)を用い、フアイル名
を“INFILE”とすることを示している。(13)
はそれ以下の行が処理手順の記述であることを示
している。(14)、(15)は“INFILE”なるフア
イルを入力用に、また“LPFILE”なるフアイル
を出力用にそれぞれ使用可能にせよ、という意味
の命令ステツプである。(16)以下には具体的な
ソート手順が記述されるべきものであるが、ここ
では省略してある。(17)は一連のジヨブステツ
プの終了を示す命令ステツプである。このような
ソースプログラムをコンパイルする際に、(6)〜(12)
を見れば使用される入出力デバイスは磁気デイス
ク、ラインプリンタ、磁気テープであることが判
明する。ただし、それらが複数名づつ存在すると
きに、そのうちのどの1台のデバイスを使用する
かは利用者が任意に決めることであり、一義的に
は定まらない。また(14)、(15)を見ることによ
り磁気テープ(INFILE)は入力用に、ラインプ
リンタ(LPFILE)は出力用に使用されるもので
あることが判明する。第2図に示した仮JCLの生
成手段4は、第3図に示したソースプログラムの
各文で定義したプログラム名や、入出力装置のフ
アイル名の文字列を読取り、このプログラムを実
行させるための情報を埋込んでJCLを第4図の様
な仮JCLとして生成する。
第4図において、(21)はプログラム名
“TAPESORT”を実行せよという命令文であり、
その際必要な主記憶容量がnkワードであること
を宣言する。プログラム名はソースの(2)を見れば
判明し、記憶容量はソースの(13)以降を解析す
れば見当がつく。(22)は“SORTWK01”とい
う名のフアイル(論理的な)に対して、物理的デ
バイスユニツトSYSDAを割当てることを指示す
る制御文である。SYSDAはこのシステムにおい
て特定の磁気デイスク装置を示す略号である。ま
たSPACEはそのデバイス上で使用する記憶領域
の大きさであり、標準的な値を仮りに入れてお
く。(23)、(24)も同様である。(25)は
“LPFILE”という名の論理的なフアイルに対し
て“SYSOUT”を割り当てよ、という制御文で
あり、具体的なデバイス名は指定していない。
“SYSOUT”が指示されると、オブジエクト実行
時のOS(オペレーテイングシステム)の一部であ
るジヨブ管理プログラムが、そのときのシステム
として定義されている出力デバイスに自動的に割
り当ててくれる。なお、ここでSYSOUTを指示
する代りに直接デバイス名を陽に指定してもよい
ことはいうまでもない。(26)は“INFILE”と
いう名の論理フアイルに対して、物理デバイス
TAPEを割り当てることを指示する制御文であ
り、ここでTAPEは特定の磁気テープ装置を意味
する略号である。またDISP=とあるのは、その
テープの属性及び処理方法を指示する部分で、
OLDはそのテープに既にデータが書かれている
ものであることを意味し、KEEPとはその書かれ
た内容を破壊せずに保存せよということを意味す
る。また(27)はそのテープ中に複数あるフアイ
ルのうち目的のフアイルを指定する部分で、
LABEL=はフアイルラベルの種類を指定する部
分、VOL=SR=はボリウム名を指定する部分、
DSN=はフアイル名を指定する部分である。ボ
リウム名及びフアイル名はソース中には書かれて
いないので本発明においても推定不可であり、そ
の場合??を表示して利用者に補足することを促
す。
“TAPESORT”を実行せよという命令文であり、
その際必要な主記憶容量がnkワードであること
を宣言する。プログラム名はソースの(2)を見れば
判明し、記憶容量はソースの(13)以降を解析す
れば見当がつく。(22)は“SORTWK01”とい
う名のフアイル(論理的な)に対して、物理的デ
バイスユニツトSYSDAを割当てることを指示す
る制御文である。SYSDAはこのシステムにおい
て特定の磁気デイスク装置を示す略号である。ま
たSPACEはそのデバイス上で使用する記憶領域
の大きさであり、標準的な値を仮りに入れてお
く。(23)、(24)も同様である。(25)は
“LPFILE”という名の論理的なフアイルに対し
て“SYSOUT”を割り当てよ、という制御文で
あり、具体的なデバイス名は指定していない。
“SYSOUT”が指示されると、オブジエクト実行
時のOS(オペレーテイングシステム)の一部であ
るジヨブ管理プログラムが、そのときのシステム
として定義されている出力デバイスに自動的に割
り当ててくれる。なお、ここでSYSOUTを指示
する代りに直接デバイス名を陽に指定してもよい
ことはいうまでもない。(26)は“INFILE”と
いう名の論理フアイルに対して、物理デバイス
TAPEを割り当てることを指示する制御文であ
り、ここでTAPEは特定の磁気テープ装置を意味
する略号である。またDISP=とあるのは、その
テープの属性及び処理方法を指示する部分で、
OLDはそのテープに既にデータが書かれている
ものであることを意味し、KEEPとはその書かれ
た内容を破壊せずに保存せよということを意味す
る。また(27)はそのテープ中に複数あるフアイ
ルのうち目的のフアイルを指定する部分で、
LABEL=はフアイルラベルの種類を指定する部
分、VOL=SR=はボリウム名を指定する部分、
DSN=はフアイル名を指定する部分である。ボ
リウム名及びフアイル名はソース中には書かれて
いないので本発明においても推定不可であり、そ
の場合??を表示して利用者に補足することを促
す。
このようにソースプログラムから一意に定まる
条件は自動生成し、予測不可能な場合にのみその
旨の表示をすることにより、利用者は自動生成さ
れたJCLをチエツクし、必要があれば第2図の修
正手段6により修正し、予測不可の部分のみ補足
すればよいので、負担が減り、かつミスも少なく
なる。
条件は自動生成し、予測不可能な場合にのみその
旨の表示をすることにより、利用者は自動生成さ
れたJCLをチエツクし、必要があれば第2図の修
正手段6により修正し、予測不可の部分のみ補足
すればよいので、負担が減り、かつミスも少なく
なる。
なお、第4図の仮JCLの出力は80欄カードで打
出して、修正追加の必要なカードを差し換えて正
規のJCLカードにしてもよいし、または一旦デイ
スプレイ上に表示し、デイスプレイ上でチエツ
ク・修正・追加を行なつた後、カード等に出力し
てもよい。
出して、修正追加の必要なカードを差し換えて正
規のJCLカードにしてもよいし、または一旦デイ
スプレイ上に表示し、デイスプレイ上でチエツ
ク・修正・追加を行なつた後、カード等に出力し
てもよい。
第1図は本発明の概念説明図、第2図は本発明
の一実施例ブロツク図、第3図はソースプログラ
ムの一例を示す図、第4図は仮JCL文の出力表示
例を示す図である。
の一実施例ブロツク図、第3図はソースプログラ
ムの一例を示す図、第4図は仮JCL文の出力表示
例を示す図である。
Claims (1)
- 1 ソースプログラムをコンパイルしてオブジエ
クトプログラムを作成するコンパイラ装置におい
て、該コンパイル処理と平行してソースプログラ
ムを解読し、オブジエクトプログラムの実行時に
必要とされるプログラム実行のための情報を読取
り、この読取りをもとにジヨブ制御文を生成する
手段と、この出力された仮JCLを手動で修正する
手段とを設けたことを特徴とするコンパイラ装
置。
Priority Applications (1)
Application Number | Priority Date | Filing Date | Title |
---|---|---|---|
JP4517081A JPS57159349A (en) | 1981-03-27 | 1981-03-27 | Compiler device |
Applications Claiming Priority (1)
Application Number | Priority Date | Filing Date | Title |
---|---|---|---|
JP4517081A JPS57159349A (en) | 1981-03-27 | 1981-03-27 | Compiler device |
Publications (2)
Publication Number | Publication Date |
---|---|
JPS57159349A JPS57159349A (en) | 1982-10-01 |
JPH0133855B2 true JPH0133855B2 (ja) | 1989-07-17 |
Family
ID=12711785
Family Applications (1)
Application Number | Title | Priority Date | Filing Date |
---|---|---|---|
JP4517081A Granted JPS57159349A (en) | 1981-03-27 | 1981-03-27 | Compiler device |
Country Status (1)
Country | Link |
---|---|
JP (1) | JPS57159349A (ja) |
Families Citing this family (1)
Publication number | Priority date | Publication date | Assignee | Title |
---|---|---|---|---|
JPS58223825A (ja) * | 1982-06-23 | 1983-12-26 | Fujitsu Ltd | 制御文自動出力方式 |
-
1981
- 1981-03-27 JP JP4517081A patent/JPS57159349A/ja active Granted
Also Published As
Publication number | Publication date |
---|---|
JPS57159349A (en) | 1982-10-01 |
Similar Documents
Publication | Publication Date | Title |
---|---|---|
US5481713A (en) | Method and apparatus for patching code residing on a read only memory device | |
US5546586A (en) | Method and apparatus for vectorizing the contents of a read only memory device without modifying underlying source code | |
CN111796831B (zh) | 一种多芯片兼容的编译方法和装置 | |
JP2802005B2 (ja) | 障害検出方法 | |
EP0752647A1 (en) | Method and apparatus for providing versioning information in software projects | |
US8141035B2 (en) | Method for accessing internal states of objects in object oriented programming | |
US7155702B2 (en) | Interface and stub generation for code distribution and synthesis | |
US20090319554A1 (en) | Unified metadata for external components | |
JP4041248B2 (ja) | コンパイラ装置、コンパイルプログラムが記録されたコンピュータ読み取り可能な記録媒体及びコンパイル方法 | |
EP0962859A2 (en) | Global register systems, methods, and computer program products | |
JPH0254337A (ja) | 実行可能イメージの生成を容易とするデータ処理システム | |
JPH0934713A (ja) | プログラミング言語処理方法及び装置 | |
US5915116A (en) | Time value manipulation | |
US10452364B2 (en) | Method and system for preparing code to be executed by programmable control devices | |
US6968543B2 (en) | Information processing apparatus | |
JP4319082B2 (ja) | プログラミングシステム | |
US9411566B2 (en) | System and method for removal of arraycopies in java by cutting the length of arrays | |
US6735763B1 (en) | Compiler device and computer-readable recording medium with a compiler recorded therein | |
EP0790555B1 (en) | Compile apparatus and method | |
US6275985B1 (en) | Method and apparatus for developing an application that implements garbage collection efficiently by combining proxy objects with compiler support | |
GB2342200A (en) | Initializing global registers | |
JP2006525568A (ja) | 携帯型データ記憶媒体のメモリ管理 | |
JPH0133855B2 (ja) | ||
JPH11110256A (ja) | プログラムデバッグ装置、プログラムデバッグ方法及びその方法を記録したコンピュータ読取り可能な記録媒体 | |
EP0194822A2 (en) | Methods of and apparatus for compiling high-level language statements into low-level language instruction sets |