JPH0460721A - オブジェクト指向言語処理方式 - Google Patents

オブジェクト指向言語処理方式

Info

Publication number
JPH0460721A
JPH0460721A JP17107490A JP17107490A JPH0460721A JP H0460721 A JPH0460721 A JP H0460721A JP 17107490 A JP17107490 A JP 17107490A JP 17107490 A JP17107490 A JP 17107490A JP H0460721 A JPH0460721 A JP H0460721A
Authority
JP
Japan
Prior art keywords
module
slot
load module
oriented language
memory
Prior art date
Legal status (The legal status is an assumption and is not a legal conclusion. Google has not performed a legal analysis and makes no representation as to the accuracy of the status listed.)
Pending
Application number
JP17107490A
Other languages
English (en)
Inventor
Mikito Sugano
幹人 菅野
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.)
Mitsubishi Electric Corp
Original Assignee
Mitsubishi Electric 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 Mitsubishi Electric Corp filed Critical Mitsubishi Electric Corp
Priority to JP17107490A priority Critical patent/JPH0460721A/ja
Publication of JPH0460721A publication Critical patent/JPH0460721A/ja
Pending legal-status Critical Current

Links

Landscapes

  • Devices For Executing Special Programs (AREA)

Abstract

(57)【要約】本公報は電子出願前の出願データであるた
め要約のデータは記録されません。

Description

