JPH07152577A - コンパイル、リンク方法の共通化方式 - Google Patents

コンパイル、リンク方法の共通化方式

Info

Publication number
JPH07152577A
JPH07152577A JP5297905A JP29790593A JPH07152577A JP H07152577 A JPH07152577 A JP H07152577A JP 5297905 A JP5297905 A JP 5297905A JP 29790593 A JP29790593 A JP 29790593A JP H07152577 A JPH07152577 A JP H07152577A
Authority
JP
Japan
Prior art keywords
link
option
compile
identifier
command file
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
JP5297905A
Other languages
English (en)
Inventor
Tetsuji Hino
哲治 日野
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.)
NEC Corp
Original Assignee
NEC 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 NEC Corp filed Critical NEC Corp
Priority to JP5297905A priority Critical patent/JPH07152577A/ja
Publication of JPH07152577A publication Critical patent/JPH07152577A/ja
Pending legal-status Critical Current

Links

Landscapes

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

Abstract

(57)【要約】 【目的】コンパイルのオプションの指定方法、結合オプ
ジェクトのリンク方法が異なるプログラムソースのコン
パイル、リンク方法を共通化する。 【構成】共通コンパイル処理3は、プログラムソース1
Aのコンパイルオプション行2Aのコンパイルオプショ
ン23Aをパラメータとしてコンパイルし、生成された
オブジェクトファイルの識別子をコンパイルオプション
行2Aのリンクオプション22Aに対応したリンクコマ
ンドファイル識別子41Aに変更する。共通リンク処理
5は、オブジェクトファイル4Aのリンクコマンドファ
イル識別子41Aに対応するリンクコマンドファイル6
Aを決定し、オブジェクトの識別子41Aを通常の識別
子に変更し、リンクコマンドファイル6Aを実行し、実
行モジュール7Aを生成し、オブジェクトファイルの識
別子を元の識別子41Aに戻す。

Description

