JPH04362738A - 変数管理方法 - Google Patents

変数管理方法

Info

Publication number
JPH04362738A
JPH04362738A JP16508091A JP16508091A JPH04362738A JP H04362738 A JPH04362738 A JP H04362738A JP 16508091 A JP16508091 A JP 16508091A JP 16508091 A JP16508091 A JP 16508091A JP H04362738 A JPH04362738 A JP H04362738A
Authority
JP
Japan
Prior art keywords
variable
program
variables
integer data
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.)
Pending
Application number
JP16508091A
Other languages
English (en)
Inventor
Minoru Harada
稔 原田
Hajime Nishikaze
西風 一
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.)
Oki Electric Industry Co Ltd
Original Assignee
Oki Electric Industry Co 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 Oki Electric Industry Co Ltd filed Critical Oki Electric Industry Co Ltd
Priority to JP16508091A priority Critical patent/JPH04362738A/ja
Publication of JPH04362738A publication Critical patent/JPH04362738A/ja
Pending legal-status Critical Current

Links

Landscapes

  • Devices For Executing Special Programs (AREA)

Abstract

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

Description

【発明の詳細な説明】
【0001】
【産業上の利用分野】本発明は、変数への整数データの
格納形式の異なる計算機の相互で、同一のソースプログ
ラムの利用を実現する変数管理方法に関する。
【0002】
【従来の技術】計算機を動作させるためには、プログラ
ムが必要となる。このプログラムは、計算機の機種や使
用言語によって、種々の形式のものを用意することがで
きる。またプログラムには、必ずといって良いほど任意
のデータを格納する変数が用意される。変数には、文字
データや整数データ等、各種のデータを格納することが
できる。そして整数データを格納する変数の場合、ビッ
グエンディアンとリトルエンディアンと呼ばれる2種類
の格納形式が用意されている。
【0003】図2に、一般的な変数の説明図を示す。こ
こでは、整数データとして、16進数“1234567
8”の整数データを格納する変数Hが8バイト、そして
、変数Hの読取りが2バイト単位で実行されるものとす
る。この場合、変数Hがリトルエンディアンの格納形式
を採る場合、変数Hには、整数データが“123456
78”の順番で、即ち若番地側(LSB側)に整数値の
下位桁が格納される。
【0004】一方、変数Hがビッグエンディアンの格納
形式を採る場合、変数Hには、整数データが“7856
3412”の順番で、即ち若番地側(LSB側)に整数
値の上位桁が格納される。これらの格納形式は計算機(
オペレーティングシステム)固有のもので、ソースプロ
グラムを開発する際、考慮しなければならない事柄の一
つである。例えばC言語において変数には、その定義を
行なうプログラム上の位置により、グローバル変数とロ
ーカル変数(自動変数)の2つを適宜用意することがで
きる。 グローバル変数の場合、存在区間がプログラムの全体に
渡り、ローカル変数の場合、存在区間は限定された区間
(例えば特定の関数)内に制限される。ローカル変数の
内容を、定義がなされた関数以外の他の関数に渡す場合
、一般にローカル変数の内容が格納されたメモリ上の位
置を示すアドレス演算を行ない、この結果をポインタ変
数として通知することにより、ローカル変数の内容の受
渡しを実現することができる。
【0005】さて、従来ポインタ変数の通知を受けて、
ローカル変数の値を受継ぐ場合、格納形式が問題となっ
ていた。即ち、リトルエンディアンに対応した計算機上
で、ビッグエンディアンに対応したプログラムを実行さ
せ、ポインタ変数の示す内容の読取りを行なう場合、整
数データの上位桁と下位桁の順序が乱れ、全く意味の無
い整数データとして取扱う恐れがあった。このため、ソ
ースプログラムをリトルエンディアン及びビッグエンデ
ィアンの計算機の両者で利用しようとした場合、変数を
リトルエンディアンで取扱うか、ビッグエンディアンで
取扱うかの切り分けを行ない、それぞれ変数の読取り形
態を変更する必要がある。
【0006】図3に、従来一般の切り分けに係る説明図
を示す。図はC言語で記述されたソースプログラムの例
で、ここでは、変数lengthが4バイトの容量を持
ち、リトルエンディアンの場合、1バイト単位でLSB
側から変数の認識を行ない、ビッグエンディアンの場合
、1バイト単位でMSB側から変数の認識を行なうもの
とする。まず、ステップS1において、計算機がビッグ
エンディアンであるかの判定を行ない、判定が肯定され
た場合、ステップS2において、変数lengthのM
SB側から1バイトずつ読み出して、順次cbuf[0
〜3]に格納し、ステップS5において処理を終了する
【0007】ステップS1において、判定が否定された
場合、処理がステップS3に移り、ステップS4におい
て、変数lengthのMSB側から1バイトずつ読み
出し、順次cbuf[3〜0]に格納し、ステップS5
において処理を終了する。
【0008】
【発明が解決しようとする課題】変数の格納形式の異な
る計算機相互にソースプログラムを移植しようとした場
合、外部関数に変数の値を受渡す処理が実行されるソー
スプログラム上に、図3において説明したような変換用
のソースプログラムのコーディングが必ず必要となる。 このため、コーディングの手間の増加及びソースプログ
ラムの読解性が損なわれてしまうといった問題が生じて
いた。また、変換用のソースプログラムのコーディング
を忘れた場合、デバッグ作業を強いられるといった問題
も生じていた。本発明は以上の点に着目してなされたも
ので、変数の格納形式が相違してもソースプログラムの
移植を手間をかけることなく容易に行なうことができる
変数管理方法を提供することを目的とする。
【0009】
【課題を解決するための手段】本発明の変数管理方法は
、特定の計算機上での稼働を想定して生成され、変数へ
の整数データの格納形式が前記特定の計算機に固有の形
態を採るソースプログラムを、前記変数への前記整数デ
ータの格納形式が異なる他の計算機に移植する場合、前
記ソースプログラム上に、前記変数の記述された領域を
特定する領域指示記号を記述し、前記ソースプログラム
をオブジェクトプログラムに変換するために、当該ソー
スプログラム上の全ての変数について整数データの格納
形式を判断し、前記領域指示記号で指示された領域に記
述された変数について、前記格納形式を変更するための
オブジェクトコードを付加し、前記オブジェクトプログ
ラムを生成する。
【0010】
【作用】予め、ソースプログラム上に、整数データを格
納する変数の記述された領域を特定する領域指示記号を
記述する。ソースプログラムをオブジェクトプログラム
に変換する際、領域指示記号で指示された領域に記述さ
れた変数について、格納形式を変更するためのオブジェ
クトコードを付加する。
【0011】
【実施例】図1に、本発明に係る処理説明図を示す。な
お、ここではビッグエンディアンの計算機を想定したソ
ースプログラムを、リトルエンディアンの計算機に移植
する場合を例に説明する。図に示すように、ソースプロ
グラムSPは、構文解析装置1に内容が解析され、ソー
スプログラムSP上の整数を格納する変数について、格
納形式がビッグエンディアンであるかリトルエンディア
ンであるかが判定され、判定結果を格納する記号表2が
生成される。コンパイラ3は、記号表2を参照し、ソー
スプログラムSPのコンパイルを実施して、計算機が認
識して処理を実行するために参照するオブジェクトプロ
グラムOPの生成を行なう。
【0012】ソースプログラムSPには、予めビッグエ
ンディアンを想定して記述された箇所を特定するための
構文(領域指示記号)をコーディングする。図4に、本
発明に係る構文のコーディング例を示す。図に示すよう
に、ステップS12の範囲にコーディングされた内容が
、ビッグエンディアンを想定したもので、その前後、即
ちステップS11及びステップS13において、ビッグ
エンディアンを想定してコーディングされた箇所の始ま
りと終わりを示す開始構文SW及び終了構文EWをコー
ディングする。構文解析装置1は、ソースプログラムS
P上で宣言された変数の全てについて、記号表にデータ
の格納形態と共に登録する。そして、開始構文SW及び
終了構文EWにより指示された箇所で宣言され、整数を
格納する変数については、構文の指示する格納形態、こ
の場合、ビッグエンディアンを想定してコーディングさ
れた変数であることを示す登録を記号表2に行なう。
【0013】図5に、記号表2の説明図を示す。先に図
4において説明したステップS12において、整数デー
タを格納する変数として、変数lengthが宣言され
ている。このため、構文解析装置1は、変数lengt
hに対応して変数の格納形式、即ち属性としてビッグ(
ビッグエンディアン)の登録を行なう。なお、開始構文
SW及び終了構文EWにより指示された箇所以外の変数
(例えば変数i)については、計算機の機能に合わせて
、属性としてリトル(リトルエンディアン)の登録が実
施される。
【0014】コンパイラ3は、構文解析装置1による記
号表2の生成が完了すると、ソースプログラムSPのコ
ンパイルを実施することになる。この際、記号表2を参
照して、属性がビッグに設定された記号(変数leng
th)を認識すると、変数lengthに係る処理部分
に、ビッグエンディアンからリトルエンディアンに格納
形式を変換するための記述、即ち、先に図3において説
明したステップS4に対応する内容のオブジェクトコー
ド(機械語)を自動的に付加し、オブジェクトプログラ
ムOPを生成する。このオブジェクトコードは、先に図
3のステップS4に示したコーディングに対応するもの
である。
【0015】以上の説明のように、予めソースプログラ
ムSP上に所定の構文をコーディングし、この構文に指
示された箇所の整数データを格納する変数を特定するこ
とにより、コンパイラ3による変数の格納形式の変換を
自動的に行なうことができる。本発明は、以上の実施例
に限定されない。実施例では、C言語のソースプログラ
ムを例に説明を行なったが、プログラムの言語は特に限
定されるものでなく、例えばアセンブラ言語等おいても
本発明を適用することができる。また、ビッグエンディ
アンを想定したソースプログラムを、リトルエンディア
ンの計算機に移植する場合を例に説明したが、リトルエ
ンディアンを想定したソースプログラムを、ビッグエン
ディアンの計算機に移植する場合にも本発明を適用する
ことができる。
【0016】
【発明の効果】以上説明したように本発明によると、整
数データを格納する変数がコーディングされた箇所を指
示する構文を記述することにより、その後自動的に格納
形式の変換が実施されるため、整数データを格納する変
数の個々について、格納形式を変換するためのコーディ
ングを実施する必要がない。このため、コーディングに
要する手間の軽減及びコーディングを忘れたためのデバ
ッグ作業を減少させることができる。
【図面の簡単な説明】
【図1】本発明に係る処理説明図である。
【図2】一般的な変数の説明図である。
【図3】従来一般の切り分けに係る説明図である。
【図4】本発明に係る構文のコーディング例である。
【図5】本発明に係る記号表の説明図である。
【符号の説明】 1  構文解析装置 2  記号表 3  コンパイラ SP  ソースプログラム OP  オブジェクトプログラム