【発明の詳細な説明】 〔産業上の利用分野〕 この発明はスロットで総称されるオブジェクト自体のプ
ライベートデータを持ち、メソッドで総称されるそのデ
ータの上で行われる操作の組みを持つような言語処理系
であるオブジェクト指向言語を処理するオブジェクト指
向言語処理方式に関するものである。
〔従来の技術〕
一般にオブジェクト指向言語では、継承、メソッド結合
、スロットに格納されたデータが用いられ、プログラム
が構築される。また、一つのオブジェクトを表すために
クラスと呼ばれるオブジェクトのテンプレートが導入さ
れるのが一般的であり、そのテンプレートによって作ら
れるインスタンスがオブジェクトの振舞をする。
オブジェクト指向を用いたプログラミングでは、ある一
つの機能あるいはデータをオブジェクトで表現できるの
で、高度に抽象化されたプログラミつに一限定すること
は困難である。一般にコードは較的モジュラリティを向
上させて作成することが可能である。また、デバッグ効
率も他の手続き型言語に比べて勝っている場合が多い。
第6図は、オブジェク、ト指向言語の例であり、E S
 P (Extended 5elf−contain
ed prolog)の記述例である。ESPは情報処
理学会における学会誌1988年4月の第29巻第4号
において396から401ページまでに紹介されている
言語処理系である、。第6図において17はクラス定2
義、18は継承定義、19はスロット定義、20はメソ
ッド定義、そして21はクラス内でだけ使用される局所
的な述語である。これらの記述はコンパイラによって、
静的に解析され実行コードが生成される。
多重継承を有するので、スロ7)位置を静的に決定する
とメソッド等の中でスロットがアクセスされる場合には
、そのメソッドの実行コードをI生成を行う。そのため
に、スロットのアクセスはスロットアクラスが実行され
た時にスロットの番号とオブジェクトの対応表で検索す
ることで行っている。メソッドについても同様のインプ
リメントを行っている。
第7図は、第6図をコンパイルした時のイメジを示した
ものである。22はロードモジュールの枠組み、23は
スロットアクセスのテーブル、24はメソッドテーブル
、25は局所的な述語のコンパイルドコードである。
〔発明が解決しようとする課題〕
オブジェクト指向処理系機能の実現では実行時のオーバ
ヘッドが無視できない場合が多い。メソッド呼び出しや
スロットアクセスでは実行時の検索のために通常の呼び
出しやデータアクセスより数倍遅くなる。例えば、情報
処理学会における学会誌1988年4月の第29巻第4
号において400ページに示されているような実行時オ
ーバヘッドがある。これは、゛芽ブジエクト指向言語で
プログラミングする時に生産性等の・効率を向上させる
が、最終的に完成されたプログラムにおいては、大きな
実行効率の低下を招くという問題点がある。
この発明は上記のような問題点を解決するためになされ
たもので、オブジェクト指向言語で記述され−たプログ
ラムの処理速度の向上を図れるオブジェクト指向言語処
理方式を得ることを目的とする。
〔課題を解決するための手段〕
この発明に係るオブジェクト指向言語処理方式は、オブ
ジェクト指向言語コンパイラ1の出力・であるメモリ2
上のロードモジュールのうちの高速化が必要とされるノ
ロ−トモジュールを選択するモジュール選択手段3と、
この選択されたロードモジュールから適用メソッド及び
スロット位置を検索して静的に解析するメソッド・スロ
ット解析手段4と、上記解析された適用メソッド及びス
ロット位置を得るこ、とによって再び検索を一切行わな
いでメソッド呼び出しやスロットア、クラスをするため
にロードモジ゛五−ルを変更す・るモジュール変更手段
5と、この変更を行ったロードモジュールを上記メモリ
2上へ再配置するモジュール再配置手段6とを備えたも
のである。
〔作用〕
モジュール選択手段3はオブジェクト指向言語コンパイ
ラ1の出力であるメモリ2上のロードモジュールのうち
の高速化が必要とされるロードモジュールを選択する。
メソッド・スロット解析手段4はこの選択されたロード
モジュールから適用メソッド及びスロット位置を検索し
て静的に解析す−る。ぞジュール変更手段5は、上記解
析された適−用メソッド及びスロット位置を得ることに
よって、再び検索を一切行わないでメソッド呼び出しや
スロットアクセスをするためにロードモジュールを変更
する。モジ哀−ル再配置手段6はこの変更を行った6・
−トモジュールを上記メモリ2上へ再配置する。
〔実施例〕 第1図はこの発明の一実施例に係るオブジェクト指向言
語処理方式の構成を示すブロック図である。第1図にお
いて、1はスロットで総称されるオブジェクト自体のプ
ライベートデータを持ち、メソッドで総称されるそのデ
ータの上で行われる操作の組みを持つようなオブジェク
ト指向言語をコンパイルするオブジェクト指向言語コン
パイラ、2はオブジェクト指向言語コンパイラ1の出力
であるロードモジュールMO〜Mnを格納するメモリ、
3はオブジェクト指向言語コンパイラ1の出力であるメ
モリ2上のロードモジュールMO〜Mnのうちの高速化
が必要とされるロードモジュールを選択するモジュール
選択手段、4はその選択されたロードモジュールから適
用メソッド及びスロット位置を検索して静的に解析する
メソッド・スロット解析手段、5は上記解析された適用
メソッド及びスロット位置を得ることによって再び検索
を一切行わないでメソ、ド呼び出しやスロットアクセス
をするためにロードモジュールを変更するモジュール変
更手段、6はその変更を行ったロードモジュールを上記
メモリ2上へ再配置するモジュール再配置手段である。
次に第2図に示すフローチャートを参照してこの実施例
の全体的な動作について説明する。オブジェクト指向言
語コンパイラ1の出力であるメモI72上のロードモジ
ュールMO〜Mnのうちの高速化が必要とされるロード
モジュールのいくつかをモジュール選択手段3によって
選択する(ステップSl)。次にメソッド・スロット解
析手段4は選択されたロードモジュールから継承状態、
スロット位置、及び適用メソッドを検索して静的に解析
する(ステップS2)。次にモジュール変更手段5は解
析の終了したロードモジュールを解析結果に従って変更
し、モジュール再配置手段6は新しい高速化されたロー
ドモジュールを作成しメモリ2上に再配置(再リンク)
する(ステップS3)。
次に第3図〜第5図のフローチャートを参照してこの実
施例の動作について説明する。第3図は主にモジュール
選択手段3の処理を示すフローチャート、第4図は主に
メソッド・スロット解析手段4の処理を示すフローチャ
ート、第5図は主にモジュール変更手段5の処理を示す
フローチャトである。
まずオブジェクト指向言語コンパイラ1が出力したロー
ドモジュールの高速化にあたり、どのロドモジュールを
高速化したいのかを選択する。
この時、第3図のフローチャートによるプログラムが動
作しており、モジュール選択手段3はロドモジュールを
読み込み(ステップS4)、この入力ロードモジュール
のチエツクを行って高速化の必要とするロードモジュー
ルを選択する(ステップS5)。この第3図の処理結果
が第4図のフローチャートのプログラムの入力となる。
モジュール選択手段3によって選択されたロードモジュ
ールを第4図のフローチャートに従って解析する。メソ
ッド・スロット解析手段4はそのロードモジュールの内
容を1ワードずつ読み込む(ステ・7プS6)。そして
、その内容がメソッドやスロットに参照を施す命令かど
うかをチエツクし、もし参照をする命令の場合には必要
な解析を行った後(ステップS7)、それらの解析情報
を図示しないメソッド・スロット記憶部に記憶する(ス
テップS8)。この記憶された情報がモジ1ル再配置手
段6の再リンク機能における有効なる。
次に第4図の処理で得られた情報に基づいて、ロードモ
ジュールが高速化されるように新しいロードモジュール
を再11ンクして作成する処理を第5図によって説明す
勺モジュール変更手段5によってメソッドやスロットの
参照命令を変更する(ステップS9)。この時、これら
に値しない命令は変更しない。ただし、ジャンプ命令な
どのアドレスは変更されるものであるので変更する。次
に上記変更された参照命令を新しいロードモジュルとし
てメモリ2上に書き込み作成していく(ステップ510
)。この処理を、すべての命令を書き込み終え、新しい
ロードモジュールができるまで繰り返す。最終的に生成
された新しいロードモジュールはメソッドやスロットの
参照速度が高速となり、一つのロードモジュールとなる
ので、実行した場合に高速化される。更に詳述すると上
記ステップS9の処理では、メソッド・スロット解析手
段4において解析・決定されたメソッド呼び出しやスロ
ットアクセスを変更し、検索を一切行わないでメソッド
呼び出しやスロットアクセスができるようにロードモジ
ュールを変更する。メソッド及びスロットは静的に場所
が決められたので、それらの情報を基にメソッド及びス
ロットに対してそれぞれの処理を行う。始にメソッドは
静的なメソッドのコード位置が決定できたのでその位置
のコードをCALLする命令を出すことによって検索は
不必要となる。次にスロットはこの総数が解析番こよっ
て得られるので、その個数の領域をロードモジュール上
に確保する。そして各スロットアクセスをそのロードモ
ジュール上に確保した領域をアクセスする命令に変更す
る。選択・指定されたロードモジュールをマージして命
令を変更していく過程で、メモリ2上に新しいロードモ
ジュールを作成していく。この時、指定されたロドモジ
ュールはまったく変更を受けない。
第8図は、あるオブジェクト指向言語のモデルであり、
クラスが多重継承をしている時、本方式によってどのよ
うにリンクされるかを示すものである。26はクラスA
、27はクラスB、28はクラスCの構成を示すもので
ある。各クラスとも、クラスメソッドはなく、インスタ
ンスメソッドとインスタンススロットと局所的な定義を
もっている。本方式によれば、各クラスのモジュールが
指定されることによって、継承関係がわかるので、3つ
のロードモジュールから29の一つのロードモジュール
を作成することができる。オブジェクトにはスロットの
静的な位置関係が閉包される。
これはオブジェクトがいくつ作られても同し位置関係で
ある。スロットをアクセスするときにはオブジェクトの
N番目をアクセスするコードが出力されているので高速
にスロットアクセスが行える。
次に、すべてのメソッドは静的にアドレスが決められ、
通常のCALL命令のように呼び出しが行えるようにな
っている。
以上説明したように上記実施例においては、オブジェク
ト指向言語で記述されたプログラムを指定することによ
って、メソッド呼び出しと、スロットアクセスをすべて
の継承関係から解析し静的にメソッドのコードアドレス
とスロットの位置を算出し、プログラムのロードモジュ
ール自体を、それらによって変更しさらに高速に動作す
るようなロードモジュールを作成する。
〔発明の効果〕
以上のように本発明によれば、既にコンパイルされたプ
ログラムをロードモジュールとして指定し、この指定さ
れたロードモジュール内の適用メソッドの検索とスロッ
ト位置の検索を静的に解析・決定し、この指定されたロ
ードモジュールにおいて上記解析・決定されたメソッド
呼び出しやスロットアクセスを、変更・検索を一切行わ
ないでメソッド呼び出しやスロットアクセスができるよ
うに変更し、これらの変更を行ったロードモジュールを
メモリ上へ再配置するようにしたので、オブジェクト指
向言語で記述されたプログラムの処理速度が向上すると
いう効果が得られる。特に、オブジェクト指向言語によ
ってlプログラミングされ、デバッグする必要のない完
成されたプログラムの実行効率が向上するという効果が
得られる。
【図面の簡単な説明】
第1図はこの発明の一実施例に係るオブジェクト指向言
語処理方式の構成を示すブロック図、第2図はこの実施
例の全体的な処理を示すフローチャート、第3図は主に
第1図中のモジュール選択手段の処理を示すフローチャ
ート、第4図は主に第1図中のメソッド・スロット解析
手段の処理を示すフローチャート、第5図は主に第1図
中のモジュール再配置手段の処理を示すフローヂャ−1
・、第6図はオブジェクト指向言語の一例を示す図、第
7図はオブジェクト指向言語をコンパイルした時のイメ
ージの一例を示す図、第8図はあるオブジェクト指向言
語のモデルを示す図である。 1・・・オブジェクト指向言語コンパイラ、2・・・メ
モリ、3・・・モジュール選択手段、4・・・メソッド
・スロット解析手段、5・・・モジュール変更手段、6
・・・モジュール再配置手段、M O−M n・・・ロ
ードモジュール。

