JP3192177B2 - オブジェクト処理装置 - Google Patents

オブジェクト処理装置

Info

Publication number
JP3192177B2
JP3192177B2 JP23917991A JP23917991A JP3192177B2 JP 3192177 B2 JP3192177 B2 JP 3192177B2 JP 23917991 A JP23917991 A JP 23917991A JP 23917991 A JP23917991 A JP 23917991A JP 3192177 B2 JP3192177 B2 JP 3192177B2
Authority
JP
Japan
Prior art keywords
name
external
generated
external name
source program
Prior art date
Legal status (The legal status is an assumption and is not a legal conclusion. Google has not performed a legal analysis and makes no representation as to the accuracy of the status listed.)
Expired - Fee Related
Application number
JP23917991A
Other languages
English (en)
Other versions
JPH0581037A (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.)
Fujitsu Ltd
Original Assignee
Fujitsu Ltd
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 Fujitsu Ltd filed Critical Fujitsu Ltd
Priority to JP23917991A priority Critical patent/JP3192177B2/ja
Publication of JPH0581037A publication Critical patent/JPH0581037A/ja
Application granted granted Critical
Publication of JP3192177B2 publication Critical patent/JP3192177B2/ja
Anticipated expiration legal-status Critical
Expired - Fee Related legal-status Critical Current

Links

Landscapes

  • Devices For Executing Special Programs (AREA)
  • Stored Programmes (AREA)

Description

