HTBasic TOP アイネット株式会社(i2net) HOME
製品概要 新着情報 サポート情報 製品カタログ ダウンロード HTB関連製品    Tip   Y2Kについて
 ■ HTBasic デバッギング ■
 ■ XREF (クロス・リファレンス)■

XREF (クロス・リファレンス)
CenterとCentre NumberとNumbr ColorとColore ControlとConntrol .....
こんな変数名のスペルの違いが引き起こす問題を解決したい
指定する変数の変更に際し、何処でその変数が使用されているか知りたい
  クロス・リファレンスは、古く、大型コンピュータでの FOTRTRAN COBOL BASIC等のプログラム言語で、プログラムを作成する時、修正/変更をかける時有用に使われているデバッグ方法です。
  HTBasic では、XREF (クロス・リファレンス)が備わっています。
 XREF はプログラムの相互参照を生成します。  その大きな効果は、
      − プログラムに使用されている変数名が、何処で定義されいるのか
      − 知りたい変数名は、何処のプログラム行で使用されているか
      − FINDコマンドで見つからないスペル・ミスした変数名はどこの行にあるのか
を知ることで、プログラムが、プログラマーが意図とするプログラム・コードとなっているかを確認する事が出来ます。
  HTBasicの XREF (クロス・リファレンス)
  XREF は、行ラベルと行番号、io-パス名、数値および文字変数、サブプログラム( SUB )、関数( FN )とコモンブロック( COM )名の相互参照リストを生成します。  プログラムの中で使用していないシンボル・テーブルのエントリ数を表示します。  デバイス・セレクターが指定されない限り、リストは PRINTER IS で設定されているデバイスに送られます。
  リファレンスが SUB のパラメータ、 COM , COMPLEX , DIM , REAL , INTEGER 文または行ラベルで宣言されるものには、【<-DEF】の文字でマークされます。
  各々のプログラムの文脈を確認し、使用していないシンボル・テーブルのエントリ数を表示します。 サブプログラム名を MAIN を選択すると、 MAIN の文脈は相互参照されます。プログラムのプリラン時、配列変数は【Array】の隣に定義された行番号を表示します。
   サンプル・プログラムを使用して XREF (クロス・リファレンス)を操作
  1.サンプルプログラム
"
< Text 形式での表示 >
  2. XREF (クロス・リファレンス)の実行

@

A

B
  C  
  @ メニュー・バーから、View|Xref... を選択し、 A XREF ダイアログで、 Option|Subprogram で、 MAIN を選択し、 B で < OK > をクリックすると、 C XREF リストが表示されます。
  
  3. XREF (クロス・リファレンス)リストの見かた
説 明  行目   表 示
クロス・リファレンスの表題1      >>>>   Cross Reference   <<<<
<区分> 数値変数3*   Numeric Variables
数値配列変数 A は
行番号50 で定義
行番号70,90,100,110 で使用
4 A               Array       50 <-DEF        70       90      100     110
数値配列変数 B は
行番号50 で定義
何処にも使用されていない
5 B               Array       50 <-DEF 
数値変数 Counter は
行番号12 で定義
行番号44 で使用されている
6 Counter                     12 <-DEF        44  
数値変数 I は行番号60/
70/80/100/120 で使用されている
7 I                               60       70        80     100      120
数値変数 Number は
行番号11 で定義
何処にも使用されていない
8 Number                      11 <-DEF 
数値変数 Numbr は
変数名のスペルミスで行番号43 で使用されてるのみ
9 Numbr                       43  
<区分> 文字変数11*   String Variables
文字変数 S1$ は、行番号11 で定義され、行番号41 で使用されている12 S1$                           11 <-DEF        41  
文字変数 S2$ は、行番号11 で定義され、行番号42 で使用されている13 S2$                           12 <-DEF        42  
<区分> サブプログラム15*   SUB Subprograms
サブプログラム Sub1 が行番号100 から始まっている16 Sub1                        100  
<区分> コモン・ブロック名18*   Common Block Names
コモン・ブロック名をもたない COM* が行番号11 に存在19                                  11  
コモン・ブロック名 Test のCOM* は行番号12 に存在20 Test                           12  
各文脈の最後に出る未使用エントリーの数(ここでは 4 )22 Unused entries =     4
XREF (クロス・リファレンス) の構文(シンタックス)
   構文(シンタックス)
   XREF [ [SUB] sub-name] [: option]
XREF [#device-selector [; [SUB] sub-name]] [: option]
   ここで
device selector は、デフォルトでは、PRINTER IS デバイスです。 sub-name とは、サブプログラム(SUB)名| 関数名(FN) [$] | 文字列 を使用します。
optionとは、 CM | IO | LL | LN | NF | NV | SB | SF | SV| UN があります。
   文例
   XREF 
   XREF Trigger:NV 
   XREF #701;Launch 
   説明
   XREF は、行ラベルと行番号、io-パス名、数値および文字変数、サブプログラム( SUB )、関数( FN )とコモンブロック( COM )名の相互参照リストを生成します。プログラムの中で使用していないシンボル・テーブルのエントリ数を表示します。 デバイス・セレクターが指定されない限り、リストはPRINTER ISで設定されているデバイスに送られます。
    クロス・リファレンス・リストの見出しは、
     >>>>   Cross Reference   <<<<
と表示されます。
    サブプログラムが選択された場合、次の見出しが表示されます。
     >>>>   Subprogram   <<<<
   XREF に続くオプション・パラメータ
 
オプション内容
CMコモンブロック名(Common Block Names)
IOI/Oパス名(I/O Path Names)
LL行ラベル(Line Labels)
LN行番号(Line Numbers)
NF数値関数(Numeric Functions)
NV数値変数(Numeric Variables)
SBサブプログラム(SUB Subprograms)
SF文字関数(String Functions)
SV文字変数(String Variables)
UN未使用のエントリ(Unused Entries
    リファレンスがSUBのパラメータ、COM,COMPLEX,DIM,REAL,INTEGER文または行ラベルで宣言されるものには、【<-DEF】の文字でマークされます。  各々のプログラムの文脈を確認し、使用していないシンボル・テーブルのエントリ数を表示します。サブプログラム名をMAINとすると、MAINの文脈は相互参照されます。プログラムのプリラン時、配列変数は  Array の隣に、定義された行番号を表示されます。
サブプログラムポインタ
    XREF 文で、文字表現でサブプログラム名を記すると、明確に名前付けするよりサブプログラムを指しているので、文字表現はサブプログラムポインタと呼ばれる。文字表現が変わると、ポインターは異なるサブプログラムを指しています。 サブプログラム名は大文字を一文字目に使用し、続けて小文字使用せねばなりません。 サブプログラムポインタはCALL、DELSUB、INMEMとLOADSUB文でも使用します。
    HPBASIC へのポーティング
    XREF でのサブプログラム・ポインタの使用は、HPBASIC では利用できない新しい HTBasic の機能です。その理由でHPBASICへポーティングしなおさねばならないプログラムでは使用すべきではありません。
  参照:
    PRINTALL IS  ,  TRACE 
   
 
<このページのトップに戻る> ; <HTBasicTipに戻る>
TransEra, HTBasic, TAMS, HP, Agilent, Keysight, NI, ines, Microsoft, Windows等記載されている
会社名、製品名は各社の登録商標または商標です

【お 問 い 合 わ せ 先】
アイネット株式会社

   E-mailでのお問い合わせ
_/_/_/ Copyright 1998-2023 I2NET Co., Ltd. AllRights Reserved. _/_/_/