【発明の詳細な説明】
【0001】
【産業上の利用分野】本発明はコンパイル、リンク方法
の共通化方式に関し、特にソースプログラムのコンパイ
ル及び生成されたオブジェクトファイルのリンクの方法
に関する。
【0002】
【従来の技術】一般に、プログラムソースは、そのコン
パイラがプログラムソースであることを識別するために
プログラムソース専用の識別子を付加する。コンパイラ
により生成されるオブジェクトファイルは、オブジェク
トファイル専用の識別子が付加される。
【0003】従来、コンパイルに必要な情報はコンパイ
ラのオプションとして入力され、コンパイルの都度、対
象プログラムソースに適したコンパイルオプションを選
択してコンパイルを行っていた。この問題を解決する手
段として公開平2−81231号公報の示すようにプロ
グラムソース内にオプション情報の格納領域を設け、コ
ンパイル時に前記オプション情報をプログラムソースか
ら取得し、コンパイルを実行する方法を行っていた。さ
らにリンクは、結合オブジェクトが異なるリンク方法が
複数ある場合、リンクの都度、結合オブジェクトを入力
して行っていた。
【0004】
【発明が解決しようとする課題】上述した従来のコンパ
イル方法では、1つのプログラムソースをコンパイルす
る場合、その都度対象プログラムソースに適したコンパ
イルオプションを入力するか、指定されたコンパイルオ
プションを登録したコマンドファイルを選択し実行する
方法で行うため、異なるコンパイルオプションを持つプ
ログラム間では、コンパイルの方法が共通化てきないと
いう問題があった。この問題を解決した公開平2−81
231号公報の方法では、コンパイル方法の共通化は行
えるが、リンク方法の共通化は解決されず、上述したリ
ンク方法で行うことになる。上述したリンク方法では、
リンクの都度、生成されたオブシェクトに結合するオブ
ジェクトを入力するか、指定された結合オブジェクトが
登録されたリンクコマンドファイルを選択し実行するた
め、結合オブジェクトが異なるリンク対象オブジェクト
間では、リンク方法が共通化できない。
【0005】本発明の目的は、コンパイル、リンク方法
の共通化方式を提供することにある。
【0006】
【課題を解決するための手段】本発明のコンパイル、リ
ンク方法の共通化方式は、ソースプログラム内にコンパ
イルオプション行の識別コードとリンクオプションとコ
ンパイルオプションを含むコメント行のコンパイルオプ
ション行を持つプログラムソースと、コンパイル対象の
前記プログラムソース内を先頭から読み込み、前記識別
コードを含む前記コンパイルオプション行を検索するコ
ンパイルオプション行の取込部と、前記コンパイルオプ
ション、前記リンクオプションを取り込み、前記コンパ
イルオプションをパラメータとしたコンパイルコマンド
を発行するコンパイルコマンドの発行部と、生成された
オブジェクトの標準識別子をリンクオプションに対応し
たリンクコマンドファイル識別子に変更するオブジェク
ト識別子変更部とから構成される共通コンパイル処理
と、各リンクコマンドファイル識別子に対応した各リン
クコマンドファイルと、リンク対象オブジェクトの前記
リンクコマンドファイル識別子から対応するリンクコマ
ンドファイルを決定するリンクコマンドファイル決定部
と、オブジェクトの前記リンクコマンドファイル識別子
を標準識別子に変更するオブジェク識別子の変更部と、
前記リンクコマンドファイルを実行するリンクコマンド
フアイル実行部と、前記標準識別子を前記リンクコマン
ドファイル識別子に戻すオブジェクト識別子の戻し部と
から構成される共通リンク処理と、を備えて構成されて
いる。
【0007】
【実施例】次に、本発明の実施例について図面を参照し
て説明する。
【0008】図1は本発明のコンパイル、リンク方法の
共通化方式の一実施例を示すブロック図である。
【0009】本実施例のコンパイル、リンク方法の共通
化方式は、図1に示すように、コンパイルオプション行
の取込部31とコンパイルコマンドの発行部32とオブ
ジェクト識別子変更部33から構成される共通コンパイ
ル処理3によりプログラムソース1A、1B、1Cをコ
ンパイルし、オブジェクトファイル4A、4B、4Cを
生成し、リンクコマンドファイル決定部51とオブジェ
クト識別子の変更部52とリンクコマンドファイル実行
部53とオブジェクト識別子の戻し部54から構成され
る共通リンク処理5と共通リンク処理5から実行される
リンクコマンドファイル6A、6B、6Cによってオブ
ジェクトファイル4A、4B、4Cから実行モジュール
7A、7B、7Cを生成する。
【0010】プログラムソース"aaaa.c"1A、"bbbb.c"
1B、"cccc.c"1Cには、コメント行として、ソースコ
ード内にコンパイルオプション行識別コードである"com
pile-option"21A、21B、21Cを持ったコンパイ
ルオプション行"/* compile-option -clink -a -b */”
2A、"/* compile-option -dlink -c */"2B、"/*com
pile-option -slink -a -c */" 2Cが記述されてい
る。さらにプログラムソース"aaaa.c"1Aのコンパイル
オプション行"/* compile-option -clink -a -b*/”2
Aには、プログラムソース"aaaa.c"1Aのリンクオプシ
ョンである"-clink"22Aとプログラムソース"aaaa.c"
1Aのコンパイルオプションである"-a -b" 23Aを持
ち、同じくプログラムソース"bbbb.c"1Bのコンパイル
オプション行"/* compile-option -dlink -c */"2Bに
は、プログラムソース"bbbb.c"1Bのリンクオプション
である"-dlink"22Bとプログラムソース"bbbb.c"1B
のコンパイルオプションである"-c"23Bを持ち、プロ
グラムソース"cccc.c"1Cのコンパイルオプション行2
Cには、プログラムソース"cccc.c"1Cのリンクオプシ
ョンである"-slink"22Cとプログラムソース"cccc.c"
1Cのコンパイルオプションである"-a -c" 23Cを持
っている。
【0011】オブジェクトファイル"aaaa.oc" 4A、"b
bbb.od" 4B、"cccc.os" 4Cのリンクコマンドファイ
ル識別子"oc"41A、"od"41B、"os"41Cは、プロ
グラムソース内のコンパイルオプション行"/* compile-
option -clink -a -b */”2A、"/* compile-option -
dlink -c */"2B、"/* compile-option -slink -a -c
*/" 2Cのリンクオプションの"-clink"22A、"-dlin
k"22B、"-slink"22Cに対応し、同じく識別子oc用
リンクコマンドファイル6A、識別子od用リンクコマン
ドファイル6B、識別子os用リンクコマンドファイル6
Cに対応している。
【0012】次にプログラムソース"aaaa.c"1Aを用い
て共通コンパイル処理3を説明する。共通コンパイル処
理3のコンパイルオプション行の取込部31によりプロ
グラムソース"aaaa.c"1Aを読み込み、コンパイルオプ
ション行識別コードの"compile-option"21Aを検索
し、コンパイルオプション行"/* compile-option -clin
k -a -b */”2Aを取り込み、同行ラインに含まれてい
るリンクオプションの"-clink"22Aとコンパイルオプ
ション"-a -b" 23Aを取得する。コンパイルコマンド
の発行部32によりコンパイルオプション"-a -b" 23
Aをパラメータとしたコンパイラを起動し、通常の識別
子"o" を持つオフジェクトファイル"aaaa.o"を生成す
る。オブジェクト識別子変更部33によりオブジェクト
ファイル"aaaa.c"4Aの識別子"c" を取得したリンクオ
プションの"-clink"22Aに対応したリンクコマンドフ
ァイル識別子"oc"41Aに変更し、オブジェクトファイ
ル"aaaa.oc" 4Aを生成する。同様にプログラムソー
ス"bbbb.c"1B、"cccc .c" 1Cのコンパイルオプショ
ン行"/* compile-option -dlink -c */"2B、"/* comp
ile-option -slink -a -c */" 2Cにあるコンパイルオ
プション"-c"23B、"-a-c" 23Cでコンパイルし、
生成されたオブジェクトファイル"bbbb.o"、"cccc.o"を
リンクオプション"-dlink"22B、"-slink"22Cに対
応したリンクコマンドファイル識別子"od"41B、"os"
41Cに変換し、オブジェクトファイル"bbbb.od" 4
B、"cccc.os" 4Cを生成する。
【0013】次にオブシェクトファイル"aaaa.oc" 4A
を用いて共通リンク処理5を説明する。共通リンク処理
5のリンクコマンドファイル決定部51によりオブジェ
クトファイル"aaaa.oc" 4Aのリンクコマンドファイル
識別子"oc"41Aに対応したoc用リンクコマンドファイ
ル6Aを決定し、オブジェクト識別子変更部52により
オブジェクトファィル"aaaa.oc" 4Aのリンクコマンド
ファイル識別子"oc"41Aを通常のリンク可能な識別
子"o" に変更しオプジェクトファイル"aaaa.o"を生成す
る。リンクコマンドファイル実行部53によりoc用リン
クコマンドファイル6Aを実行し、実行モジュール"aaa
a"7Aを生成し、オブジェクト識別子の戻し部54によ
りオブジェクトファイル"aaaa.o"の識別子"o" をもとの
リンクコマンドファイル識別子"oc"41Aに戻しオブジ
ェクトファイル"aaaa.oc" 4Aを再生成する。同様にオ
ブジェクトファイル"bbbb.od" 4B、"cccc.os" 4Cの
リンクコマンドファイル識別子"od"41B、"os"41C
に対応したod用リンクコマンドファイル6B、os用リン
クコマンドファイル6Cを実行し、実行モジュール"bbb
b"7B、"cccc"7Cを生成する。
【0014】
【発明の効果】以上説明したように、本発明のコンパイ
ル、リンク方法の共通化方式は、プログラムソース内に
コンパイルオプション行を設け、プログラムソースに対
応したコンパイルオプション、及び指定したリンクコマ
ンドファイルに対応したリンクオプションを記述するこ
とにより、共通コンパイル処理がプログラムソースのコ
ンパイルオプションを自動で取り込みコンバイル実行が
可能となり、さらに共通リンク処理が対象オブジェクト
のリンクコマンドファイル識別子によりリンクコマンド
ファイルが決定されるため、コンパイル方法、リンク方
法が共通化され、操作性の向上、コンパイルオプション
の設定ミス、結合オブジェクトのリンクミスの防止の効
果がある。また、プログラムソース内にコンパイルオプ
ション、リンクオプションをプログラム開発者が直接記
述できるため、プログラム開発者以外の人でもコンパイ
ル、リンクが可能となり、プログラムのメンテナンス性
が向上するという効果がある。
【図面の簡単な説明】
【図1】本発明のコンパイル、リンク方法の共通化方式
の一実施例を示すブロック図である。
【符号の説明】 1A、1B、1C プログラムソース 2A、2B、2C コンパイルオプション行 21A、21B、21C コンパイルオプション行識
別コード 22A、22B、22C リンクオプション 23A、23B、23C コンパイルオプション 3 共通コンパイル処理 31 コンパイルオプション行の取込部 32 コンパイルコマンドの発行部 33 オブジェクト識別子変更部 4A、4B、4C オブジェクトファイル 41A、41B、41C リンクコマンドファイル識
別子 5 共通リンク処理 51 リンクコマンドファイル決定部 52 オブジェクト識別子の変更部 53 リンクコマンドファイル実行部 54 オブジェクト識別子の戻し部 6A、6B、6C リンクコマンドファイル 7A、7B、7C 実行モジュール

