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