【発明の詳細な説明】
【0001】
【産業上の利用分野】本発明は、ソースプログラムをコ
ンパイルしていくことでオブジェクトを生成していく
ブジェクト処理装置に関し、特に、ソースプログラムに
対して、システムの許容する制限長よりも長い外部名の
記述を可能にするオブジェクト処理装置に関する。
【0002】プログラマは、コンパイル処理の対象とな
るソースプログラムに対して、関数名等の外部名を記述
していくことになる。この外部名は、リンカ等のシステ
ムの制限を受け取ることなく自由な長さでもって記述で
きるようにしていくことが好ましい。
【0003】
【従来の技術】コンパイル処理では、コンパイラに従っ
て、外部名を記述するソースプログラムをその外部名に
対応付けられる生成名を生成しつつコンパイルしていく
ことで、翻訳単位毎のオブジェクトを生成していくとと
もに、リンカに従って、それらのオブジェクトを結合編
集していくことでロードモジュールを生成していくこと
になる。このとき、リンカは、コンパイラの生成した生
成名に対して規定の長さの範囲に入ることを要求するこ
とになる。
【0004】従来のコンパイル処理では、コンパイラの
生成したオブジェクトを直接リンカに入力していく構成
を採っていた。これから、プログラマは、ソースプログ
ラムに外部名を記述するときには、その外部名に対応し
て生成される生成名の長さがリンカの許容する制限長の
範囲に収まるようにと外部名を指定するようにしてい
た。
【0005】
【発明が解決しようとする課題】しかしながら、このよ
うな従来技術では、プログラマの指定できる外部名の長
さに制限がでてくることになる。これから、プログラマ
が自由な外部名を指定できないという問題点があった。
そして、短い制限長を要求するリンカを使用する場合に
は、長い制限長を要求するリンカに対して記述したソー
スプログラムをそのまま使用できないというように、ソ
ースプログラムの可搬性が低下するという問題点もあっ
たのである。
【0006】本発明はかかる事情に鑑みてなされたもの
であって、コンパイル処理の対象となるソースプログラ
ムに対して、システムの許容する制限長よりも長い外部
名の記述を可能にする新たなオブジェクト処理装置の提
供を目的とするものである。
【0007】
【課題を解決するための手段】図1に本発明の原理構成
を図示する。図中、1は本発明を具備するデータ処理装
置、2はコンパイル対象となるソースプログラム、3は
ソースプログラム2のコンパイル処理を実行してオブジ
ェクトを生成するコンパイル手段である。このコンパイ
ル手段3は、生成するオブジェクト内に、ソースプログ
ラム2中に記述される外部名と、その外部名のコンパイ
ル結果である生成名との対応関係情報である外部名情報
を記録していく構成を採る。4はコンパイル手段3のコ
ンパイル処理により生成される翻訳単位毎のオブジェク
ト、5はオブジェクト4を結合編集するリンカ手段、6
はリンカ手段5により生成されるロードモジュール、7
はオブジェクト4内に生成される生成名をリンカ手段5
に適合するものに解決する外部名解決手段である。
【0008】外部名解決手段7は、オブジェクト4内に
生成される生成名をリンカ手段5に適合するものにする
ために、ソースプログラム2に記述される外部名に関し
てのコンパイル情報を管理する管理簿8と、オブジェク
ト4内に展開される外部名情報をオブジェクト4から取
り出すとともに、この取り出した外部名情報を管理簿8
に登録する取出手段9(外部名を取り出す機能と、管理
簿8に登録済みの外部名情報であるのか否かを判断する
機能と、未登録の外部名情報を管理簿8に登録する機能
とを持つ)と、取出手段9の登録する外部名情報に規定
長の範囲内で記述される外部一意名を割り付けて管理簿
8に登録する登録手段10と、オブジェクト4内に展開
される生成名を登録手段10により登録される対応の外
部一意名に変更する変更手段11とを備える構成を採
る。
【0009】
【作用】本発明では、外部名解決手段7の取出手段9
は、オブジェクト4が生成されると、オブジェクト4内
に展開される外部名と生成名との対応関係情報である外
部名情報を取り出すとともに、管理簿8を参照すること
で、この取り出した外部名情報が既に管理簿8に登録さ
れているか否かを判断して、登録されていないと判断す
るときには、その外部名情報を管理簿8に登録していく
よう処理する。このようにして、管理簿8は、取出手段
9により取り出される外部名情報の重複管理を排除しつ
つ管理していくよう処理することになる。
【0010】登録手段10は、取出手段9が管理簿8に
新たな外部名情報を登録するときにおいて、この新たに
登録される外部名情報に規定長の範囲内で記述される外
部一意名を割り付けて管理簿8に登録していく。この登
録手段10の登録処理に従って、管理簿8には、ソース
プログラム2に記述される外部名と、その外部名のコン
パイル結果である生成名と、その生成名に割り付けられ
る外部一意名との対応関係が登録されることになる。
して、変更手段11は、例えば取出手段9がオブジェク
ト4から外部名情報を取り出すときにおいて、管理簿8
の管理データに基づいて、オブジェクト4内に展開され
るその外部名情報の持つ生成名を登録手段10により登
録された対応の外部一意名に変更していくよう処理す
る。
【0011】このようにして、本発明では、ソースプロ
グラム2に記述される外部名の長さに関係なく、オブジ
ェクト4には、リンカ手段5の要求する制限長に収まる
その外部名に対応する生成名(置き換えられた外部一意
名である)が自動的に展開されるようになることから、
ソースプログラム2に対して、システムの許容する制限
長よりも長い外部名を記述することが可能になるのであ
る。そして、最終的なオブジェクト4内には、ソースプ
ログラム2に記述される外部名と、リンカ手段5に入力
されることになるその外部名のコンパイル結果としての
生成名(置き換えられた外部一意名である)との対応関
係が保存されることになることから、外部名に関しての
デバッグ処理も確実に実行できるのである。
【0012】
【実施例】以下、実施例に従って本発明を詳細に説明す
る。図1で説明したように、本発明では、オブジェクト
4内に外部名と生成名との対応関係情報である外部名情
報を記録していく構成を採るとともに、この記録される
生成名を規定長の範囲内で記述される外部一意名に変更
していくことで、コンパイラに後続するリンカ等の要求
を満たすように構成するものである。すなわち、コンパ
イラがオブジェクト4内に外部名情報を記録していく構
成を採るとともに、図2に示すように、このコンパイラ
3aの生成したオブジェクト4を処理対象とする外部名
解決ルーチン7aを備えて、この外部名解決ルーチン7
aが、図3に示すように、ソースプログラム2に記述さ
れる外部名(EXTERNAL NAME)から生成されるオブジェク
ト4内の生成名(GENERATE NAME)を規定長の外部一意名
(UNIQUE NAME)に変更していくことで、プログラマが、
ソースプログラム2に対して自由な長さの外部名を指定
できるようにする構成を採るものである。ここで、図3
中の符号8は、図1で説明した管理簿であって、オブジ
ェクト4から取り出される外部名情報(外部名と生成名
との対応関係情報)と、変更対象とする外部一意名とを
管理するものである。
【0013】図4に、本発明で新たに設ける外部名解決
ルーチン7aの実行する処理フローを図示する。次に、
この処理フローに従って、本発明の処理について詳細に
説明する。
【0014】外部名解決ルーチン7aは、オブジェクト
4が生成されると、図4の処理フローに示すように、先
ず最初に、ステップ1で、生成されたオブジェクト4か
ら、外部名と生成名との対応関係情報である外部名情報
を取り出す。次に、ステップ2で、その取り出した外部
名情報が既に管理簿8に登録されているものなのか否か
を判断する。このステップ2の判断で、取り出した外部
名情報が管理簿8に登録されていないと判断するときに
は、ステップ3に進んで、管理簿8にその取り出した外
部名情報を登録し、続くステップ4で、その登録した外
部名情報に規定長の範囲内で記述される外部一意名を割
り付けて、その割り付けた外部一意名を管理簿8に登録
する。そして、続くステップ5で、取り出した外部名情
報に対応するオブジェクト4内の生成名をその登録した
外部一意名に変更する。
【0015】一方、ステップ2の判断で、ステップ1で
取り出した外部名情報が管理簿8に登録されていると判
断するときには、ステップ6に進んで、管理簿8から、
登録されている外部名情報に対応付けて登録されている
外部一意名を読み出してから、ステップ5に進んで、取
り出した外部名情報に対応するオブジェクト4内の生成
名をその読み出した外部一意名に変更する。
【0016】そして、外部名解決ルーチン7aは、ステ
ップ5の処理を終了すると、ステップ7に進んで、生成
されたオブジェクト4内のすべての生成名の変更処理を
終了したか否かを判断して、すべての生成名の変更処理
を終了したと判断するときには処理を終了し、未だ変更
されていない生成名が残されていると判断するときには
ステップ1に戻っていくことで、生成されたオブジェク
ト4内のすべての生成名の変更処理を実行していく。
【0017】このようにして、ソースプログラム2に、
図5(a)に示すようなサブルーチン名が記述されるこ
とで図5(b)に示すような外部名が記述されるときに
おいて、コンパイラ3aが、このサブルーチンの引数の
記述形態に従って、オブジェクト4内に図5(c)のよ
うな長い生成名を生成するようなことがあっても、この
生成名が図5(d)に示すような短い外部一意名に変更
されて展開されていくようになることから、ソースプロ
グラム2に対して、コンパイラ3aに後続するリンカ等
のシステムの許容する制限長よりも長い外部名を記述す
ることが可能になるのである。そして、最終的なオブジ
ェクト4内には、ソースプログラム2に記述される外部
名と短い外部一意名との対応関係が保存されることにな
ることから、外部名に関してのデバッグ処理も確実に実
行できるのである。
【0018】図示実施例について説明したが、本発明は
これに限定されるものではない。例えば、実施例では、
外部名解決ルーチン7aを後続のリンカとは独立して備
えるものでもって開示したが、これに限られることな
く、リンカ内に展開する構成を採るものであってもよい
のである。
【0019】
【発明の効果】以上説明したように、本発明によれば、
ソースプログラムをコンパイルしていくことでオブジェ
クトを生成していくときにあって、ソースプログラムに
記述される外部名の長さに関係なく、オブジェクトに
は、コンパイラに後続するリンカ等の要求する制限長に
収まるその外部名に対応する生成名が自動的に展開され
るようになることから、ソースプログラムに対して、自
由な長さの外部名を記述することが可能になり、読解性
が向上することでその品質を高めることができるととも
に、ソースプログラムの可搬性の向上を実現できるので
ある。
【図面の簡単な説明】
【図1】本発明の原理構成図である。
【図2】本発明の一実施例である。
【図3】本発明の一実施例である。
【図4】外部名解決ルーチンの実行する処理フローの一
実施例である。
【図5】本発明の処理の説明図である。
【符号の説明】
1 データ処理装置 2 ソースプログラム 3 コンパイル手段 4 オブジェクト 5 リンカ手段 6 ロードモジュール 7 外部名解決手段 8 管理簿 9 取出手段 10 登録手段 11 変更手段
───────────────────────────────────────────────────── フロントページの続き (56)参考文献 特開 平2−12525(JP,A) 「ACM SIGPLAN NOTI CE」Vol.26,No.8(1991− 8)P.74−79 Ellis M.and Stros trup B.,「The Annot ated C++ Reference Manual」Addison−We sley(1990)P.122−127 「ASCII」Vol.14,No.12 (1990−12)P.388 (58)調査した分野(Int.Cl.7,DB名) G06F 9/45,9/44