Claims (1)

    【特許請求の範囲】
  1. 【請求項1】  特定の計算機上での稼働を想定して生
    成され、変数への整数データの格納形式が前記特定の計
    算機に固有の形態を採るソースプログラムを、前記変数
    への前記整数データの格納形式が異なる他の計算機に移
    植する場合、前記ソースプログラム上に、前記変数の記
    述された領域を特定する領域指示記号を記述し、前記ソ
    ースプログラムをオブジェクトプログラムに変換するた
    めに、当該ソースプログラム上の全ての変数について整
    数データの格納形式を判断し、前記領域指示記号で指示
    された領域に記述された変数について、前記格納形式を
    変更するためのオブジェクトコードを付加し、前記オブ
    ジェクトプログラムを生成することを特徴とする変数管
    理方法。
JP16508091A 1991-06-10 1991-06-10 変数管理方法 Pending JPH04362738A (ja)

Priority Applications (1)

Application Number Priority Date Filing Date Title
JP16508091A JPH04362738A (ja) 1991-06-10 1991-06-10 変数管理方法

Applications Claiming Priority (1)

Application Number Priority Date Filing Date Title
JP16508091A JPH04362738A (ja) 1991-06-10 1991-06-10 変数管理方法

Publications (1)

Publication Number Publication Date
JPH04362738A true JPH04362738A (ja) 1992-12-15

