JPS63201834A - オブジエクト・モジユール生成方法 - Google Patents
オブジエクト・モジユール生成方法Info
- Publication number
- JPS63201834A JPS63201834A JP62315461A JP31546187A JPS63201834A JP S63201834 A JPS63201834 A JP S63201834A JP 62315461 A JP62315461 A JP 62315461A JP 31546187 A JP31546187 A JP 31546187A JP S63201834 A JPS63201834 A JP S63201834A
- Authority
- JP
- Japan
- Prior art keywords
- format
- instructions
- program
- object module
- module
- 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.)
- Granted
Links
Classifications
-
- G—PHYSICS
- G06—COMPUTING OR CALCULATING; COUNTING
- G06F—ELECTRIC DIGITAL DATA PROCESSING
- G06F8/00—Arrangements for software engineering
- G06F8/40—Transformation of program code
- G06F8/52—Binary to binary
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)
Abstract
(57)【要約】本公報は電子出願前の出願データであるた
め要約のデータは記録されません。
め要約のデータは記録されません。
Description
【発明の詳細な説明】
A、産業上の利用分野
本発明はコンピュータ・プログラムの生成システムに関
し、さらに詳しくは、プログラム・オブジェクト・モジ
ュール、つまりプログラムと選択されたコンピュータ・
システムのためのオブジェクト・コードを生成するシス
テムを指向している。
し、さらに詳しくは、プログラム・オブジェクト・モジ
ュール、つまりプログラムと選択されたコンピュータ・
システムのためのオブジェクト・コードを生成するシス
テムを指向している。
B、従来技術
過去数年の間に、汎用コンピュータの数および種類が急
速に増えた。特に、スコープと計算力が向上してきてい
るパーソナル・コンピュータの数と種類の増加が著しい
。このような事情の下では、当然、広範囲のコンピュー
タの上で走るようなプログラムを生成しようという要求
が高まりつつある。
速に増えた。特に、スコープと計算力が向上してきてい
るパーソナル・コンピュータの数と種類の増加が著しい
。このような事情の下では、当然、広範囲のコンピュー
タの上で走るようなプログラムを生成しようという要求
が高まりつつある。
通常、コンピュータが新しく開発されて市場に投じられ
るとき、最初からその新型コンピュータのために開発さ
れた数少ないプログラムに加えて、既存の多数のプログ
ラムを新型コンピュータ上で動作可能にしたいという要
求が生じる。これは、しばしば、コンパイラ手段を開発
することによって達成される。コンパイラ手段は、ソー
ス・コードとしてオリシネイトしている命令(インスト
ラクション)をデコードし、所望のプログラムを選択さ
れたコンピュータ上で走らせるのに必要なオブジェクト
・コードで書かれた完全な順序の一連の命令を備えたプ
ログラム・オブジェクト・モジュールを出力する。オブ
ジェクト・モジュールの命令は選択されたコンピュータ
上で実行可能でなければならない。さらに、これらの命
令は読込可能(リード可能)つまり選択されたコンピュ
ータにロード可能なフォーマットで並べられなければな
らない。
るとき、最初からその新型コンピュータのために開発さ
れた数少ないプログラムに加えて、既存の多数のプログ
ラムを新型コンピュータ上で動作可能にしたいという要
求が生じる。これは、しばしば、コンパイラ手段を開発
することによって達成される。コンパイラ手段は、ソー
ス・コードとしてオリシネイトしている命令(インスト
ラクション)をデコードし、所望のプログラムを選択さ
れたコンピュータ上で走らせるのに必要なオブジェクト
・コードで書かれた完全な順序の一連の命令を備えたプ
ログラム・オブジェクト・モジュールを出力する。オブ
ジェクト・モジュールの命令は選択されたコンピュータ
上で実行可能でなければならない。さらに、これらの命
令は読込可能(リード可能)つまり選択されたコンピュ
ータにロード可能なフォーマットで並べられなければな
らない。
新型コンピュータが市場でビットすると、文字通り何百
という既存のプログラムをこの新型コンピュータの上で
性急に使用可能にしたいという要請が生じることがしば
しばある。したがって、これらの既存プログラムを新型
コンピュータ上で使用可能にするコンパイラを開発する
際に、機能上の特徴が新型コンピュータに近い既存のコ
ンピュータのために開発された特定プログラム用の既存
のコンパイラを利用して、新型コンピュータ上で実行可
能なプログラム・オブジェクト・モジュールを生成する
コンパイラに変えるのに必要な最低限の変更をこの既存
のコンパイラに加えることがきわめて好都合である場合
がしばしばある。オブジェクト・モジュールがこの新型
コンピュータ上で実行可能であるためには、オブジェク
ト・モジュールの中の命令は個々に該コンピュータ上で
実行可能でなければならず、かつ命令は新型コンピュー
タによって読込可能、っまり該hンピュータにロード可
能なフォーマットで配列されていなければならない。
という既存のプログラムをこの新型コンピュータの上で
性急に使用可能にしたいという要請が生じることがしば
しばある。したがって、これらの既存プログラムを新型
コンピュータ上で使用可能にするコンパイラを開発する
際に、機能上の特徴が新型コンピュータに近い既存のコ
ンピュータのために開発された特定プログラム用の既存
のコンパイラを利用して、新型コンピュータ上で実行可
能なプログラム・オブジェクト・モジュールを生成する
コンパイラに変えるのに必要な最低限の変更をこの既存
のコンパイラに加えることがきわめて好都合である場合
がしばしばある。オブジェクト・モジュールがこの新型
コンピュータ上で実行可能であるためには、オブジェク
ト・モジュールの中の命令は個々に該コンピュータ上で
実行可能でなければならず、かつ命令は新型コンピュー
タによって読込可能、っまり該hンピュータにロード可
能なフォーマットで配列されていなければならない。
新型コンピュータの求める命令配列フォーマットと同じ
フォーマットで命令が並んでいるプログラム・オブジェ
クト・モジュールを受は付゛け、かつ処理する既存のコ
ンピュータが存在するとともに、この既存のコンピュー
タのための所望のプログラム用のコンパイラが入手でき
るならば、コンパイラに変更を加えて新型コンピュータ
のための所望のプログラム・オブジェクト・コードを生
成させることは、通常、比較的簡単な仕事である。
フォーマットで命令が並んでいるプログラム・オブジェ
クト・モジュールを受は付゛け、かつ処理する既存のコ
ンピュータが存在するとともに、この既存のコンピュー
タのための所望のプログラム用のコンパイラが入手でき
るならば、コンパイラに変更を加えて新型コンピュータ
のための所望のプログラム・オブジェクト・コードを生
成させることは、通常、比較的簡単な仕事である。
しかしながら、既存のコンピュータ用の広範囲の種類の
プログラムのためのプログラム・コンパイラでは、新し
く開発された選択されたコンピュータに読込可能、つま
りロード可能であるために必要とされるフォーマットと
は全く異なるフォーマットの命令を持つオブジェクト・
モジュールしか生成できないことが非常に多い。これは
、特に、既存のIBM(登録商標)システム370用に
元々開発されたプログラムに対して上記要請があるとき
に起こる。IBMシステム370(以下、5370と略
すこともある)は、命令が一般フオーマットで並べられ
ているプログラム・オブジェクト・モジュールを必要と
した。一般フオーマットは、フォーマットの中の命令に
よって実行されるファンクション(機能)に関しては系
統型てられていないと考えてよい。I BMS 370
オブジエクト・モジュールまたはファイルの一般フオー
マットは、IBMコーポレーションによって1980年
3月に発刊されたマニュアル” S 370 0S /
V S Linkage Editor Logic
” (SV40−38−15=)第2版に記載されてい
る。5370用のプログラム・ファイルがそのような比
較的系新党てられていない命令フォーマット配列を持つ
理由は、このようなプログラミングの大部分が昔のパン
チ・カード・チック技術に由来しているからである。し
たがって、まだ存在している語句「オブジェクト・デッ
クjは、いまだにそのようなプログラム・オブジェクト
・モジュールについて使われている。
プログラムのためのプログラム・コンパイラでは、新し
く開発された選択されたコンピュータに読込可能、つま
りロード可能であるために必要とされるフォーマットと
は全く異なるフォーマットの命令を持つオブジェクト・
モジュールしか生成できないことが非常に多い。これは
、特に、既存のIBM(登録商標)システム370用に
元々開発されたプログラムに対して上記要請があるとき
に起こる。IBMシステム370(以下、5370と略
すこともある)は、命令が一般フオーマットで並べられ
ているプログラム・オブジェクト・モジュールを必要と
した。一般フオーマットは、フォーマットの中の命令に
よって実行されるファンクション(機能)に関しては系
統型てられていないと考えてよい。I BMS 370
オブジエクト・モジュールまたはファイルの一般フオー
マットは、IBMコーポレーションによって1980年
3月に発刊されたマニュアル” S 370 0S /
V S Linkage Editor Logic
” (SV40−38−15=)第2版に記載されてい
る。5370用のプログラム・ファイルがそのような比
較的系新党てられていない命令フォーマット配列を持つ
理由は、このようなプログラミングの大部分が昔のパン
チ・カード・チック技術に由来しているからである。し
たがって、まだ存在している語句「オブジェクト・デッ
クjは、いまだにそのようなプログラム・オブジェクト
・モジュールについて使われている。
他方、最近登場してきた比較的新しいコンピュータ、特
にパーソナル・コンピュータ・エリアのコンピュータは
、複数のセクションを持つフォーマットで命令が並べら
れており、かつ各セクションはオブジェクト・モジュー
ルのプログラムの中で関連のある機能を実行する命令を
含むようになっているプログラム・オブジェクト・モジ
ュールを一般に要求する。そのようなオブジェクト・モ
ジュールの典型はIBM RT PCAIXのa、
outオブジェクト・ファイルつまりモジュールである
。これは、IBMコーポレーションによって1985年
11月に出版された” I B MRT P CAd
vanced Interactive Execut
iveOperating System A I X
Operating SytemTechnical
Reference”第1版の第4章に掲載されてい
る。
にパーソナル・コンピュータ・エリアのコンピュータは
、複数のセクションを持つフォーマットで命令が並べら
れており、かつ各セクションはオブジェクト・モジュー
ルのプログラムの中で関連のある機能を実行する命令を
含むようになっているプログラム・オブジェクト・モジ
ュールを一般に要求する。そのようなオブジェクト・モ
ジュールの典型はIBM RT PCAIXのa、
outオブジェクト・ファイルつまりモジュールである
。これは、IBMコーポレーションによって1985年
11月に出版された” I B MRT P CAd
vanced Interactive Execut
iveOperating System A I X
Operating SytemTechnical
Reference”第1版の第4章に掲載されてい
る。
上記のような最近の所望のタイプのパーソナル・コンピ
ュータの要求するオブジェクト・モジュールにおける命
令フォーマットが既存の8370プログラミングのオブ
ジェクト・モジュールにおける命令フォーマットと全く
違うので、従来のアプローチによれば、市場に参入する
新型のパーソナル・コンピュータ上で使用することを希
望する5370用の各ソース・プログラム毎に新しいコ
ンパイラを開発することになるであろう。もちろん、こ
のようなことをすると、かなりの時間とコストを費すこ
とになるであろう。
ュータの要求するオブジェクト・モジュールにおける命
令フォーマットが既存の8370プログラミングのオブ
ジェクト・モジュールにおける命令フォーマットと全く
違うので、従来のアプローチによれば、市場に参入する
新型のパーソナル・コンピュータ上で使用することを希
望する5370用の各ソース・プログラム毎に新しいコ
ンパイラを開発することになるであろう。もちろん、こ
のようなことをすると、かなりの時間とコストを費すこ
とになるであろう。
C0問題点を解決するための手段
本発明は、新規なコンピュータにロード可能となるため
に必要とされるオブジェクト・モジュールにおける命令
のフォーマットが、既存のコンパイラによって生成可能
なオブジェクト・モジュールにおける命令のフォーマッ
トと全く違う場合でも、既存のプログラムを新規なマシ
ン上で実行可能とするために全く新たなコンパイラを開
発しなくてもよい、という認識に立っている。
に必要とされるオブジェクト・モジュールにおける命令
のフォーマットが、既存のコンパイラによって生成可能
なオブジェクト・モジュールにおける命令のフォーマッ
トと全く違う場合でも、既存のプログラムを新規なマシ
ン上で実行可能とするために全く新たなコンパイラを開
発しなくてもよい、という認識に立っている。
本発明は、プログラム・ソースから選択されたコンピユ
ーテイング・システム用のプログラム・オブジェクト・
モジュールを生成するシステムであって、上記プログラ
ム・ソースからオブジェクト・モジュールをコンパイル
するコンパイル手段を備えるものに関する。上記コンパ
イル手段の生成するオブジェクト・モジュールが備える
命令は、上記コンピユーテイング・システムにおいて個
々に実行可能ではあるが、上記コンピユーテイング・シ
ステムにロード可能ではない第1のフォーマツで配列さ
れている。そこで、本発明では、上記第1の命令フォー
マットを上記コンピユーテイング・システムにロード可
能な第2のフォーマットへ変換する手段も備える。
ーテイング・システム用のプログラム・オブジェクト・
モジュールを生成するシステムであって、上記プログラ
ム・ソースからオブジェクト・モジュールをコンパイル
するコンパイル手段を備えるものに関する。上記コンパ
イル手段の生成するオブジェクト・モジュールが備える
命令は、上記コンピユーテイング・システムにおいて個
々に実行可能ではあるが、上記コンピユーテイング・シ
ステムにロード可能ではない第1のフォーマツで配列さ
れている。そこで、本発明では、上記第1の命令フォー
マットを上記コンピユーテイング・システムにロード可
能な第2のフォーマットへ変換する手段も備える。
換言すれば、既存のコンパイラであってもよいコンパイ
ル手段に若干の変更を加えて、上記新たなコンピユーテ
イング・システム用の命令、つまり上記コンピユーテイ
ング・システムによって実行可能な命令を備えたオブジ
ェクト・モジュールを生成可能にする。ただし、このオ
ブジェクト・モジュールの命令は、上記新たなコンピユ
ーテイング・システムにロード可能つまり読込可能なフ
ォーマットで並べられていない。本発明では、さらに、
上記新たなコンピユーテイング・システムにロード可能
ではない第1の命令フォーマットを上記コンピユーテイ
ング・システムにロード可能な第2のフォーマットに変
換する手段が組み合わされる。その結果、生成された命
令は、上記新規なコンピュータに読込み可能で、かつ実
行可能であるから、フォーマットが変更された後では、
命令が上記新規なコンピユーテイング・システム上で実
行可能なフォーマットで並べられていることになる。
ル手段に若干の変更を加えて、上記新たなコンピユーテ
イング・システム用の命令、つまり上記コンピユーテイ
ング・システムによって実行可能な命令を備えたオブジ
ェクト・モジュールを生成可能にする。ただし、このオ
ブジェクト・モジュールの命令は、上記新たなコンピユ
ーテイング・システムにロード可能つまり読込可能なフ
ォーマットで並べられていない。本発明では、さらに、
上記新たなコンピユーテイング・システムにロード可能
ではない第1の命令フォーマットを上記コンピユーテイ
ング・システムにロード可能な第2のフォーマットに変
換する手段が組み合わされる。その結果、生成された命
令は、上記新規なコンピュータに読込み可能で、かつ実
行可能であるから、フォーマットが変更された後では、
命令が上記新規なコンピユーテイング・システム上で実
行可能なフォーマットで並べられていることになる。
本発明は、複数のセクションからなり、その各々にはオ
ブジェクト・モジュールのプログラムにおけるある機能
(ファンクション)の実行に関連する命令が含まれるよ
うなフォーマットで、オブジェクト・モジュールの備え
る命令が並べられる、そういった最近のコンピュータ・
システム用のプログラム・オブジェクト・モジュールを
生成するのに用いると、特に有益である。本発明によれ
ば、上記システム370用オブジエクト・モジュールの
ように命令が一般的に言って組織化されていないオブジ
ェクト・モジュールを生成するコンパイラを使って、上
記のような命令が組織化されたプログラム・モジュール
を生成することができる。
ブジェクト・モジュールのプログラムにおけるある機能
(ファンクション)の実行に関連する命令が含まれるよ
うなフォーマットで、オブジェクト・モジュールの備え
る命令が並べられる、そういった最近のコンピュータ・
システム用のプログラム・オブジェクト・モジュールを
生成するのに用いると、特に有益である。本発明によれ
ば、上記システム370用オブジエクト・モジュールの
ように命令が一般的に言って組織化されていないオブジ
ェクト・モジュールを生成するコンパイラを使って、上
記のような命令が組織化されたプログラム・モジュール
を生成することができる。
本発明によれば、ソース・コードからオブジェクト・モ
ジュールをコンパイルする手段であって、そのオブジェ
クト・モジュールの備える命令は選択されたコンピュー
タにおいて個々に実行可能であるけれども、オブジェク
ト・モジュールのプログラムにおける命令の機能に無関
係な順番で命令が並んでいる、そういったオブジェクト
・モジュールを生成する手段が用いられる。この場合、
選択されたコンピュータはこのような関連づけられてい
ないフォーマットの命令群を扱うことのできないコンピ
ュータであるので、結果として生成されるオブジェクト
・モジュールは該選択されたコンピュータにロード可能
ではない。そこで、このコンパイル手段に加えて、この
第1の関連づけられていない命令フォーマットを第2の
フォーマットに変換する手段が用いられる。第2のフォ
ーマットでは、命令が複数のセクションに並べられ、各
セクションには、オブジェクト・モジュールのプログラ
ムにおけるある関連づけられた機能を実行する命令が含
まれる。かかる組織化されたフォーマットで配列された
命令は、上記選択されたコンピュータにロード可能であ
る。したがって、結果として、該選択された新たなコン
ピュータ用のオブジェクト・モジュールが得られる。
ジュールをコンパイルする手段であって、そのオブジェ
クト・モジュールの備える命令は選択されたコンピュー
タにおいて個々に実行可能であるけれども、オブジェク
ト・モジュールのプログラムにおける命令の機能に無関
係な順番で命令が並んでいる、そういったオブジェクト
・モジュールを生成する手段が用いられる。この場合、
選択されたコンピュータはこのような関連づけられてい
ないフォーマットの命令群を扱うことのできないコンピ
ュータであるので、結果として生成されるオブジェクト
・モジュールは該選択されたコンピュータにロード可能
ではない。そこで、このコンパイル手段に加えて、この
第1の関連づけられていない命令フォーマットを第2の
フォーマットに変換する手段が用いられる。第2のフォ
ーマットでは、命令が複数のセクションに並べられ、各
セクションには、オブジェクト・モジュールのプログラ
ムにおけるある関連づけられた機能を実行する命令が含
まれる。かかる組織化されたフォーマットで配列された
命令は、上記選択されたコンピュータにロード可能であ
る。したがって、結果として、該選択された新たなコン
ピュータ用のオブジェクト・モジュールが得られる。
なお、ここで言う「機能(ファンクシ旦ン)」とは命令
のある特定のセットがコンピュータ上で達成しようとす
るものを指し、「セクション」とはモジュールのうちの
命令群が物理的に配置される部分を指す。
のある特定のセットがコンピュータ上で達成しようとす
るものを指し、「セクション」とはモジュールのうちの
命令群が物理的に配置される部分を指す。
上記システムを使うことによって、広範囲のプログラム
に用いられているところの、命令が機能に無関係なフォ
ーマットで並べられるオブジェクト・モジュールを生成
できる、現在利用可能なコンパイラが依然として有用に
なる。この場合、選択されたコンピュータ用に適当な個
々の命令を生成できるように、既存のコンパイラに対し
て比較的小さな変更が加えられる。ただし、生成される
命令群のフォーマットは、プログラムにおける機能に無
関係な配列であるがゆえに該選択されたコンピュータに
ロード可能でないフォーマットのままでよい。このよう
なコンパイラ手段に加えて、該フォーマットを、命令が
機能に従ってセクションの形に組織化されたフォーマッ
ト、つまり該選択されたコンピュータにロード可能なフ
ォーマットに変換する手段が用いられる。
に用いられているところの、命令が機能に無関係なフォ
ーマットで並べられるオブジェクト・モジュールを生成
できる、現在利用可能なコンパイラが依然として有用に
なる。この場合、選択されたコンピュータ用に適当な個
々の命令を生成できるように、既存のコンパイラに対し
て比較的小さな変更が加えられる。ただし、生成される
命令群のフォーマットは、プログラムにおける機能に無
関係な配列であるがゆえに該選択されたコンピュータに
ロード可能でないフォーマットのままでよい。このよう
なコンパイラ手段に加えて、該フォーマットを、命令が
機能に従ってセクションの形に組織化されたフォーマッ
ト、つまり該選択されたコンピュータにロード可能なフ
ォーマットに変換する手段が用いられる。
その結果、例えばシステム370等のために生成された
多数、そして多種類の古いプログラムおよびコンパイラ
が、本発明と組み合わせることによって、最近のパーソ
ナル・コンピュータのうちのあるもののためのオブジェ
クト・モジュールを生成するのに活用される。
多数、そして多種類の古いプログラムおよびコンパイラ
が、本発明と組み合わせることによって、最近のパーソ
ナル・コンピュータのうちのあるもののためのオブジェ
クト・モジュールを生成するのに活用される。
本発明のより重要な面は、第1のフォーマット、つまり
上記従前の機能と無関係のフォーマットから、選択され
たコンピユーテイング・システムにロード可能な第2の
フォーマット、つまり命令が複数のセクションに分かれ
て配置され、かつ各セクションがプログラムの中の関連
づけられたある機能を実行する命令を含むフォーマット
へ変換する手段が作られると、同一の変換手段を用いて
、上記第1のフォーマットを持つ種々のオブジェクト・
モジュールを、上記第2のフォーマットを持つオブジェ
クト・モジュールへ変換できることにある。
上記従前の機能と無関係のフォーマットから、選択され
たコンピユーテイング・システムにロード可能な第2の
フォーマット、つまり命令が複数のセクションに分かれ
て配置され、かつ各セクションがプログラムの中の関連
づけられたある機能を実行する命令を含むフォーマット
へ変換する手段が作られると、同一の変換手段を用いて
、上記第1のフォーマットを持つ種々のオブジェクト・
モジュールを、上記第2のフォーマットを持つオブジェ
クト・モジュールへ変換できることにある。
D、実施例
本発明の実施例において用いたソース・プログラムは、
IBMコーポレーションの開発したPL。
IBMコーポレーションの開発したPL。
8である。このプログラムは周知であり、そのコンポー
ネントは典型的なコンパイラのコンポーネントとともに
、例えば“I B M Journal ofRese
arch and Development” +Vo
1.27、No。
ネントは典型的なコンパイラのコンポーネントとともに
、例えば“I B M Journal ofRese
arch and Development” +Vo
1.27、No。
11983年5月刊、237〜246頁、特に241頁
以降に記載されている。プログラムPL。
以降に記載されている。プログラムPL。
8は広<IBMシステム370上で使われてきた。
該プログラムに関して言えば、システム370用のPL
、8コンパイラによって生成された命令は一般フオーマ
ットで並べられる。一般フオーマットは、フォーマット
の中の命令によって実行される機能に関して系新党てら
れていないと考えよい。
、8コンパイラによって生成された命令は一般フオーマ
ットで並べられる。一般フオーマットは、フォーマット
の中の命令によって実行される機能に関して系新党てら
れていないと考えよい。
このようにして生成されるオブジェクト・モジュールま
たはファイルの一般フオーマットは、上記マニュアル1
1S 370 0S / V S LinkageE
ditor Logic”第2版に記載されている。
たはファイルの一般フオーマットは、上記マニュアル1
1S 370 0S / V S LinkageE
ditor Logic”第2版に記載されている。
第1図を参照するにつき、該フロー・チャートの開始点
ステップ10にあるのはPL、8ソース・プログラムで
あるとしよう。ステップ11では、構文解析器(シンタ
ックス・アナライザ)がソース・プログラムを処理する
。構文解析器は、ユーザーのプログラムを表現する入力
を読み込んで、プログラム・ステートメントの構文が正
しいか否かチェックする。次に、コンパイラは、ソース
・プログラムの中間表現である内部擬似コードを生成す
る(ステップ12)。次に、擬似コードが最適化されて
、より破約走るマシン・コードが生成される。ここで、
ステップは第2図の入口“A”へ分岐する。
ステップ10にあるのはPL、8ソース・プログラムで
あるとしよう。ステップ11では、構文解析器(シンタ
ックス・アナライザ)がソース・プログラムを処理する
。構文解析器は、ユーザーのプログラムを表現する入力
を読み込んで、プログラム・ステートメントの構文が正
しいか否かチェックする。次に、コンパイラは、ソース
・プログラムの中間表現である内部擬似コードを生成す
る(ステップ12)。次に、擬似コードが最適化されて
、より破約走るマシン・コードが生成される。ここで、
ステップは第2図の入口“A”へ分岐する。
後続の2ステツプで行われることを詳しく考察するため
に、本コンパイラは、上記システム370コンピユータ
をターゲットとしてPL、8プロダラムのプログラム・
オブジェクト・モジュールを生成するべく開発された既
存のコンパイラに修正を加えたものであると仮定する。
に、本コンパイラは、上記システム370コンピユータ
をターゲットとしてPL、8プロダラムのプログラム・
オブジェクト・モジュールを生成するべく開発された既
存のコンパイラに修正を加えたものであると仮定する。
本実施例では、このオリジナルのコンパイラに修正を加
えることによって、上記AIXオペレーティング・シス
テムを備えたIBM RT PC(ターゲット・コ
ンピュータ)上で実行可能な命令のプログラム・オブジ
ェクト・モジュールが作られる。したがって、実行可能
命令のテーブルおよび擬似コード変換アルゴリズムが、
システム370用の既存のPL、8コンバラにおける主
な修正事項である。修正事項には、実行可能命令の新し
いテーブル、およびIBM RT PC用の実行可
能命令を生成するために擬似コード変換アルゴリズムに
加える一般的に言って小さな改訂が含まれることになる
。
えることによって、上記AIXオペレーティング・シス
テムを備えたIBM RT PC(ターゲット・コ
ンピュータ)上で実行可能な命令のプログラム・オブジ
ェクト・モジュールが作られる。したがって、実行可能
命令のテーブルおよび擬似コード変換アルゴリズムが、
システム370用の既存のPL、8コンバラにおける主
な修正事項である。修正事項には、実行可能命令の新し
いテーブル、およびIBM RT PC用の実行可
能命令を生成するために擬似コード変換アルゴリズムに
加える一般的に言って小さな改訂が含まれることになる
。
第2図のステップ14では、擬似コードをターゲット・
コンピュータ上で実行可能なマシン命令に変換するため
の正しい命令オペレーション・コード(opcode)
テーブルが選択される。
コンピュータ上で実行可能なマシン命令に変換するため
の正しい命令オペレーション・コード(opcode)
テーブルが選択される。
次に、ステップ15では、上記選択された命令オペレー
ション・コード・テーブルを使って、擬似コードが上記
IBM RT PC用の実行可能命令の対応するも
のへ変換される。その結果(ステップ16) 、PL、
8プログラムを実行する命令のモジュールが出力される
。その命令は、上記IBM RT PC上で実行可
能である。これらの実行可能な命令は、第1図のステッ
プ17で示すところの、プログラム・オブジェクト・モ
ジュールを構成する。このモジュールは、第1のフォー
マットを持つ。つまり、このモジュールの中では、IB
M RT PC上で個々に実行可能な命令が第1の
フォーマットで並べられているが、このフォーマットは
、その中の命令によって実行される。機能に関して言え
ば、本質的に未整理である。このように並べられた命令
は、上記113MRT PCによって扱うことができ
ない。なぜなら、このコンピュータは、命令が読込可能
つまりロード可能であるように、命令が複数のセクショ
ンを備えたフォーマットで配列され、かつ各セクション
にはプログラム中のある機能を実行するのに関連する命
令が含まれることを要請する。したがって、その最も広
い意味において、本発明によれば、第3図に示すように
、第1のフォーマットを持つプログラム・オブジェクト
・モジュール(ステップ18)がオブジェクト・モジュ
ール、フォーマット・コンピュータ(ステップ19)に
入力され、該コンバータ19は、命令のフォーマットを
変換して、複数のセクションからなり、その各々がプロ
グラムの中のある機能の実行に関連する命令を含むよう
な配列を作る。このオブジェクト・モジュールの出力(
ステップ20)は、このような第2の、つまり整理され
たフォーマットを持ち、したがって上記のようなコンピ
ュータによる処理が可能、つまりロード可能または読込
可能である。上述のように、個々の命令は既にRTPC
AIXシステム上で実行可能であるから、必要なプログ
ラム・オブジェクト・モジュールを生成したことになる
。
ション・コード・テーブルを使って、擬似コードが上記
IBM RT PC用の実行可能命令の対応するも
のへ変換される。その結果(ステップ16) 、PL、
8プログラムを実行する命令のモジュールが出力される
。その命令は、上記IBM RT PC上で実行可
能である。これらの実行可能な命令は、第1図のステッ
プ17で示すところの、プログラム・オブジェクト・モ
ジュールを構成する。このモジュールは、第1のフォー
マットを持つ。つまり、このモジュールの中では、IB
M RT PC上で個々に実行可能な命令が第1の
フォーマットで並べられているが、このフォーマットは
、その中の命令によって実行される。機能に関して言え
ば、本質的に未整理である。このように並べられた命令
は、上記113MRT PCによって扱うことができ
ない。なぜなら、このコンピュータは、命令が読込可能
つまりロード可能であるように、命令が複数のセクショ
ンを備えたフォーマットで配列され、かつ各セクション
にはプログラム中のある機能を実行するのに関連する命
令が含まれることを要請する。したがって、その最も広
い意味において、本発明によれば、第3図に示すように
、第1のフォーマットを持つプログラム・オブジェクト
・モジュール(ステップ18)がオブジェクト・モジュ
ール、フォーマット・コンピュータ(ステップ19)に
入力され、該コンバータ19は、命令のフォーマットを
変換して、複数のセクションからなり、その各々がプロ
グラムの中のある機能の実行に関連する命令を含むよう
な配列を作る。このオブジェクト・モジュールの出力(
ステップ20)は、このような第2の、つまり整理され
たフォーマットを持ち、したがって上記のようなコンピ
ュータによる処理が可能、つまりロード可能または読込
可能である。上述のように、個々の命令は既にRTPC
AIXシステム上で実行可能であるから、必要なプログ
ラム・オブジェクト・モジュールを生成したことになる
。
ここで、第3図のステップ19をより詳しく説明する。
このステップでは、オブジェクト・モジュールのフォー
マットが、上述のような比較的未整理のフォーマットか
ら、IBM RT PCAIXシステム等で必要と
される整理されたフォーマットへと変換される。本発明
の理解のために、システム370の必要とする第1のフ
ォーマットからIBM RT PCAIXの必要と
する第2の整理されたフォーマットへ直接変換できるこ
とを認識されたい。ただし、本実施例では、便宜上、変
換は2つの段階を経て行われる。第1の段階では、上述
の整理されていないシステム370用オブジエクト・モ
ジュールが、目録(Table ofContents
、 T OC)オブジェクト・モジュール・フォーマッ
トとして知られる整理されたフォーマットへ変換される
。このTOCモジュール・フォーマットは既存のフォー
マットであり、IBM社の刊行物である“Virtua
l Re5ource ManagerTechnic
al Reference for the I BM
RT PC”、第1版(1985年11月) 、
AppendixBに記載されている。後で述べるよう
に、フォーマットがTOCフォーマットに変換されたオ
ブジェクト・モジュールは第2の変換ステップを経る。
マットが、上述のような比較的未整理のフォーマットか
ら、IBM RT PCAIXシステム等で必要と
される整理されたフォーマットへと変換される。本発明
の理解のために、システム370の必要とする第1のフ
ォーマットからIBM RT PCAIXの必要と
する第2の整理されたフォーマットへ直接変換できるこ
とを認識されたい。ただし、本実施例では、便宜上、変
換は2つの段階を経て行われる。第1の段階では、上述
の整理されていないシステム370用オブジエクト・モ
ジュールが、目録(Table ofContents
、 T OC)オブジェクト・モジュール・フォーマッ
トとして知られる整理されたフォーマットへ変換される
。このTOCモジュール・フォーマットは既存のフォー
マットであり、IBM社の刊行物である“Virtua
l Re5ource ManagerTechnic
al Reference for the I BM
RT PC”、第1版(1985年11月) 、
AppendixBに記載されている。後で述べるよう
に、フォーマットがTOCフォーマットに変換されたオ
ブジェクト・モジュールは第2の変換ステップを経る。
ここでは、フォーマットが上述のIEM RTPCA
IXシステムの必要とするフォーマットへ変換される。
IXシステムの必要とするフォーマットへ変換される。
変換をこのように2段階で行うことにした理由は、シス
テム370用オブジエクト・モジュール・フォーマット
をTOCオブジェクト・モジュール・フォーマットへ変
換する機構が既に開発されているからである。TOCオ
ブジェクト・モジュールにおいて命令が並べられている
フォーマットは、セクションを持ち、セクションの各々
にはオブジェクト・モジュールのプログラムにおけるあ
る機能の実行に関連する命令が含まれている。したがっ
て、整理されたTOCオブジェクト・モジュール・フォ
ーマットを1′a、Out″として知られる所望のIB
M RT PCAIX用オブジェクト・モジュール
・フォーマットへ変換することの方が大変簡単であると
考えられる。
テム370用オブジエクト・モジュール・フォーマット
をTOCオブジェクト・モジュール・フォーマットへ変
換する機構が既に開発されているからである。TOCオ
ブジェクト・モジュールにおいて命令が並べられている
フォーマットは、セクションを持ち、セクションの各々
にはオブジェクト・モジュールのプログラムにおけるあ
る機能の実行に関連する命令が含まれている。したがっ
て、整理されたTOCオブジェクト・モジュール・フォ
ーマットを1′a、Out″として知られる所望のIB
M RT PCAIX用オブジェクト・モジュール
・フォーマットへ変換することの方が大変簡単であると
考えられる。
第4図を参照しつつ、比較的整理されていない第1のフ
ォーマットを持つプログラム・オブ・ジェクト・モジュ
ールの、上述のTOCフォーマツトを持つモジュールへ
の変換を説明する。TOCフォーマットにおいては、命
令が複数のセクションに並べられており、各セクション
にはオブジェクト・モジュールのプログラムの中のある
機能の実行に関連する命令が含まれている。
ォーマットを持つプログラム・オブ・ジェクト・モジュ
ールの、上述のTOCフォーマツトを持つモジュールへ
の変換を説明する。TOCフォーマットにおいては、命
令が複数のセクションに並べられており、各セクション
にはオブジェクト・モジュールのプログラムの中のある
機能の実行に関連する命令が含まれている。
ステップ21から24までは、すべてのレコードが読み
込まれ、かつ処理されるまで繰り返される。
込まれ、かつ処理されるまで繰り返される。
ステップ21では、オブジェクト・モジュールの中の命
令が、一時にルコードずつ読み込まれる。続いて、ステ
ップ22では、ESD (外部シンボル定義)が行われ
る。つまり、シンボル・レコードがあるならばシンボル
・ディクショナリの中のシンボルが、テーブル記録され
る。手続きにおいては、まずシンボルがシンボル・テー
ブルに追加され、続いてシンボルによって表わされるテ
キストまたはコードを収容するために記憶装置中に十分
なセクションが割り振られる。次に、ステップ23にお
いて、テキスト・データが記録される。ここでは、シン
ボル・エントリに対応するコ一部またはテキストが上記
振り振られた記憶装置中のセクションに置かれる。次に
、ステップ24では、RLD、つまりレコード・リロケ
ーション(再配置)・データがリロケーション・テーブ
ルに追加され、参照されるコードまたはテキストは適当
なりロケーション・アドレスによって調整される。上記
”Virtual Re5ource Manager
Technical Refernce”のAppen
dix Bの中のB6から始まるページは、このような
りロケーション・エントリがどのようにして作られが詳
しく説明している。エツセンスを述べると、ステップ2
3で記録されるテキストの量に応じて、リロケーション
・アドレスは調整される。
令が、一時にルコードずつ読み込まれる。続いて、ステ
ップ22では、ESD (外部シンボル定義)が行われ
る。つまり、シンボル・レコードがあるならばシンボル
・ディクショナリの中のシンボルが、テーブル記録され
る。手続きにおいては、まずシンボルがシンボル・テー
ブルに追加され、続いてシンボルによって表わされるテ
キストまたはコードを収容するために記憶装置中に十分
なセクションが割り振られる。次に、ステップ23にお
いて、テキスト・データが記録される。ここでは、シン
ボル・エントリに対応するコ一部またはテキストが上記
振り振られた記憶装置中のセクションに置かれる。次に
、ステップ24では、RLD、つまりレコード・リロケ
ーション(再配置)・データがリロケーション・テーブ
ルに追加され、参照されるコードまたはテキストは適当
なりロケーション・アドレスによって調整される。上記
”Virtual Re5ource Manager
Technical Refernce”のAppen
dix Bの中のB6から始まるページは、このような
りロケーション・エントリがどのようにして作られが詳
しく説明している。エツセンスを述べると、ステップ2
3で記録されるテキストの量に応じて、リロケーション
・アドレスは調整される。
すべてのレコードが読み込まれて処理されると、セクシ
ョンの設けられたフォーマットで編成されたTOCオブ
ジェクト・モジュールが出力される(ステップ25)。
ョンの設けられたフォーマットで編成されたTOCオブ
ジェクト・モジュールが出力される(ステップ25)。
このフォーマットは、先頭から順に、ヘッダ・セクショ
ン26、リード・オンリー(読取専用)・セクション2
7、リード・ライト(読み書き)・セクション28、ロ
ーダ−・セクション29、およびバインダ・セクション
30を備えている。ヘッダ・セクション26には、オブ
ジェクト・モジュールを走らせるのに必要な情報が含ま
れる。リード・オンリー・セクション27には、実行可
能なオブジェクト・コードおよび定数が含まれる。リー
ド・ライト・セクション28には、モジュールのリード
・ライト・データが含まれる。ローダ−・セクション2
9には、再配置ローダ−が必要とする再配置(RLD)
情報およびシンボル(ESD)情報が含まれる。バイン
ダ・セクション30には、バインダがこのT。
ン26、リード・オンリー(読取専用)・セクション2
7、リード・ライト(読み書き)・セクション28、ロ
ーダ−・セクション29、およびバインダ・セクション
30を備えている。ヘッダ・セクション26には、オブ
ジェクト・モジュールを走らせるのに必要な情報が含ま
れる。リード・オンリー・セクション27には、実行可
能なオブジェクト・コードおよび定数が含まれる。リー
ド・ライト・セクション28には、モジュールのリード
・ライト・データが含まれる。ローダ−・セクション2
9には、再配置ローダ−が必要とする再配置(RLD)
情報およびシンボル(ESD)情報が含まれる。バイン
ダ・セクション30には、バインダがこのT。
Cオブジェクト・モジュールを別のTOCオブジェクト
・モジュールにバインドするのに必要とするすべての情
報である該モジュールについてのすべての再配置(RL
D)情報およびすべてのシンボル(E S D)情報が
含まれる。バインダ・セクションのフォーマットは、ロ
ーダ−・セクションのフォーマットと同じである。
・モジュールにバインドするのに必要とするすべての情
報である該モジュールについてのすべての再配置(RL
D)情報およびすべてのシンボル(E S D)情報が
含まれる。バインダ・セクションのフォーマットは、ロ
ーダ−・セクションのフォーマットと同じである。
上記のようにして生成されるTOCオブジェクト・モジ
ュールは、IBM RT PCAIXシステム上で
個々に実行可能な命令を次のようなフォーマットで並べ
る。即ち、このような命令群を複数のセクションに並べ
、かつ各セクションにはプログラム中のある機能を実行
するのに関連してくる命令が含まれているようなフォー
マットで配列する。TOCプログラム・オブジェクト・
モジュールは、ある特定のコンピュータ・システムにロ
ード可能、つまり読込可能だけれども、本実施例におけ
るターゲット・コンピュータ、つまりIBM RT
PCは、命令がa 、 outフォーマットで配列さ
れることを要請する。詳しくは、上記“I B M
RT P CAdvanced Interacti
veExecutive Operating Sys
tem A I X OperatingSystem
Technical Reference Manu
al”の第4章を参照されたい。
ュールは、IBM RT PCAIXシステム上で
個々に実行可能な命令を次のようなフォーマットで並べ
る。即ち、このような命令群を複数のセクションに並べ
、かつ各セクションにはプログラム中のある機能を実行
するのに関連してくる命令が含まれているようなフォー
マットで配列する。TOCプログラム・オブジェクト・
モジュールは、ある特定のコンピュータ・システムにロ
ード可能、つまり読込可能だけれども、本実施例におけ
るターゲット・コンピュータ、つまりIBM RT
PCは、命令がa 、 outフォーマットで配列さ
れることを要請する。詳しくは、上記“I B M
RT P CAdvanced Interacti
veExecutive Operating Sys
tem A I X OperatingSystem
Technical Reference Manu
al”の第4章を参照されたい。
TOCフォーマットと同様に、a、outフォーマット
も一連のセクションがプログラム中の命令の機能に従っ
て並ぶフォーマットであるから、T○Cフォーマットか
らa、outフォーマットへの変換は比較的簡単である
。第5図には、a、outモジュ−ル・フォーマットが
示されている。a、outモジュールのフォーマットに
は、ヘッダ・セクション31、テキストと呼ばれるリー
ド・オンリー・コードのセクション32、データと呼ば
れるリード・ライト・データのセクション33、テキス
ト・リロケート・セクション34データ、リロケート・
セクション35、シンボル・テーブル・セクション36
、行番号テーブル・セクション37、およびストリング
・テーブル・セクション38が含まれる。これらは、す
べて、上記”IBM RTP CAdvanced
Interactive ExecutiveOper
atirg System A I X Operat
ing SystemTechnical Refer
ence Manual”の第4章に詳しく説明されて
いる。a、outモジュール・フォーマットからTOC
モジュール・フォーマットへの変換は既に知られている
。I B M Technical Disclosu
re Bulletin、 Vol、 29、N092
.1986年7月、880〜881ページを参照された
い。
も一連のセクションがプログラム中の命令の機能に従っ
て並ぶフォーマットであるから、T○Cフォーマットか
らa、outフォーマットへの変換は比較的簡単である
。第5図には、a、outモジュ−ル・フォーマットが
示されている。a、outモジュールのフォーマットに
は、ヘッダ・セクション31、テキストと呼ばれるリー
ド・オンリー・コードのセクション32、データと呼ば
れるリード・ライト・データのセクション33、テキス
ト・リロケート・セクション34データ、リロケート・
セクション35、シンボル・テーブル・セクション36
、行番号テーブル・セクション37、およびストリング
・テーブル・セクション38が含まれる。これらは、す
べて、上記”IBM RTP CAdvanced
Interactive ExecutiveOper
atirg System A I X Operat
ing SystemTechnical Refer
ence Manual”の第4章に詳しく説明されて
いる。a、outモジュール・フォーマットからTOC
モジュール・フォーマットへの変換は既に知られている
。I B M Technical Disclosu
re Bulletin、 Vol、 29、N092
.1986年7月、880〜881ページを参照された
い。
換言すると、第5図のモジュールは8個の物理的なセク
ションつまりロケーション31〜38を=24− 持っている。8個のセクションのそれぞれには命令があ
る。1個のセクションに含まれる命令群はコンピュータ
上である機能を実行する。すなわち、各セクションには
、ある特定の機能を実行するのに必要な命令が含まれて
いる。例えば、セクション37には、行番号テーブルを
形成し処理するのに必要な命令が含まれている。
ションつまりロケーション31〜38を=24− 持っている。8個のセクションのそれぞれには命令があ
る。1個のセクションに含まれる命令群はコンピュータ
上である機能を実行する。すなわち、各セクションには
、ある特定の機能を実行するのに必要な命令が含まれて
いる。例えば、セクション37には、行番号テーブルを
形成し処理するのに必要な命令が含まれている。
第6図には、第4図に示されるTOCオブジェクト・モ
ジュールから第5図に示されるa、outオブジェクト
・モジュールへの変換が示されている。
ジュールから第5図に示されるa、outオブジェクト
・モジュールへの変換が示されている。
まず、ステップ40では、TOCオブジェクト・ファイ
ル・モジュールが読み込まれる。次に、ステップ41で
は、テキスト・セクションとデータ・セクションの両方
について、起点アドレス(絶対ロード・アドレス)がセ
ットされる。次に、ステップ42では、テキスト(コー
ド)およびデータの両方が、上記起点(origin)
の形で特定される量だけリロケートされる。このリロケ
ート・ステップの際に、a、outモジュールのりロケ
ーション(RLD)、シンボル・テーブル、オプショナ
ルな行番号テーブル、およびストリング・テーブルが作
成される。次に、ステップ43では、先行ステップで作
成された後続のa、outモジュール・セクションにつ
いての長さの情報を書き入れることによって、a、ou
tヘッダが生成される。
ル・モジュールが読み込まれる。次に、ステップ41で
は、テキスト・セクションとデータ・セクションの両方
について、起点アドレス(絶対ロード・アドレス)がセ
ットされる。次に、ステップ42では、テキスト(コー
ド)およびデータの両方が、上記起点(origin)
の形で特定される量だけリロケートされる。このリロケ
ート・ステップの際に、a、outモジュールのりロケ
ーション(RLD)、シンボル・テーブル、オプショナ
ルな行番号テーブル、およびストリング・テーブルが作
成される。次に、ステップ43では、先行ステップで作
成された後続のa、outモジュール・セクションにつ
いての長さの情報を書き入れることによって、a、ou
tヘッダが生成される。
ここで(ステップ44)、上記緒ステップを経て生成さ
れたa、outオブジェクト・ファイルの要素が、第5
図に記したフォーマットのa、outオブジェクト・モ
ジュール・ファイルへ出力される。
れたa、outオブジェクト・ファイルの要素が、第5
図に記したフォーマットのa、outオブジェクト・モ
ジュール・ファイルへ出力される。
これで、変換が完了する。
E、効果
本発明によれば、既存のリース・プログラムからターゲ
ット・コンピュータ・システムの要求するフォーマット
を持つオブジェクト・モジュールを生成する全く新規な
コンパイラを開発する手間をかけずに、既存のソース・
プログラムからターゲット・コンピュータ・システム上
で実行可能かつロード可能なオブジェクト・モジュール
を生成することができる。
ット・コンピュータ・システムの要求するフォーマット
を持つオブジェクト・モジュールを生成する全く新規な
コンパイラを開発する手間をかけずに、既存のソース・
プログラムからターゲット・コンピュータ・システム上
で実行可能かつロード可能なオブジェクト・モジュール
を生成することができる。
第1図は、コンパイラ・プログラムによって、ソース・
プログラムから第1のフォーマットを持つプログラム・
オブジェクト・モジュールが生成される手順を示すフロ
ー・チャートである。 第2図は、第1図の手続に関係する操作のうち、第1図
のコンパイラが、選択された、つまりターゲット・マシ
ン上で個々の命令が実行可能となるように、命令出力を
オブジェクト・モジュールの形に作り変える手順を詳細
に説明するフロー・チャートである。 第3図は、第1のフォーマットを持つプログラム・オブ
ジェクト・モジュールから第2のフォーマットを持つプ
ログラム・オブジェクト・モジュールへの変換の概要を
示すフロー・チャーj〜である。 第4図は、第3図の変換ステップの第1段階、つまり第
1のフォーマットを持つプログラム・オブジェクト・モ
ジュールからTOC(目録)フォーマットを持つプログ
ラム・オブジェクト・モジュールへの変換に関係する操
作のフロー・チャートである。 第5図は、典型的なa、outオブジェクト・モジュー
ル・フォーマットを表すした説明図である。 第6図は、TOCオブジェクト・モジュールがら実施例
のコンピュータが必要とするa、outオブジェクト・
モジュールへの変換に関係する操作のフロー・チャート
である。 出願人 インターナショナル・ビジネス・マシーンズ
・コーポレーション 代理人 弁理士 頓 宮 孝 −(外1名) A、OUTオヲ゛ジ′エクト モジューjしFIG、
6
プログラムから第1のフォーマットを持つプログラム・
オブジェクト・モジュールが生成される手順を示すフロ
ー・チャートである。 第2図は、第1図の手続に関係する操作のうち、第1図
のコンパイラが、選択された、つまりターゲット・マシ
ン上で個々の命令が実行可能となるように、命令出力を
オブジェクト・モジュールの形に作り変える手順を詳細
に説明するフロー・チャートである。 第3図は、第1のフォーマットを持つプログラム・オブ
ジェクト・モジュールから第2のフォーマットを持つプ
ログラム・オブジェクト・モジュールへの変換の概要を
示すフロー・チャーj〜である。 第4図は、第3図の変換ステップの第1段階、つまり第
1のフォーマットを持つプログラム・オブジェクト・モ
ジュールからTOC(目録)フォーマットを持つプログ
ラム・オブジェクト・モジュールへの変換に関係する操
作のフロー・チャートである。 第5図は、典型的なa、outオブジェクト・モジュー
ル・フォーマットを表すした説明図である。 第6図は、TOCオブジェクト・モジュールがら実施例
のコンピュータが必要とするa、outオブジェクト・
モジュールへの変換に関係する操作のフロー・チャート
である。 出願人 インターナショナル・ビジネス・マシーンズ
・コーポレーション 代理人 弁理士 頓 宮 孝 −(外1名) A、OUTオヲ゛ジ′エクト モジューjしFIG、
6
Claims (1)
- 【特許請求の範囲】 ソース・プログラムからターゲット・コンピュータ・シ
ステム用のオブジェクト・モジュールを生成する方法で
あって、 上記ソース・プログラムから上記ターゲット・コンピュ
ータ・システムとは異なる既存のコンピュータ・システ
ムで用いられる命令が上記既存のコンピュータ・システ
ムにロード可能な第1のフォーマットで配列されている
オブジェクト・モジュールを生成する既存の第1のコン
パイル手段に修正を加えることにより、上記ソース・プ
ログラムから上記ターゲット・コンピュータ・システム
で用いられる命令が上記第1のフォーマットで配列され
ているオブジェクト・モジュールを生成する第2のコン
パイル手段を作成し、 上記第2のコンパイル手段を用いて、上記ソース・プロ
グラムから上記ターゲット・コンピュータ・システムで
用いられる命令が上記第1のフォーマットで配列されて
いるオブジェクト・モジュールを生成し、 上記オブジェクト・モジュールのフォーマットを上記タ
ーゲット・コンピュータ・システムにロード可能な第2
のフォーマットに変換する ことを特徴とするオブジェクト・モジュールの生成方法
。
Applications Claiming Priority (2)
| Application Number | Priority Date | Filing Date | Title |
|---|---|---|---|
| US14412 | 1987-02-13 | ||
| US07/014,412 US4791558A (en) | 1987-02-13 | 1987-02-13 | System and method for generating an object module in a first format and then converting the first format into a format which is loadable into a selected computer |
Publications (2)
| Publication Number | Publication Date |
|---|---|
| JPS63201834A true JPS63201834A (ja) | 1988-08-19 |
| JPH0778741B2 JPH0778741B2 (ja) | 1995-08-23 |
Family
ID=21765329
Family Applications (1)
| Application Number | Title | Priority Date | Filing Date |
|---|---|---|---|
| JP62315461A Expired - Fee Related JPH0778741B2 (ja) | 1987-02-13 | 1987-12-15 | オブジエクト・モジユール生成方法 |
Country Status (4)
| Country | Link |
|---|---|
| US (1) | US4791558A (ja) |
| JP (1) | JPH0778741B2 (ja) |
| BR (1) | BR8800329A (ja) |
| CA (1) | CA1290067C (ja) |
Cited By (1)
| Publication number | Priority date | Publication date | Assignee | Title |
|---|---|---|---|---|
| JP2014531680A (ja) * | 2011-10-03 | 2014-11-27 | インターナショナル・ビジネス・マシーンズ・コーポレーションInternational Business Machines Corporation | デコード時間命令最適化を用いた、強化されたアプリケーション・バイナリ・インターフェース(abi)のためのコードのコンパイル |
Families Citing this family (86)
| Publication number | Priority date | Publication date | Assignee | Title |
|---|---|---|---|---|
| US5142681A (en) * | 1986-07-07 | 1992-08-25 | International Business Machines Corporation | APL-to-Fortran translators |
| JP2516387Y2 (ja) * | 1987-08-19 | 1996-11-06 | 三洋電機株式会社 | 情報ファイル装置 |
| US4961133A (en) * | 1987-11-06 | 1990-10-02 | Visystems, Inc. | Method for providing a virtual execution environment on a target computer using a virtual software machine |
| US5067072A (en) * | 1987-11-06 | 1991-11-19 | Visystems, Inc. | Virtual software machine which preprocesses application program to isolate execution dependencies and uses target computer processes to implement the execution dependencies |
| JPH01277934A (ja) * | 1988-04-29 | 1989-11-08 | Nec Corp | パラメータリスト参照方法の切換え方式 |
| US5117496A (en) * | 1988-05-23 | 1992-05-26 | Hewlett-Packard Company | Method for recording and replaying mouse commands by recording the commands and the identities of elements affected by the commands |
| US5261103A (en) * | 1988-09-12 | 1993-11-09 | Hitachi, Ltd. | Method of and system for compiling source program |
| US5345587A (en) | 1988-09-14 | 1994-09-06 | Digital Equipment Corporation | Extensible entity management system including a dispatching kernel and modules which independently interpret and execute commands |
| US5230049A (en) * | 1988-11-29 | 1993-07-20 | International Business Machines Corporation | Program source code translator |
| US5313614A (en) * | 1988-12-06 | 1994-05-17 | At&T Bell Laboratories | Method and apparatus for direct conversion of programs in object code form between different hardware architecture computer systems |
| CA2002201C (en) * | 1988-12-06 | 1999-04-27 | John Charles Goettelmann | Translation technique |
| US5119465A (en) * | 1989-06-19 | 1992-06-02 | Digital Equipment Corporation | System for selectively converting plurality of source data structures through corresponding source intermediate structures, and target intermediate structures into selected target structure |
| JPH03149614A (ja) * | 1989-08-31 | 1991-06-26 | Univ California | 情報処理システム及び記憶処理方法 |
| EP0423989A3 (en) * | 1989-10-16 | 1992-09-23 | Hewlett-Packard Company | Software compiler and linker with improved line number table |
| EP0429252B1 (en) * | 1989-11-17 | 1998-01-14 | Digital Equipment Corporation | System and method for storing firmware in relocatable format |
| US5109504A (en) * | 1989-12-29 | 1992-04-28 | Texas Instruments Incorporated | Graphics program adaptor |
| US5423023A (en) * | 1990-06-25 | 1995-06-06 | Prime Computer, Inc. | Method and apparatus for providing a user configurable system which integrates and manages a plurality of different task and software tools |
| US5297285A (en) * | 1991-07-23 | 1994-03-22 | Telefonaktiebolaget L M Ericsson | System for dynamically linking modular portions of computer software |
| US5530866A (en) * | 1991-07-30 | 1996-06-25 | Tera Computer Company | Register allocation methods having upward pass for determining and propagating variable usage information and downward pass for binding; both passes utilizing interference graphs via coloring |
| US5396417A (en) * | 1991-11-01 | 1995-03-07 | Capitol Cities/Abc, Inc. | Product distribution equipment and method |
| US5365606A (en) * | 1991-11-27 | 1994-11-15 | Visystems, Inc. | Virtual software machine running multiple program modules in a single address space of a target computer |
| EP0546682A3 (en) * | 1991-12-12 | 1993-12-08 | Ibm | Parent class shadowing |
| US5361350A (en) * | 1991-12-12 | 1994-11-01 | International Business Machines Corporation | Object oriented method management system and software for managing class method names in a computer system |
| US5421016A (en) * | 1991-12-12 | 1995-05-30 | International Business Machines Corporation | System and method for dynamically invoking object methods from an application designed for static method invocation |
| CA2077273C (en) * | 1991-12-12 | 1996-12-03 | Mike H. Conner | Language neutral objects |
| JPH05257664A (ja) * | 1991-12-12 | 1993-10-08 | Internatl Business Mach Corp <Ibm> | バージョン独立のオブジェクト指向アプリケーション・プログラムを生成するシステム及び方法 |
| DE69231176T2 (de) * | 1991-12-23 | 2000-11-23 | Microsoft Corp., Redmond | Verfahren zum Integrieren eines diskreten Unterprogramms in ein Hauptprogramm |
| WO1993023817A1 (en) * | 1992-05-08 | 1993-11-25 | Release Management Systems (Rms) | Data interchange system |
| US5469572A (en) * | 1992-12-01 | 1995-11-21 | Taylor; James M. | Post compile optimizer for linkable object code |
| US5740405A (en) * | 1992-12-17 | 1998-04-14 | Microsoft Corporation | Method and system for providing data compatibility between different versions of a software program |
| US5715460A (en) * | 1993-06-14 | 1998-02-03 | International Business Machine Corp. | Template based facility for formatting compiler output |
| US5842205A (en) * | 1993-12-02 | 1998-11-24 | Vie Systems, Inc. | Method and process of inter-machine communication and generalized method for program preparation therefor |
| US5774644A (en) * | 1993-12-17 | 1998-06-30 | International Business Machines Corporation | Method and apparatus for generating a pair of interoperating communications programs |
| JPH07271777A (ja) * | 1994-03-31 | 1995-10-20 | Fujitsu Ltd | 分散情報処理システムにおける文字コード管理方式 |
| WO1995029440A1 (en) * | 1994-04-21 | 1995-11-02 | British Telecommunications Public Limited Company | Interface device and method |
| US5627997A (en) * | 1994-06-07 | 1997-05-06 | Microsoft Corporation | Method and system for converting computer mail messages using an extensible set of conversion routines |
| US5619685A (en) * | 1994-11-04 | 1997-04-08 | Ball Corporation | Run-time dynamically adaptive computer process for facilitating communication between computer programs |
| US5640558A (en) * | 1995-05-31 | 1997-06-17 | International Business Machines Corporation | Identifying and analyzing multiple level class relationships in an object oriented system by parsing source code without compilation |
| JP3201716B2 (ja) * | 1996-02-22 | 2001-08-27 | シャープ株式会社 | コンピュータ装置 |
| BR9713267A (pt) | 1996-10-25 | 2004-06-15 | Schlumberger Systems & Service | Cartão de circuito integrado para uso com um terminal, processo para uso com o mesmo, microcontrolador e processo para sua programação |
| US5875336A (en) * | 1997-03-31 | 1999-02-23 | International Business Machines Corporation | Method and system for translating a non-native bytecode to a set of codes native to a processor within a computer system |
| US6960133B1 (en) | 2000-08-28 | 2005-11-01 | Igt | Slot machine game having a plurality of ways for a user to obtain payouts based on selection of one or more symbols (power pays) |
| US5920721A (en) * | 1997-06-11 | 1999-07-06 | Digital Equipment Corporation | Compiler generating functionally-alike code sequences in an executable program intended for execution in different run-time environments |
| WO1999012094A1 (de) | 1997-09-01 | 1999-03-11 | Siemens Nixdorf Informationssysteme Ag | Verfahren zum umsetzen eines objektcodes in einen programmcode |
| US6105033A (en) * | 1997-12-29 | 2000-08-15 | Bull Hn Information Systems Inc. | Method and apparatus for detecting and removing obsolete cache entries for enhancing cache system operation |
| US6128628A (en) * | 1998-02-27 | 2000-10-03 | Mci Communication Corporation | Meta data processing for converting performance data into a generic format |
| US6453356B1 (en) | 1998-04-15 | 2002-09-17 | Adc Telecommunications, Inc. | Data exchange system and method |
| US6208345B1 (en) | 1998-04-15 | 2001-03-27 | Adc Telecommunications, Inc. | Visual data integration system and method |
| US6578194B1 (en) * | 1999-09-08 | 2003-06-10 | International Business Machines Corporation | System and method using extended relocation types and operations in relocating operations |
| GB2362969B (en) * | 2000-05-31 | 2004-09-22 | Ibm | Message transformation selection tool and method |
| US6769985B1 (en) * | 2000-05-31 | 2004-08-03 | Igt | Gaming device and method for enhancing the issuance or transfer of an award |
| US7699699B2 (en) | 2000-06-23 | 2010-04-20 | Igt | Gaming device having multiple selectable display interfaces based on player's wagers |
| US7695363B2 (en) | 2000-06-23 | 2010-04-13 | Igt | Gaming device having multiple display interfaces |
| US6731313B1 (en) | 2000-06-23 | 2004-05-04 | Igt | Gaming device having touch activated alternating or changing symbol |
| US6935955B1 (en) | 2000-09-07 | 2005-08-30 | Igt | Gaming device with award and deduction proximity-based sound effect feature |
| US6739973B1 (en) | 2000-10-11 | 2004-05-25 | Igt | Gaming device having changed or generated player stimuli |
| US7040983B2 (en) | 2001-03-21 | 2006-05-09 | Igt | Gaming device having a multi-round, multi-characteristic matching game |
| US6749502B2 (en) | 2001-03-21 | 2004-06-15 | Igt | Gaming device having a multi-characteristic matching game |
| US7165054B2 (en) * | 2001-09-14 | 2007-01-16 | Knowledgextensions, Inc. | Custom electronic learning system and method |
| US7901291B2 (en) | 2001-09-28 | 2011-03-08 | Igt | Gaming device operable with platform independent code and method |
| US7708642B2 (en) | 2001-10-15 | 2010-05-04 | Igt | Gaming device having pitch-shifted sound and music |
| US6848996B2 (en) | 2001-10-15 | 2005-02-01 | Igt | Gaming device with sound recording changes associated with player inputs |
| US7666098B2 (en) | 2001-10-15 | 2010-02-23 | Igt | Gaming device having modified reel spin sounds to highlight and enhance positive player outcomes |
| US7092869B2 (en) * | 2001-11-14 | 2006-08-15 | Ronald Hilton | Memory address prediction under emulation |
| US20030093774A1 (en) * | 2001-11-14 | 2003-05-15 | Ronald Hilton | State-specific variants of translated code under emulation |
| US7228529B2 (en) | 2002-08-27 | 2007-06-05 | International Business Machines Corporation | Restructuring computer programs |
| WO2004084098A2 (en) * | 2003-03-17 | 2004-09-30 | Robert Dant | Database identification system |
| US7789748B2 (en) | 2003-09-04 | 2010-09-07 | Igt | Gaming device having player-selectable music |
| US7105736B2 (en) | 2003-09-09 | 2006-09-12 | Igt | Gaming device having a system for dynamically aligning background music with play session events |
| US20050065937A1 (en) * | 2003-09-22 | 2005-03-24 | International Business Machines Corporation | Virtual resources method, system, and service |
| US7585219B2 (en) * | 2004-09-30 | 2009-09-08 | Igt | Gaming device having a matching symbol game |
| US8043155B2 (en) | 2004-10-18 | 2011-10-25 | Igt | Gaming device having a plurality of wildcard symbol patterns |
| CN100442234C (zh) * | 2005-06-21 | 2008-12-10 | 国际商业机器公司 | 用于嵌入式系统的软件包构建方法和系统 |
| US7792666B2 (en) * | 2006-05-03 | 2010-09-07 | Sony Computer Entertainment Inc. | Translation block invalidation prehints in emulation of a target system on a host system |
| US20070234316A1 (en) * | 2006-03-07 | 2007-10-04 | Sap Ag | Methods and systems for development of software for complex systems |
| US8060356B2 (en) | 2007-12-19 | 2011-11-15 | Sony Computer Entertainment Inc. | Processor emulation using fragment level translation |
| US7991915B2 (en) * | 2008-05-05 | 2011-08-02 | Sentilla Corporation | Software platform for radio network |
| US8591308B2 (en) | 2008-09-10 | 2013-11-26 | Igt | Gaming system and method providing indication of notable symbols including audible indication |
| CN102902568B (zh) * | 2011-07-27 | 2016-08-17 | 国际商业机器公司 | 一种用于处理应用程序的内容表访问溢出的方法和系统 |
| EP2610739B1 (en) * | 2011-12-29 | 2017-09-27 | Software AG | Method and system for executing a 3GL program and / or an assembler program within a 4GL runtime environment |
| US8460090B1 (en) | 2012-01-20 | 2013-06-11 | Igt | Gaming system, gaming device, and method providing an estimated emotional state of a player based on the occurrence of one or more designated events |
| US9245407B2 (en) | 2012-07-06 | 2016-01-26 | Igt | Gaming system and method that determines awards based on quantities of symbols included in one or more strings of related symbols displayed along one or more paylines |
| US8740689B2 (en) | 2012-07-06 | 2014-06-03 | Igt | Gaming system and method configured to operate a game associated with a reflector symbol |
| US9192857B2 (en) | 2013-07-23 | 2015-11-24 | Igt | Beat synchronization in a game |
| US9947170B2 (en) | 2015-09-28 | 2018-04-17 | Igt | Time synchronization of gaming machines |
| JP6780576B2 (ja) * | 2017-04-27 | 2020-11-04 | トヨタ自動車株式会社 | 解析手法提示システム、方法及びプログラム |
Citations (1)
| Publication number | Priority date | Publication date | Assignee | Title |
|---|---|---|---|---|
| JPS5025144A (ja) * | 1973-02-13 | 1975-03-17 |
Family Cites Families (1)
| Publication number | Priority date | Publication date | Assignee | Title |
|---|---|---|---|---|
| US4536840A (en) * | 1982-09-30 | 1985-08-20 | Ronald Borta | Autogrammer |
-
1987
- 1987-02-13 US US07/014,412 patent/US4791558A/en not_active Expired - Lifetime
- 1987-12-15 JP JP62315461A patent/JPH0778741B2/ja not_active Expired - Fee Related
-
1988
- 1988-01-15 CA CA000556676A patent/CA1290067C/en not_active Expired - Lifetime
- 1988-01-20 BR BR8800329A patent/BR8800329A/pt not_active Application Discontinuation
Patent Citations (1)
| Publication number | Priority date | Publication date | Assignee | Title |
|---|---|---|---|---|
| JPS5025144A (ja) * | 1973-02-13 | 1975-03-17 |
Cited By (1)
| Publication number | Priority date | Publication date | Assignee | Title |
|---|---|---|---|---|
| JP2014531680A (ja) * | 2011-10-03 | 2014-11-27 | インターナショナル・ビジネス・マシーンズ・コーポレーションInternational Business Machines Corporation | デコード時間命令最適化を用いた、強化されたアプリケーション・バイナリ・インターフェース(abi)のためのコードのコンパイル |
Also Published As
| Publication number | Publication date |
|---|---|
| US4791558A (en) | 1988-12-13 |
| BR8800329A (pt) | 1988-09-13 |
| JPH0778741B2 (ja) | 1995-08-23 |
| CA1290067C (en) | 1991-10-01 |
Similar Documents
| Publication | Publication Date | Title |
|---|---|---|
| JPS63201834A (ja) | オブジエクト・モジユール生成方法 | |
| US7162709B2 (en) | System and method for common code generation | |
| US5815719A (en) | Method and apparatus for easy insertion of assembler code for optimization | |
| US20030088860A1 (en) | Compiler annotation for binary translation tools | |
| JPH11110194A (ja) | 外部ライブラリ関数との結合方法ならびに同方法がプログラムされ記録される記録媒体 | |
| US6934940B2 (en) | Source code transformation-temporary object reduction | |
| CN113687833B (zh) | 混合编译方法、混合编译系统、编译器及存储介质 | |
| US20150020051A1 (en) | Method and apparatus for automated conversion of software applications | |
| CN116627429B (zh) | 一种汇编代码生成方法、装置及电子设备和存储介质 | |
| US7080370B1 (en) | Method and apparatus for compiling source programs using one or more libraries | |
| JP2010515955A (ja) | メインフレームシステムのアプリケーションプログラムを開放型システムに適したアプリケーションプログラムに変換するマイグレイション装置及びその方法 | |
| EP0348563B1 (en) | A system and method for generating program object modules | |
| JP3266097B2 (ja) | 非リエントラントプログラムの自動リエントラント化方法及びシステム | |
| JPH04286029A (ja) | ソースプログラム・コンバータ | |
| JP2019179383A (ja) | Api処理方法、端末、api処理プログラム | |
| US7774767B2 (en) | System and method for compiler interprocedural optimization having support for object files in libraries | |
| CN119847605B (zh) | 一种区块链智能合约的指令扩充管理方法 | |
| JP2000207226A (ja) | コ―ド最適化装置、言語処理装置及びコ―ド最適化方法 | |
| JP2958386B2 (ja) | 計算機システム | |
| JPH11154093A (ja) | プログラムコンパイラ及びコンパイラ用プログラムを記録した記録媒体 | |
| JP3323147B2 (ja) | コンパイル装置、コンパイル方法およびコンパイラプログラムを記録した記録媒体 | |
| US20030167357A1 (en) | Enhancement of source code for execution on a computer platform that has a capability of employing a memory file | |
| US6311184B1 (en) | Sort and merge functions with input and output procedures | |
| US7743371B1 (en) | System and method for dynamically loading object modules | |
| JPS5924348A (ja) | コンパイル処理方式 |
Legal Events
| Date | Code | Title | Description |
|---|---|---|---|
| LAPS | Cancellation because of no payment of annual fees |