Claims (1)

    (57)【特許請求の範囲】
  1. 【請求項1】 ソースプログラムに記述される外部名の
    コンパイル結果となる生成名を記述したオブジェクトを
    処理するオブジェクト処理装置において、 生成名とそれに割り付けられる規定長内の外部一意名と
    の対応関係を管理する管理手段と、 処理対象のオブジェクトに記述される生成名が上記管理
    手段に登録されているのか否かを判断する判断手段と、 上記判断手段が登録されていないと判断する場合に、生
    成名に対して規定長内の外部一意名を割り付けて、該生
    成名と該外部一意名との対応関係を上記管理手段に登録
    する登録手段と、 上記管理手段の管理データに基づいて、オブジェクトに
    記述される生成名を対応する外部一意名に変更する変更
    手段とを有することを、 特徴とするオブジェクト処理装置。
JP23917991A 1991-09-19 1991-09-19 オブジェクト処理装置 Expired - Fee Related JP3192177B2 (ja)

Priority Applications (1)

Application Number Priority Date Filing Date Title
JP23917991A JP3192177B2 (ja) 1991-09-19 1991-09-19 オブジェクト処理装置

Applications Claiming Priority (1)

Application Number Priority Date Filing Date Title
JP23917991A JP3192177B2 (ja) 1991-09-19 1991-09-19 オブジェクト処理装置