Claims (1)

    【特許請求の範囲】
  1. スロットで総称されるオブジェクト自体のプライベート
    データを持ち、メソッドで総称されるそのデータの上で
    行われる操作の組みを持つような言語処理系であるオブ
    ジェクト指向言語を処理するオブジェクト指向言語処理
    方式において、オブジェクト指向言語コンパイラの出力
    であるメモリ上のロードモジュールのうちの高速化が必
    要とされるコードモジュールを選択するモジュール選択
    手段と、この選択されたロードモジュールから適用メソ
    ッド及びスロット位置を検索して静的に解析するメソッ
    ド・スロット解析手段と、上記解析された適用メソッド
    及びスロット位置を得ることによって再び検索を一切行
    わないでメソッド呼び出しやスロットアクセスをするた
    めにロードモジュールを変更するモジュール変更手段と
    、この変更を行ったロードモジュールを上記メモリ上へ
    再配置するモジュール再配置手段とを備えたことを特徴
    とするオブジェクト指向言語処理方式。
JP17107490A 1990-06-28 1990-06-28 オブジェクト指向言語処理方式 Pending JPH0460721A (ja)

Priority Applications (1)

Application Number Priority Date Filing Date Title
JP17107490A JPH0460721A (ja) 1990-06-28 1990-06-28 オブジェクト指向言語処理方式