Claims (2)

    【特許請求の範囲】
  1. 【請求項1】 ソースプログラムからオブジェクトファ
    イルを作成する時のコンパイルオプションと、オブジェ
    クトファイルから実行モジュールを作成する時のリンク
    オプションをソースプログラム内にコメント行として記
    述し、本コメント行の記述個所を識別する識別コードを
    コメント行に付加したことを特徴とするコンパイル、リ
    ンク方法の共通化方式。
  2. 【請求項2】 ソースプログラム内にコンパイルオプシ
    ョン行の識別コードとリンクオプションとコンパイルオ
    プションを含むコメント行のコンパイルオプション行を
    持つプログラムソースと、 コンパイル対象の前記プログラムソース内を先頭から読
    み込み、前記識別コードを含む前記コンパイルオプショ
    ン行を検索するコンパイルオプション行の取込部と、前
    記コンパイルオプション、前記リンクオプションを取り
    込み、前記コンパイルオプションをパラメータとしたコ
    ンパイルコマンドを発行するコンパイルコマンドの発行
    部と、生成されたオブジェクトの標準識別子をリンクオ
    プションに対応したリンクコマンドファイル識別子に変
    更するオブジェクト識別子変更部とから構成される共通
    コンパイル処理と、 各リンクコマンドファイル識別子に対応した各リンクコ
    マンドファイルと、リンク対象オブジェクトの前記リン
    クコマンドファイル識別子から対応するリンクコマンド
    ファイルを決定するリンクコマンドファイル決定部と、
    オブジェクトの前記リンクコマンドファイル識別子を標
    準識別子に変更するオブジェク識別子の変更部と、前記
    リンクコマンドファイルを実行するリンクコマンドフア
    イル実行部と、前記標準識別子を前記リンクコマンドフ
    ァイル識別子に戻すオブジェクト識別子の戻し部とから
    構成される共通リンク処理と、を備えることを特徴とす
    るコンパイル、リンク方法の共通化方式。