Family

ID=15805494

Family Applications (1)

Application Number Title Priority Date Filing Date
JP16508091A Pending JPH04362738A (ja) 1991-06-10 1991-06-10 変数管理方法

Country Status (1)

Country Link
JP (1) JPH04362738A (ja)

Cited By (4)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
JP2008523514A (ja) * 2004-12-13 2008-07-03 インテル コーポレイション バイエンディアン対応コンパイラを実現する方法及び装置
US7587557B2 (en) 2003-03-19 2009-09-08 Panasonic Corporation Data sharing apparatus and processor for sharing data between processors of different endianness
JP2011129102A (ja) * 2009-12-21 2011-06-30 Intel Corp エンディアン変換のための方法および装置
JP2011129132A (ja) * 2009-12-21 2011-06-30 Intel Corp エンディアン変換ツール

Cited By (5)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
US7587557B2 (en) 2003-03-19 2009-09-08 Panasonic Corporation Data sharing apparatus and processor for sharing data between processors of different endianness
JP2008523514A (ja) * 2004-12-13 2008-07-03 インテル コーポレイション バイエンディアン対応コンパイラを実現する方法及び装置
US8863103B2 (en) 2004-12-13 2014-10-14 Intel Corporation Method and apparatus for implementing a bi-endian capable compiler
JP2011129102A (ja) * 2009-12-21 2011-06-30 Intel Corp エンディアン変換のための方法および装置
JP2011129132A (ja) * 2009-12-21 2011-06-30 Intel Corp エンディアン変換ツール