Applications Claiming Priority (1)

Application Number Priority Date Filing Date Title
JP17107490A JPH0460721A (ja) 1990-06-28 1990-06-28 オブジェクト指向言語処理方式

Publications (1)

Publication Number Publication Date
JPH0460721A true JPH0460721A (ja) 1992-02-26

Family

ID=15916540

Family Applications (1)

Application Number Title Priority Date Filing Date
JP17107490A Pending JPH0460721A (ja) 1990-06-28 1990-06-28 オブジェクト指向言語処理方式

Country Status (1)

Country Link
JP (1) JPH0460721A (ja)

Similar Documents

Publication Publication Date Title
US5586328A (en) Module dependency based incremental compiler and method
JPH06103463B2 (ja) コード生成方法
JPH06266563A (ja) 複数同時オブジェクト・バージョンをサポートする効率的ルータ
JP2001147819A (ja) 最適化装置および記録媒体
US5062039A (en) Sharing of workspaces in interactive processing using workspace name tables for linking of workspaces
Blagoev Using R programming language for processing of large data sets
JP3318051B2 (ja) 翻訳処理方法
JPH0460721A (ja) オブジェクト指向言語処理方式
JP3461185B2 (ja) ロードモジュールへのソースコード行番号登録方法および装置
US5671431A (en) Method for processing user program on a parallel computer system by inserting a tag during compiling
JP3637606B2 (ja) データ処理装置
JP3309810B2 (ja) プログラムリンクシステム、方法及び記録媒体
JP2003076558A (ja) プログラム実行制御方法及びプログラム実行制御プログラム
JPH0683597A (ja) オブジェクト指向プログラム開発装置およびオブジェクト指向プログラム開発方法
JPH03135630A (ja) 命令スケジューリング方式
JPH02308330A (ja) 知識情報処理装置
JP3305767B2 (ja) ソート処理方法及びコンパイル方法
JP2601541B2 (ja) Fortran入出力並び処理方式
JPH0675757A (ja) 仮想空間常駐プログラムのリンク方式
JPS61208143A (ja) 情報処理装置
JPS62216037A (ja) ソ−スライブラリによるメツセ−ジ管理方式
JPS63201833A (ja) 未解決ラベル参照解決方式
Fischer et al. A Tour of Paradigms
JPH0784843A (ja) データアクセス方法
JPH04180127A (ja) クラスのファイル化方法