JPH11126164A - シンボル名置き換え装置 - Google Patents

シンボル名置き換え装置

Info

Publication number
JPH11126164A
JPH11126164A JP9289562A JP28956297A JPH11126164A JP H11126164 A JPH11126164 A JP H11126164A JP 9289562 A JP9289562 A JP 9289562A JP 28956297 A JP28956297 A JP 28956297A JP H11126164 A JPH11126164 A JP H11126164A
Authority
JP
Japan
Prior art keywords
language
symbol
symbol name
type information
name
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
JP9289562A
Other languages
English (en)
Other versions
JP4033952B2 (ja
Inventor
Kunihiko Matsunami
邦彦 松浪
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 JP28956297A priority Critical patent/JP4033952B2/ja
Publication of JPH11126164A publication Critical patent/JPH11126164A/ja
Application granted granted Critical
Publication of JP4033952B2 publication Critical patent/JP4033952B2/ja
Anticipated expiration legal-status Critical
Expired - Fee Related legal-status Critical Current

Links

Landscapes

  • Devices For Executing Special Programs (AREA)

Abstract

(57)【要約】 【課題】 C++側に特別な表記を書き込む必要がな
く、システムの信頼性向上に寄与する技術の提供を目的
とする。 【解決手段】 C言語のシンボル名から型情報を抽出す
る抽出手段、抽出された型情報をC++言語の型情報の
記号に変換する変換手段、変換されたC++言語の型情
報の記号と前記C言語のシンボル名とを組み合わせてC
++言語のシンボル名を生成する生成手段、生成された
C++言語のシンボル名を前記C言語のシンボル名に置
換する置換手段を備える。C言語のシンボル名がC++
言語のシンボル名に置換される。C++側に特別な表記
を書き込むことなく、C言語のシンボルをリンクでき、
システムの信頼性向上を図ることができる。

Description

【発明の詳細な説明】
【0001】
【発明の属する技術分野】本発明は、C言語のシンボル
名をC++言語のシンボル名に置き換えるシンボル名置
き換え装置に関する。
【0002】
【発明の背景】C(C言語)はシステム記述用の言語と
してUNIXと共に発展してきた言語であり、豊富な演
算子とデータ型及び構造化プログラミングに適した制御
構造を持つ特徴から、様々な分野で多くのプログラム開
発に利用されてきた。一方、C++(C++言語)は、
C言語をオブジェクト指向対応に改良した新しい言語で
あり、多くの点でC言語と共通するが完全互換ではな
い。例えば、演算子やデータ型などの基本構造は保たれ
ているものの、コンパイル後のシンボル(変数、定数又
は関数を示すユーザ定義名)に違いがある。
【0003】今、整数型(int)の変数aをC言語と
C++言語でソースリストに記述したとすると、どちら
も、 int a ………(1) と表記(初期値は省略)されるが、これをCコンパイラ
でコンパイルすると、 _a ………(2) となり、C++コンパイラでコンパイルすると、 _△_a ………(3) となる。ここで、_(アンダーバー)aはシンボル、_
△は整数型を表わす記号である(但し△は便宜的な記
号)。(2)と(3)の違いは型情報の有無にある。型
情報はオブジェクト指向における属性(プロパティ)の
一つであり、かかる属性の引き継ぎはオブジェクト指向
の基本原則である。したがって、(2)と(3)の違い
(型情報の有無)は専らオブジェクト指向対応であるか
否かによるものである。
【0004】
【従来の技術】C++言語でシステムを開発する場合、
すべてのモジュールを新たに作るのは無駄である。C言
語で作られた評価済の膨大なモジュールがすでに存在し
ているからである。図2は、C言語で作られたプログラ
ムをC++言語のプログラムにリンクする場合の簡単な
例である。図において、「int a」は整数型のaと
いうシンボルを表わしている。このシンボルをリンクす
るには、C++側に特別な仕様を適用しなければならな
い。図中の「extern “C”」という表記がそれ
である。C++言語のプログラムにこの表記を書き込め
ば、C言語で作られた評価済の膨大なモジュールを利用
でき、開発効率を大幅に改善できる。
【0005】
【発明が解決しようとする課題】しかしながら、かかる
従来の方法にあっては、C++側にいちいち特別な表記
を書き込む必要があり、面倒であるばかりか、記入忘れ
などのケアレスミスを避けられず、開発効率を改善でき
るものの、システムの信頼性を向上できないという問題
点があった。
【0006】そこで、本発明は、C++側にいちいち特
別な表記を書き込む必要がなく、システムの信頼性向上
に寄与する技術の提供を目的とする。
【0007】
【課題を解決するための手段】本発明は、C言語のシン
ボル名をC++言語のシンボル名に置き換える装置であ
って、C言語のシンボル名から型情報を抽出する抽出手
段と、抽出された型情報をC++言語の型情報の記号に
変換する変換手段と、変換されたC++言語の型情報の
記号と前記C言語のシンボル名とを組み合わせてC++
言語のシンボル名を生成する生成手段と、生成されたC
++言語のシンボル名を前記C言語のシンボル名に置換
する置換手段と、を備えたことを特徴とする。
【0008】本発明では、C言語のシンボル名を与える
と、そのシンボル名から型情報が抽出され、その型情報
がC++言語の型情報の記号に変換されると共に、その
記号と前記C言語のシンボル名とが組み合わされてC+
+言語のシンボル名が生成された後、生成されたC++
言語のシンボル名が前記C言語のシンボル名に置き換え
られる。したがって、C言語のシンボル名がC++言語
のシンボル名に置換されるため、C++側にいちいち特
別な表記を書き込むことなく、C言語のシンボルをリン
クできるので、システムの信頼性向上を図ることができ
る。
【0009】
【発明の実施の形態】以下、本発明の実施例を図面に基
づいて説明する。図1は本発明に係るシンボル名置き換
え装置の一実施例を示す図である。図1において、1は
C言語で記述されたソースリストであり、リスト内には
便宜例として整数型(int)の変数aが初期値0で宣
言されている。2はリスト1をコンパイルして生成され
たモジュールの一部であり、Cコンパイラ3では既述の
とおりシンボル名(この例では変数a)の頭にアンダー
スコア(_)を付して表記される。
【0010】4はシンボル名の型情報を抽出する型情報
抽出手段(抽出手段)である。この型情報抽出手段4
は、例えば、Cコンパイラ3のデバッグオプションを使
用することができる。公知のCコンパイラ(例えばfc
c911:富士通(株)製FRファミリ用最適化Cコン
パイラのコマンド名)のデバッグオプションには、図示
のように、コンパイルされたシンボル名(_a)、元の
シンボル名(a)及び型情報(int)などを収集でき
る機能が備えられているからである。5は型情報を含む
デバックテーブルであり、型情報抽出手段4によって生
成されたものである。なお、6はワーキングレジスタ
(生成手段、置換手段)、7は変換テーブル(変換手
段)であり、前者はC++言語のシンボル名を生成する
ための一時的な作業領域、後者は、C++言語のすべて
の型情報と各型情報に対応した記号とをテーブルマップ
化したものである。
【0011】このような構成において、まず、ソースリ
スト1内のシンボルは、Cコンパイラ3によってコンパ
イルされ、さらに、型情報抽出手段4によってその型情
報(int)が取り出される。そして、デバッグテー
ブル5内の型情報を用いて変換テーブル7が検索され、
その型情報に一致するC++言語の記号(_Vo)が
取り出されてワーキングレジスタ6の所定位置(中央)
にセットされる。次いで、ワーキングレジスタ6の
先頭と後尾に、コンパイルされたシンボル名(_a)が
セットされた後、先頭のシンボル名を用いてモジュー
ル2が検索され、モジュール2内の一致するシンボル名
が、ワーキングレジスタ6の中央と後尾の記号を連結し
たもの(_Vo_a)で置き換えられる。
【0012】したがって、この構成によれば、Cコンパ
イラ3によって生成されたモジュール2内のシンボル
(C言語のシンボル)が、C++言語のシンボルに置き
換えられるから、例えば、C言語で作られた評価済の膨
大なモジュールにこの装置を適用すれば、コンパイル済
のすべてのシンボルに型情報を持たせることができ、C
++プログラムとの互換性を確保できる。その結果、C
++言語のプログラム側に特別な仕様を施すことなく、
既存のC言語資産を有効に活用することができ、開発効
率の改善と信頼性の向上を共に達成することができる。
【0013】なお、本実施例のシンボル名置き換え装置
は単体であってもよく、又はリンケージエディタやアセ
ンブラ若しくはCコンパイラに組み込まれたものであっ
てもよい。また、リンケージエディタやアセンブラ若し
くはCコンパイラなどは、記憶媒体に収められたプログ
ラムの形で配布されるから、本実施例のシンボル名置き
換え装置も、単体又はこれらのプログラムと一緒に、フ
ロッピィディスク、MO、CD−ROM、メモリカー
ド、ROMチップ、固定記憶装置(ハードディスク)な
どの記憶媒体に収められたものであってもよい。
【0014】
【発明の効果】本発明によれば、C言語のシンボル名が
C++言語のシンボル名に置換されるため、C++側に
いちいち特別な表記を書き込むことなく、C言語のシン
ボルをリンクでき、システムの開発効率と信頼性を共に
向上できる。
【図面の簡単な説明】
【図1】一実施例の概念図である。
【図2】従来例の概念図である。
【符号の説明】
4:型情報抽出手段(抽出手段) 6:ワーキングレジスタ(生成手段、置換手段) 7:変換テーブル(変換手段)

Claims (2)

    【特許請求の範囲】
  1. 【請求項1】C言語のシンボル名をC++言語のシンボ
    ル名に置き換える装置であって、 C言語のシンボル名から型情報を抽出する抽出手段と、 抽出された型情報をC++言語の型情報の記号に変換す
    る変換手段と、 変換されたC++言語の型情報の記号と前記C言語のシ
    ンボル名とを組み合わせてC++言語のシンボル名を生
    成する生成手段と、 生成されたC++言語のシンボル名を前記C言語のシン
    ボル名に置換する置換手段と、を備えたことを特徴とす
    るシンボル名置き換え装置。
  2. 【請求項2】請求項1記載の抽出手段、変換手段、生成
    手段及び置換手段を含むことを特徴とする記憶媒体。
JP28956297A 1997-10-22 1997-10-22 シンボル名置き換え装置 Expired - Fee Related JP4033952B2 (ja)

Priority Applications (1)

Application Number Priority Date Filing Date Title
JP28956297A JP4033952B2 (ja) 1997-10-22 1997-10-22 シンボル名置き換え装置

Applications Claiming Priority (1)

Application Number Priority Date Filing Date Title
JP28956297A JP4033952B2 (ja) 1997-10-22 1997-10-22 シンボル名置き換え装置

Publications (2)

Publication Number Publication Date
JPH11126164A true JPH11126164A (ja) 1999-05-11
JP4033952B2 JP4033952B2 (ja) 2008-01-16

Family

ID=17744846

Family Applications (1)

Application Number Title Priority Date Filing Date
JP28956297A Expired - Fee Related JP4033952B2 (ja) 1997-10-22 1997-10-22 シンボル名置き換え装置

Country Status (1)

Country Link
JP (1) JP4033952B2 (ja)

Cited By (1)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
JP2007304840A (ja) * 2006-05-11 2007-11-22 Matsushita Electric Ind Co Ltd コンパイル方法、デバッグ方法、コンパイルプログラムおよびデバッグプログラム

Cited By (1)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
JP2007304840A (ja) * 2006-05-11 2007-11-22 Matsushita Electric Ind Co Ltd コンパイル方法、デバッグ方法、コンパイルプログラムおよびデバッグプログラム

Also Published As

Publication number Publication date
JP4033952B2 (ja) 2008-01-16

Similar Documents

Publication Publication Date Title
US5675805A (en) Programming system for generating client and server programs from an undistributed application program
US7162709B2 (en) System and method for common code generation
EP4145761B1 (en) A system and a method for automatic generation of smart contracts across blockchain platforms
Kastens et al. GAG: A practical compiler generator
CN102541521B (zh) 基于结构化查询语言的操作指令自动生成装置及方法
US5555411A (en) Initializing programs having dependencies
US20090007065A1 (en) Logging system and method for computer software
US6934940B2 (en) Source code transformation-temporary object reduction
CN111666095A (zh) Java反编译的实现方法、系统、设备及存储介质
JPH09212356A (ja) インタープリタ言語で記述されたコンピュータ用ソフトウェアの保護システム
Hirschowitz et al. Compilation of extended recursion in call-by-value functional languages
JPH11126164A (ja) シンボル名置き換え装置
CN117312111A (zh) 无痕动态埋点配置方法、系统、电子设备及存储介质
CN115904431B (zh) 智能卡更新方法、装置、电子设备及可读存储介质
KR102917658B1 (ko) 프로그램 소스코드의 함수에 대한 주석 자동생성 시스템 및 방법
JPH11154093A (ja) プログラムコンパイラ及びコンパイラ用プログラムを記録した記録媒体
JPH09179738A (ja) オブジェクト指向言語処理方法及び処理装置
JPS5856148A (ja) プログラム修正処理方式
CN116126318A (zh) 一种基于插件的开发提效方法
CN120492014A (zh) 一种前端快速适配多后端的方法
JPS6027941A (ja) 名標生成システム
CN118259960A (zh) 基于.NET的Mybatis动态标签转换方法及系统
Griswold et al. The C Implementation of Icon: A Tour Through Version 5
Machine GRIT: Guy's RISC Implementation of the
JP2002099412A (ja) データベース自動設計方法および装置並びに記録媒体

Legal Events

Date Code Title Description
A621 Written request for application examination

Free format text: JAPANESE INTERMEDIATE CODE: A621

Effective date: 20040419

A131 Notification of reasons for refusal

Free format text: JAPANESE INTERMEDIATE CODE: A131

Effective date: 20070508

A521 Request for written amendment filed

Free format text: JAPANESE INTERMEDIATE CODE: A523

Effective date: 20070709

A131 Notification of reasons for refusal

Free format text: JAPANESE INTERMEDIATE CODE: A131

Effective date: 20070807

A521 Request for written amendment filed

Free format text: JAPANESE INTERMEDIATE CODE: A523

Effective date: 20070927

TRDD Decision of grant or rejection written
A01 Written decision to grant a patent or to grant a registration (utility model)

Free format text: JAPANESE INTERMEDIATE CODE: A01

Effective date: 20071023

A61 First payment of annual fees (during grant procedure)

Free format text: JAPANESE INTERMEDIATE CODE: A61

Effective date: 20071024

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

Free format text: PAYMENT UNTIL: 20101102

Year of fee payment: 3

R150 Certificate of patent or registration of utility model

Free format text: JAPANESE INTERMEDIATE CODE: R150

S111 Request for change of ownership or part of ownership

Free format text: JAPANESE INTERMEDIATE CODE: R313111

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

Free format text: PAYMENT UNTIL: 20101102

Year of fee payment: 3

R350 Written notification of registration of transfer

Free format text: JAPANESE INTERMEDIATE CODE: R350

LAPS Cancellation because of no payment of annual fees