Similar Documents

Publication Publication Date Title
US4330822A (en) Recursive system and method for binding compiled routines
US5701487A (en) Method and apparatus for displaying locations of errors detected inside software macro calls
JPH0630066B2 (ja) テーブル型言語翻訳方法
EP0413486A2 (en) Message processing system
EP0317478A2 (en) Dynamically adaptive environment for computer programs
JPH04362738A (ja) 変数管理方法
EP0240606A2 (en) Pipe-line processing system and microprocessor using the system
US8464235B2 (en) Adaptive production of assembler
Taylor Microprocessor‐based, programmable laboratory equipment controller and data acquisition system
JP2620545B2 (ja) テーブル駆動による編集装置
JPH04362739A (ja) 変数管理方法
EP1183596B1 (en) Generating optimized computer data field conversion routines
JPH04305739A (ja) 変数認識方法
JPH03154959A (ja) 画面表示データ管理方式
JPH0792754B2 (ja) アセンブル装置
JP2909185B2 (ja) アセンブラ処理方法
CN115037735A (zh) 一种基于短名称的链接方法和系统
JPS58114247A (ja) 精度自動拡張方式
JPH04248624A (ja) プログラム変換処理装置
JPH032933A (ja) オブジェクトコード生成装置
JPS63627A (ja) キ−ワ−ド設定処理方式
JPH01316873A (ja) 翻訳システムの予約語テーブル管理方式
JPS626327A (ja) ソフトウエア組合わせ時の整合化処理方式
JPH04260134A (ja) 言語処理システムの名標管理方式
JPS6339037A (ja) プログラム呼出し処理方式