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
Application number
JP62315461A
Other languages
English (en)
Other versions
JPH0778741B2 (ja
Inventor
グレゴリイー・ジヨン・チエイテイン
クリイフオード・ホーマー・ホーエツヂランド
マーク・ジヨエル・ステイーヴンソン
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.)
International Business Machines Corp
Original Assignee
International Business Machines Corp
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 International Business Machines Corp filed Critical International Business Machines Corp
Publication of JPS63201834A publication Critical patent/JPS63201834A/ja
Publication of JPH0778741B2 publication Critical patent/JPH0778741B2/ja
Anticipated expiration legal-status Critical
Expired - Fee Related legal-status Critical Current

Links

Classifications

    • GPHYSICS
    • G06COMPUTING OR CALCULATING; COUNTING
    • G06FELECTRIC DIGITAL DATA PROCESSING
    • G06F8/00Arrangements for software engineering
    • G06F8/40Transformation of program code
    • G06F8/52Binary 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ンピュータにロード可
能なフォーマットで配列されていなければならない。
新型コンピュータの求める命令配列フォーマットと同じ
フォーマットで命令が並んでいるプログラム・オブジェ
クト・モジュールを受は付゛け、かつ処理する既存のコ
ンピュータが存在するとともに、この既存のコンピュー
タのための所望のプログラム用のコンパイラが入手でき
るならば、コンパイラに変更を加えて新型コンピュータ
のための所望のプログラム・オブジェクト・コードを生
成させることは、通常、比較的簡単な仕事である。
しかしながら、既存のコンピュータ用の広範囲の種類の
プログラムのためのプログラム・コンパイラでは、新し
く開発された選択されたコンピュータに読込可能、つま
りロード可能であるために必要とされるフォーマットと
は全く異なるフォーマットの命令を持つオブジェクト・
モジュールしか生成できないことが非常に多い。これは
、特に、既存の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章に掲載されてい
る。
上記のような最近の所望のタイプのパーソナル・コンピ
ュータの要求するオブジェクト・モジュールにおける命
令フォーマットが既存の8370プログラミングのオブ
ジェクト・モジュールにおける命令フォーマットと全く
違うので、従来のアプローチによれば、市場に参入する
新型のパーソナル・コンピュータ上で使用することを希
望する5370用の各ソース・プログラム毎に新しいコ
ンパイラを開発することになるであろう。もちろん、こ
のようなことをすると、かなりの時間とコストを費すこ
とになるであろう。
C0問題点を解決するための手段 本発明は、新規なコンピュータにロード可能となるため
に必要とされるオブジェクト・モジュールにおける命令
のフォーマットが、既存のコンパイラによって生成可能
なオブジェクト・モジュールにおける命令のフォーマッ
トと全く違う場合でも、既存のプログラムを新規なマシ
ン上で実行可能とするために全く新たなコンパイラを開
発しなくてもよい、という認識に立っている。
本発明は、プログラム・ソースから選択されたコンピユ
ーテイング・システム用のプログラム・オブジェクト・
モジュールを生成するシステムであって、上記プログラ
ム・ソースからオブジェクト・モジュールをコンパイル
するコンパイル手段を備えるものに関する。上記コンパ
イル手段の生成するオブジェクト・モジュールが備える
命令は、上記コンピユーテイング・システムにおいて個
々に実行可能ではあるが、上記コンピユーテイング・シ
ステムにロード可能ではない第1のフォーマツで配列さ
れている。そこで、本発明では、上記第1の命令フォー
マットを上記コンピユーテイング・システムにロード可
能な第2のフォーマットへ変換する手段も備える。
換言すれば、既存のコンパイラであってもよいコンパイ
ル手段に若干の変更を加えて、上記新たなコンピユーテ
イング・システム用の命令、つまり上記コンピユーテイ
ング・システムによって実行可能な命令を備えたオブジ
ェクト・モジュールを生成可能にする。ただし、このオ
ブジェクト・モジュールの命令は、上記新たなコンピユ
ーテイング・システムにロード可能つまり読込可能なフ
ォーマットで並べられていない。本発明では、さらに、
上記新たなコンピユーテイング・システムにロード可能
ではない第1の命令フォーマットを上記コンピユーテイ
ング・システムにロード可能な第2のフォーマットに変
換する手段が組み合わされる。その結果、生成された命
令は、上記新規なコンピュータに読込み可能で、かつ実
行可能であるから、フォーマットが変更された後では、
命令が上記新規なコンピユーテイング・システム上で実
行可能なフォーマットで並べられていることになる。
本発明は、複数のセクションからなり、その各々にはオ
ブジェクト・モジュールのプログラムにおけるある機能
(ファンクション)の実行に関連する命令が含まれるよ
うなフォーマットで、オブジェクト・モジュールの備え
る命令が並べられる、そういった最近のコンピュータ・
システム用のプログラム・オブジェクト・モジュールを
生成するのに用いると、特に有益である。本発明によれ
ば、上記システム370用オブジエクト・モジュールの
ように命令が一般的に言って組織化されていないオブジ
ェクト・モジュールを生成するコンパイラを使って、上
記のような命令が組織化されたプログラム・モジュール
を生成することができる。
本発明によれば、ソース・コードからオブジェクト・モ
ジュールをコンパイルする手段であって、そのオブジェ
クト・モジュールの備える命令は選択されたコンピュー
タにおいて個々に実行可能であるけれども、オブジェク
ト・モジュールのプログラムにおける命令の機能に無関
係な順番で命令が並んでいる、そういったオブジェクト
・モジュールを生成する手段が用いられる。この場合、
選択されたコンピュータはこのような関連づけられてい
ないフォーマットの命令群を扱うことのできないコンピ
ュータであるので、結果として生成されるオブジェクト
・モジュールは該選択されたコンピュータにロード可能
ではない。そこで、このコンパイル手段に加えて、この
第1の関連づけられていない命令フォーマットを第2の
フォーマットに変換する手段が用いられる。第2のフォ
ーマットでは、命令が複数のセクションに並べられ、各
セクションには、オブジェクト・モジュールのプログラ
ムにおけるある関連づけられた機能を実行する命令が含
まれる。かかる組織化されたフォーマットで配列された
命令は、上記選択されたコンピュータにロード可能であ
る。したがって、結果として、該選択された新たなコン
ピュータ用のオブジェクト・モジュールが得られる。
なお、ここで言う「機能(ファンクシ旦ン)」とは命令
のある特定のセットがコンピュータ上で達成しようとす
るものを指し、「セクション」とはモジュールのうちの
命令群が物理的に配置される部分を指す。
上記システムを使うことによって、広範囲のプログラム
に用いられているところの、命令が機能に無関係なフォ
ーマットで並べられるオブジェクト・モジュールを生成
できる、現在利用可能なコンパイラが依然として有用に
なる。この場合、選択されたコンピュータ用に適当な個
々の命令を生成できるように、既存のコンパイラに対し
て比較的小さな変更が加えられる。ただし、生成される
命令群のフォーマットは、プログラムにおける機能に無
関係な配列であるがゆえに該選択されたコンピュータに
ロード可能でないフォーマットのままでよい。このよう
なコンパイラ手段に加えて、該フォーマットを、命令が
機能に従ってセクションの形に組織化されたフォーマッ
ト、つまり該選択されたコンピュータにロード可能なフ
ォーマットに変換する手段が用いられる。
その結果、例えばシステム370等のために生成された
多数、そして多種類の古いプログラムおよびコンパイラ
が、本発明と組み合わせることによって、最近のパーソ
ナル・コンピュータのうちのあるもののためのオブジェ
クト・モジュールを生成するのに活用される。
本発明のより重要な面は、第1のフォーマット、つまり
上記従前の機能と無関係のフォーマットから、選択され
たコンピユーテイング・システムにロード可能な第2の
フォーマット、つまり命令が複数のセクションに分かれ
て配置され、かつ各セクションがプログラムの中の関連
づけられたある機能を実行する命令を含むフォーマット
へ変換する手段が作られると、同一の変換手段を用いて
、上記第1のフォーマットを持つ種々のオブジェクト・
モジュールを、上記第2のフォーマットを持つオブジェ
クト・モジュールへ変換できることにある。
D、実施例 本発明の実施例において用いたソース・プログラムは、
IBMコーポレーションの開発したPL。
8である。このプログラムは周知であり、そのコンポー
ネントは典型的なコンパイラのコンポーネントとともに
、例えば“I B M Journal ofRese
arch and Development” +Vo
1.27、No。
11983年5月刊、237〜246頁、特に241頁
以降に記載されている。プログラムPL。
8は広<IBMシステム370上で使われてきた。
該プログラムに関して言えば、システム370用のPL
、8コンパイラによって生成された命令は一般フオーマ
ットで並べられる。一般フオーマットは、フォーマット
の中の命令によって実行される機能に関して系新党てら
れていないと考えよい。
このようにして生成されるオブジェクト・モジュールま
たはファイルの一般フオーマットは、上記マニュアル1
1S 370 0S / V S  LinkageE
ditor Logic”第2版に記載されている。
第1図を参照するにつき、該フロー・チャートの開始点
ステップ10にあるのはPL、8ソース・プログラムで
あるとしよう。ステップ11では、構文解析器(シンタ
ックス・アナライザ)がソース・プログラムを処理する
。構文解析器は、ユーザーのプログラムを表現する入力
を読み込んで、プログラム・ステートメントの構文が正
しいか否かチェックする。次に、コンパイラは、ソース
・プログラムの中間表現である内部擬似コードを生成す
る(ステップ12)。次に、擬似コードが最適化されて
、より破約走るマシン・コードが生成される。ここで、
ステップは第2図の入口“A”へ分岐する。
後続の2ステツプで行われることを詳しく考察するため
に、本コンパイラは、上記システム370コンピユータ
をターゲットとしてPL、8プロダラムのプログラム・
オブジェクト・モジュールを生成するべく開発された既
存のコンパイラに修正を加えたものであると仮定する。
本実施例では、このオリジナルのコンパイラに修正を加
えることによって、上記AIXオペレーティング・シス
テムを備えたIBM  RT  PC(ターゲット・コ
ンピュータ)上で実行可能な命令のプログラム・オブジ
ェクト・モジュールが作られる。したがって、実行可能
命令のテーブルおよび擬似コード変換アルゴリズムが、
システム370用の既存のPL、8コンバラにおける主
な修正事項である。修正事項には、実行可能命令の新し
いテーブル、およびIBM  RT  PC用の実行可
能命令を生成するために擬似コード変換アルゴリズムに
加える一般的に言って小さな改訂が含まれることになる
第2図のステップ14では、擬似コードをターゲット・
コンピュータ上で実行可能なマシン命令に変換するため
の正しい命令オペレーション・コード(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システム上で実行可能であるから、必要なプログ
ラム・オブジェクト・モジュールを生成したことになる
ここで、第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の変換ステップを経る。
ここでは、フォーマットが上述のIEM  RTPCA
IXシステムの必要とするフォーマットへ変換される。
変換をこのように2段階で行うことにした理由は、シス
テム370用オブジエクト・モジュール・フォーマット
をTOCオブジェクト・モジュール・フォーマットへ変
換する機構が既に開発されているからである。TOCオ
ブジェクト・モジュールにおいて命令が並べられている
フォーマットは、セクションを持ち、セクションの各々
にはオブジェクト・モジュールのプログラムにおけるあ
る機能の実行に関連する命令が含まれている。したがっ
て、整理されたTOCオブジェクト・モジュール・フォ
ーマットを1′a、Out″として知られる所望のIB
M  RT  PCAIX用オブジェクト・モジュール
・フォーマットへ変換することの方が大変簡単であると
考えられる。
第4図を参照しつつ、比較的整理されていない第1のフ
ォーマットを持つプログラム・オブ・ジェクト・モジュ
ールの、上述のTOCフォーマツトを持つモジュールへ
の変換を説明する。TOCフォーマットにおいては、命
令が複数のセクションに並べられており、各セクション
にはオブジェクト・モジュールのプログラムの中のある
機能の実行に関連する命令が含まれている。
ステップ21から24までは、すべてのレコードが読み
込まれ、かつ処理されるまで繰り返される。
ステップ21では、オブジェクト・モジュールの中の命
令が、一時にルコードずつ読み込まれる。続いて、ステ
ップ22では、ESD (外部シンボル定義)が行われ
る。つまり、シンボル・レコードがあるならばシンボル
・ディクショナリの中のシンボルが、テーブル記録され
る。手続きにおいては、まずシンボルがシンボル・テー
ブルに追加され、続いてシンボルによって表わされるテ
キストまたはコードを収容するために記憶装置中に十分
なセクションが割り振られる。次に、ステップ23にお
いて、テキスト・データが記録される。ここでは、シン
ボル・エントリに対応するコ一部またはテキストが上記
振り振られた記憶装置中のセクションに置かれる。次に
、ステップ24では、RLD、つまりレコード・リロケ
ーション(再配置)・データがリロケーション・テーブ
ルに追加され、参照されるコードまたはテキストは適当
なりロケーション・アドレスによって調整される。上記
”Virtual Re5ource Manager
Technical Refernce”のAppen
dix Bの中のB6から始まるページは、このような
りロケーション・エントリがどのようにして作られが詳
しく説明している。エツセンスを述べると、ステップ2
3で記録されるテキストの量に応じて、リロケーション
・アドレスは調整される。
すべてのレコードが読み込まれて処理されると、セクシ
ョンの設けられたフォーマットで編成されたTOCオブ
ジェクト・モジュールが出力される(ステップ25)。
このフォーマットは、先頭から順に、ヘッダ・セクショ
ン26、リード・オンリー(読取専用)・セクション2
7、リード・ライト(読み書き)・セクション28、ロ
ーダ−・セクション29、およびバインダ・セクション
30を備えている。ヘッダ・セクション26には、オブ
ジェクト・モジュールを走らせるのに必要な情報が含ま
れる。リード・オンリー・セクション27には、実行可
能なオブジェクト・コードおよび定数が含まれる。リー
ド・ライト・セクション28には、モジュールのリード
・ライト・データが含まれる。ローダ−・セクション2
9には、再配置ローダ−が必要とする再配置(RLD)
情報およびシンボル(ESD)情報が含まれる。バイン
ダ・セクション30には、バインダがこのT。
Cオブジェクト・モジュールを別のTOCオブジェクト
・モジュールにバインドするのに必要とするすべての情
報である該モジュールについてのすべての再配置(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章を参照されたい。
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ページを参照された
い。
換言すると、第5図のモジュールは8個の物理的なセク
ションつまりロケーション31〜38を=24− 持っている。8個のセクションのそれぞれには命令があ
る。1個のセクションに含まれる命令群はコンピュータ
上である機能を実行する。すなわち、各セクションには
、ある特定の機能を実行するのに必要な命令が含まれて
いる。例えば、セクション37には、行番号テーブルを
形成し処理するのに必要な命令が含まれている。
第6図には、第4図に示されるTOCオブジェクト・モ
ジュールから第5図に示されるa、outオブジェクト
・モジュールへの変換が示されている。
まず、ステップ40では、TOCオブジェクト・ファイ
ル・モジュールが読み込まれる。次に、ステップ41で
は、テキスト・セクションとデータ・セクションの両方
について、起点アドレス(絶対ロード・アドレス)がセ
ットされる。次に、ステップ42では、テキスト(コー
ド)およびデータの両方が、上記起点(origin)
の形で特定される量だけリロケートされる。このリロケ
ート・ステップの際に、a、outモジュールのりロケ
ーション(RLD)、シンボル・テーブル、オプショナ
ルな行番号テーブル、およびストリング・テーブルが作
成される。次に、ステップ43では、先行ステップで作
成された後続のa、outモジュール・セクションにつ
いての長さの情報を書き入れることによって、a、ou
tヘッダが生成される。
ここで(ステップ44)、上記緒ステップを経て生成さ
れた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

Claims (1)

  1. 【特許請求の範囲】 ソース・プログラムからターゲット・コンピュータ・シ
    ステム用のオブジェクト・モジュールを生成する方法で
    あって、 上記ソース・プログラムから上記ターゲット・コンピュ
    ータ・システムとは異なる既存のコンピュータ・システ
    ムで用いられる命令が上記既存のコンピュータ・システ
    ムにロード可能な第1のフォーマットで配列されている
    オブジェクト・モジュールを生成する既存の第1のコン
    パイル手段に修正を加えることにより、上記ソース・プ
    ログラムから上記ターゲット・コンピュータ・システム
    で用いられる命令が上記第1のフォーマットで配列され
    ているオブジェクト・モジュールを生成する第2のコン
    パイル手段を作成し、 上記第2のコンパイル手段を用いて、上記ソース・プロ
    グラムから上記ターゲット・コンピュータ・システムで
    用いられる命令が上記第1のフォーマットで配列されて
    いるオブジェクト・モジュールを生成し、 上記オブジェクト・モジュールのフォーマットを上記タ
    ーゲット・コンピュータ・システムにロード可能な第2
    のフォーマットに変換する ことを特徴とするオブジェクト・モジュールの生成方法
JP62315461A 1987-02-13 1987-12-15 オブジエクト・モジユール生成方法 Expired - Fee Related JPH0778741B2 (ja)

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)

* Cited by examiner, † Cited by third party
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)

* Cited by examiner, † Cited by third party
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)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
JPS5025144A (ja) * 1973-02-13 1975-03-17

Family Cites Families (1)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
US4536840A (en) * 1982-09-30 1985-08-20 Ronald Borta Autogrammer

Patent Citations (1)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
JPS5025144A (ja) * 1973-02-13 1975-03-17

Cited By (1)

* Cited by examiner, † Cited by third party
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