Publications (2)

Publication Number Publication Date
JPH0581037A JPH0581037A (ja) 1993-04-02
JP3192177B2 true JP3192177B2 (ja) 2001-07-23

Family

ID=17040900

Family Applications (1)

Application Number Title Priority Date Filing Date
JP23917991A Expired - Fee Related JP3192177B2 (ja) 1991-09-19 1991-09-19 オブジェクト処理装置

Country Status (1)

Country Link
JP (1) JP3192177B2 (ja)

Non-Patent Citations (3)

* Cited by examiner, † Cited by third party
Title
「ACM SIGPLAN NOTICE」Vol.26,No.8(1991−8)P.74−79
「ASCII」Vol.14,No.12(1990−12)P.388
Ellis M.and Strostrup B.,「The Annotated C++ Reference Manual」Addison−Wesley(1990)P.122−127

Also Published As

Publication number Publication date
JPH0581037A (ja) 1993-04-02

Similar Documents

Publication Publication Date Title
US5740431A (en) Configuration file management
US7992141B2 (en) Method and apparatus for building executable computer programs using compiled program libraries
US6041180A (en) System and method for optimizing template object files
JP4833206B2 (ja) 最適化されたプログラムのためのアンワインド情報の生成
JP4204768B2 (ja) ユーザに固有のインスツルメンテーションを支援する方法とシステム
US6931627B2 (en) System and method for combinatorial test generation in a compatibility testing environment
US20060212847A1 (en) Type checker for a typed intermediate representation of object-oriented languages
EP0543588A2 (en) Generating and processing computer programs
US20080005728A1 (en) Methods, systems, and computer program products for enabling cross language access to an addressable entity in an execution environment
US6263488B1 (en) System and method for enabling software monitoring in a computer system
JP2003529808A (ja) スクリプト駆動ツールの並列処理アプリケーション
JPH08339296A (ja) 動的リンク・ライブラリをプログラムにリンクする方法
US20080005727A1 (en) Methods, systems, and computer program products for enabling cross language access to an addressable entity
CN100378657C (zh) 用于改进java方法调用速度的方法和装置
US6175935B1 (en) Software debugging method and recording medium to which debugging program has been recorded
JP3246438B2 (ja) 可変ターゲットコンパイル処理方法、その処理装置、そのプログラムの記憶媒体および変換テーブルの記憶媒体
US6968543B2 (en) Information processing apparatus
US5889995A (en) Using constant selectors for method identification
US6728951B1 (en) System and method for performing automated incremental compilation of computer programs
JP3192177B2 (ja) オブジェクト処理装置
JP3608993B2 (ja) コンパイラ装置及びコンパイラプログラムを記録した記録媒体
AU776882B2 (en) Generating optimized computer data field conversion routines
US20240012639A1 (en) Method of programming a software module associated with a firmware unit of a device
JP3018783B2 (ja) コンパイル方式
JP2669387B2 (ja) データベース駆動によるプログラム自動生成システム

Legal Events

Date Code Title Description
A01 Written decision to grant a patent or to grant a registration (utility model)

Free format text: JAPANESE INTERMEDIATE CODE: A01

Effective date: 20010508

FPAY Renewal fee payment (event date is renewal date of database)

Free format text: PAYMENT UNTIL: 20080525

Year of fee payment: 7

FPAY Renewal fee payment (event date is renewal date of database)

Free format text: PAYMENT UNTIL: 20090525

Year of fee payment: 8

LAPS Cancellation because of no payment of annual fees