JP5297905A 1993-11-29 1993-11-29 コンパイル、リンク方法の共通化方式 Pending JPH07152577A (ja)

Priority Applications (1)

Application Number Priority Date Filing Date Title
JP5297905A JPH07152577A (ja) 1993-11-29 1993-11-29 コンパイル、リンク方法の共通化方式

Applications Claiming Priority (1)

Application Number Priority Date Filing Date Title
JP5297905A JPH07152577A (ja) 1993-11-29 1993-11-29 コンパイル、リンク方法の共通化方式

Publications (1)

Publication Number Publication Date
JPH07152577A true JPH07152577A (ja) 1995-06-16

Family

ID=17852619

Family Applications (1)

Application Number Title Priority Date Filing Date
JP5297905A Pending JPH07152577A (ja) 1993-11-29 1993-11-29 コンパイル、リンク方法の共通化方式

Country Status (1)

Country Link
JP (1) JPH07152577A (ja)

Cited By (2)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
JP2009098963A (ja) * 2007-10-17 2009-05-07 Mitsubishi Electric Corp モジュール自動生成システム
JP2018032082A (ja) * 2016-08-22 2018-03-01 富士通株式会社 プログラム生成プログラム、プログラム生成方法、プログラム生成装置及びコンパイルプログラム

Citations (1)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
JPH04165531A (ja) * 1990-10-30 1992-06-11 Nec Corp 言語処理系プログラムの起動行の処理方式

Patent Citations (1)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
JPH04165531A (ja) * 1990-10-30 1992-06-11 Nec Corp 言語処理系プログラムの起動行の処理方式

Cited By (2)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
JP2009098963A (ja) * 2007-10-17 2009-05-07 Mitsubishi Electric Corp モジュール自動生成システム
JP2018032082A (ja) * 2016-08-22 2018-03-01 富士通株式会社 プログラム生成プログラム、プログラム生成方法、プログラム生成装置及びコンパイルプログラム

Similar Documents

Publication Publication Date Title
US7571427B2 (en) Methods for comparing versions of a program
US5339424A (en) System and method for compiling and executing a computer program written in more than one programming language
US20230004368A1 (en) Multi-chip compatible compiling method and device
JPH09212352A (ja) プログラム開発支援システム
CN111506314B (zh) 项目开发的方法、装置、服务器及介质
JPH11249875A (ja) プログラミング支援方法及びその装置
US7831964B2 (en) Program automatic converting method and program automatic converting device
US5560015A (en) Compiler and method of compilation
JPH07152577A (ja) コンパイル、リンク方法の共通化方式
JP2001515240A (ja) オブジェクトコードからプログラムコードへの変換方法
KR900006667B1 (ko) 부분적 프로그램 결합 시스템
JPH09218789A (ja) 分割コンパイル方式
US6311227B1 (en) Procedure calling method
CN111767033A (zh) 用于机械臂程序开发的编程系统及功能扩展方法
JPS6022373B2 (ja) プログラマブル制御装置のプログラム変換機構
JP3461185B2 (ja) ロードモジュールへのソースコード行番号登録方法および装置
JP3584204B2 (ja) 原始プログラム自動変換装置
JPH0667871A (ja) プログラム自動更新方式
JP2926590B1 (ja) プログラムデバッガ,プログラムデバッグ方法および記録媒体
JPH01240934A (ja) 自動再コンパイル方法
JPH0695890A (ja) コンパイラにおける名前置換方式
JPH0390933A (ja) ソフトウェアプログラム自動生成方式
Savidis et al. Improved Untyped IntelliSense for JavaScript with Type Carriers and Binders
JP3179076B2 (ja) 流れ図からの原始プログラム自動生成方式
JPH11327887A (ja) 自動部品化機能付コンパイラシステムおよび記録媒体

Legal Events

Date Code Title Description
A02 Decision of refusal

Free format text: JAPANESE INTERMEDIATE CODE: A02

Effective date: 19960910