HP OpenVMS Systems Documentation |
| 前へ | 次へ | 目次 | 索引 |
以下の各サブトピックでは,デバッガによる Pascal のサポートについて説明します。
C.12.1 言語式の演算子
言語式でサポートされている Pascal の演算子を次に示します。
| 種類 | シンボル | 機能 |
|---|---|---|
| 接頭辞 | + | 単項正符号 |
| 接頭辞 | - | 単項負符号 (否定) |
| 挿入辞 | + | 加算,連結 |
| 挿入辞 | - | 減算 |
| 挿入辞 | * | 乗算 |
| 挿入辞 | / | 実数の除算 |
| 挿入辞 | DIV | 整数の除算 |
| 挿入辞 | MOD | モジュロ |
| 挿入辞 | REM | 剰余 |
| 挿入辞 | ** | べき乗(VAX 固有) |
| 挿入辞 | IN | 集合メンバシップ |
| 挿入辞 | = | 等値 |
| 挿入辞 | <> | 不等 |
| 挿入辞 | > | 大なり |
| 挿入辞 | >= | 以上 |
| 挿入辞 | < | 小なり |
| 挿入辞 | <= | 以下 |
| 接頭辞 | NOT | 論理否定 |
| 挿入辞 | AND | 論理積 |
| 挿入辞 | OR | 論理和 |
型キャスト演算子(::) は,言語式ではサポートされていません。
C.12.2 言語式とアドレス式の構造
サポートされている,Pascal の言語式とアドレス式の構造を次に示します。
| シンボル | 構造 |
|---|---|
| [ ] | 添字指定 |
| .(ピリオド) | レコードの構成要素の選択 |
| ^(サーカンフレックス) | ポインタの間接参照 |
サポートされている,Pascal の定義済みのシンボルを次に示します。
| シンボル | 意味 |
|---|---|
| TRUE | 論理値TRUE |
| FALSE | 論理値FALSE |
| NIL | NILポインタ |
サポートされている,Pascal の組み込み関数を次に示します。
| シンボル | 意味 |
|---|---|
| SUCC | 論理的後続データ |
| PRED | 論理的先行データ |
サポートされている Pascal のデータ型を次に示します。
| Pascal のデータ型 | VMS のデータ型名 |
|---|---|
| INTEGER | ロングワード整数(L) |
| INTEGER | ワード整数 (W,WU) |
| INTEGER | バイト整数 (B,BU) |
| UNSIGNED | ロングワード符号なし (LU) |
| UNSIGNED | ワード符号なし (WU) |
| UNSIGNED | バイト符号なし (BU) |
| SINGLE,REAL | F浮動小数点数(F) |
| REAL(Alpha および I64 固有) | IEEE S 浮動小数点数(FS) |
| DOUBLE | D浮動小数点数(D) |
| DOUBLE | G浮動小数点数(G) |
| DOUBLE(Alpha および I64 固有) | IEEE T 浮動小数点数(FT) |
| QUADRUPLE(VAX および I64 固有) | H 浮動小数点数(H) |
| BOOLEAN | (なし) |
| CHAR | ASCII テキスト(T) |
| VARYING OF CHAR | 変形テキスト (VT) |
| SET | (なし) |
| FILE | (なし) |
| 列挙 | (なし) |
| 部分範囲 | (なし) |
| 型付きポインタ | (なし) |
| 配列 | (なし) |
| レコード | (なし) |
| 可変レコード | (なし) |
Pascal の言語式の中では,デバッガは,[1,2,5,8..10] や [RED,BLUE] といった Pascal の集合定数を受け入れます。
REAL 型の浮動小数点数は,コンパイラのスイッチまたはソース・コードの属性によって,F 浮動小数点数または IEEE S 浮動小数点数のどちらかで表現されます。
DOUBLE 型の浮動小数点数は,コンパイラのスイッチまたはソース・コードの属性によって,D 浮動小数点数,G 浮動小数点数,または IEEE T 浮動小数点数のどれかで表現されます。
C.12.6 補足情報
通常は,変数,レコード・フィールド,配列の構成要素のそれぞれに対して,検査,評価,格納を行うことができますが,次の場合は例外です。プログラムの中で変数が参照されていない場合,Pascal コンパイラは変数を割り当てません。変数を割り当てていないときにその変数を検査しようとしたり,その変数へ格納しようとするとエラー・メッセージが表示されます。
変数にデータを格納する場合,格納される値が変数よりも大きいときは,デバッガは上位ビットを切り捨てます。格納される値が変数よりも小さいときは,上位ビットをゼロで埋めます。代入互換性の規則に違反した格納をすると情報メッセージが表示されます。
実行中のブロック内であればどのブロックでも自動変数を調べたり,自動変数へ格納することができます。しかし,自動変数はスタック領域に割り当てられ,レジスタに格納されるので,変数が初期化されるまで,または変数に値が代入されるまで,自動変数の値は未定義であるとみなされます。
C.12.7 制限事項
Pascal についてのデバッガの制限事項は次のとおりです。
VARYING OF CHAR の文字列の値を調べることはできますが,Pascal の通常の構文を使用して .LENGTH フィールドや .BODY フィールドの値を調べることはできません。たとえば,VARS が文字列変数名の場合,次のコマンドはサポートされません。
DBG> EXAMINE VARS.LENGTH DBG> EXAMINE VARS.BODY |
これらのフィールドを確認するには,次の方法を使用します。
| 使用する | 使用しない |
|---|---|
| EXAMINE/WORD VARS | EXAMINE VARS.LENGTH |
| EXAMINE/ASCII VARS+2 | EXAMINE VARS.BODY |
次の各サブトピックでは,デバッガによる PL/I のサポートについて説明します。
C.13.1 言語式の演算子
言語式でサポートされている PL/I の演算子を次に示します。
| 種類 | シンボル | 機能 |
|---|---|---|
| 接頭辞 | + | 単項正符号 |
| 接頭辞 | - | 単項負符号 (否定) |
| 挿入辞 | + | 加算 |
| 挿入辞 | - | 減算 |
| 挿入辞 | * | 乗算 |
| 挿入辞 | / | 除算 |
| 挿入辞 | ** | べき乗 |
| 挿入辞 | || | 連結 |
| 挿入辞 | = | 等値 |
| 挿入辞 | ^= | 不等 |
| 挿入辞 | > | 大なり |
| 挿入辞 | >= | 以上 |
| 挿入辞 | ^< | 以上 |
| 挿入辞 | < | 小なり |
| 挿入辞 | <= | 以下 |
| 挿入辞 | ^> | 以下 |
| 接頭辞 | ^ | ビット単位のNOT |
| 挿入辞 | & | ビット単位のAND |
| 挿入辞 | | | ビット単位のOR |
サポートされている,PL/I の言語式とアドレス式の構造を次に示します。
| シンボル | 構造 |
|---|---|
| ( ) | 添字指定 |
| .(ピリオド) | 構造体の構成要素の選択 |
| -> | ポインタの間接参照 |
サポートされている PL/I のデータ型を次に示します。
| PL/I のデータ型 | VMS のデータ型名 |
|---|---|
| FIXED BINARY | バイト整数(B),ワード整数 (W),またはロングワード整数(L) |
| FIXED DECIMAL | パック 10 進数(P) |
| FLOAT BIN/DEC | F 浮動小数点数(F) |
| FLOAT BIN/DEC | D 浮動小数点数(D) |
| FLOAT BIN/DEC | G 浮動小数点数(G) |
| FLOAT BIN/DEC(VAX 固有) | H 浮動小数点数(H) |
| BIT | ビット(V) |
| BIT | ビット境界合わせなし (VU) |
| CHARACTER | ASCII テキスト(T) |
| CHARACTER VARYING | 変形テキスト(VT) |
| FILE | (なし) |
| ラベル | (なし) |
| ポインタ | (なし) |
| 配列 | (なし) |
| 構造体 | (なし) |
次の記憶クラスの変数は静的に割り当てられます。
STATIC
EXTERNAL
GLOBALDEF
GLOBALREF
次の記憶クラスの変数は,スタック上またはレジスタ内に非静的に割り当てられます。
AUTOMATIC
BASED
CONTROLLED
DEFINED
PARAMETER
以下の各サブトピックでは, PL/I のデータ型を使用した EXAMINE コマンドの例を示します。デバッガのサポートで PL/I 固有の事項についても説明しています。
C.13.5.1 EXAMINEコマンドの例
次に,EXAMINE コマンドでのいくつかの PL/I のデータ型の使用例を示します。
DBG> EXAMINE X PROG4\X: 540.02700 |
DBG> EXAMINE PART
MAIN_PROG\INVENTORY_PROG\PART
ITEM: "WF-1247"
PRICE: 49.95
IN_STOCK: 24
|
DBG> EXAMINE Q MAIN\Q: "666.3330" |
DBG> EXAMINE/HEXADECIMAL P PROG4\SAMPLE.P: 0000B2A4 |
DBG> EXAMINE X PROG\X: "A" |
ALLOCATE X SET (PTR); |
この場合,X の値は次のように調べられます。
DBG> EXAMINE PTR->X PROG6\PTR->X: "A" |
デバッガによる PL/I のサポートについては次の点に注意してください。
入口変数やラベル変数で,または入口やラベルの形式で DEPOSIT コマンドを使用することはできません。また,配列全体や構造体全体といっしょに DEPOSIT コマンドを使用することもできません。入口変数やラベル変数で,または入口やラベルの形式で EXAMINE コマンドを使用することはできません。EXAMINE コマンドの代わりに EVALUATE/ADDRESS コマンドを使用してください。
GLOBALDEF VALUE リテラルなどのグローバル・リテラルの属性や値を確認するために EXAMINE コマンドを使用することはできません。これはグローバル・リテラルが静的な式であるためです。代わりに EVALUATE コマンドを使用してください。
コンパイル時の変数およびプロシージャといっしょに,EXAMINE,EVALUATE, DEPOSIT の各コマンドを使用することはできません。しかし,その定数がデスティネーションではなくソースである場合は,コンパイル時の定数とともに EVALUATE コマンドや DEPOSIT コマンドを使用することができます。EXAMINE コマンドは使用できません。
初期化されていない自動変数の内容は,値が代入されるまでは無効です。代入する前に検査した場合,どのような値が表示されるかは予測できません。
他のポインタの値をポインタ変数に格納することで両方のポインタへのシンボル参照を行うか,または仮想アドレスをポインタ変数に格納するかのどちらかの方法によって,ポインタ変数へ値を格納することができます。 EVALUATE/ADDRESS コマンドを使用すると,変数の仮想アドレスを知ることができます。それからそのアドレスをポインタに格納してください。ポインタをチェックする場合,デバッガは,ポインタが指す変数の仮想アドレスの形式でポインタの値を表示します。
PL/I の言語規則に準拠するために,PL/I の言語式のn または n.n の形式の数値定数はすべて整数定数や浮動小数点定数ではなく,パック 10 進数の定数として処理されます。したがって,10 の内部表現は 0C01h であり,0Ah ではありません。
nEn または n.nEn の構文を使用すると,浮動小数点定数を入力することができます。
内部表現がロングワード整数である定数を入力する構文は,PL/I にはありません。デバッガは PL/I の型変換規則をサポートしているので,通常,デバッグ時にこの制約が重大なものになることはありませんが,整数定数を入力することはできます。入力にはデバッガの %HEX,%OCT,%BIN の各演算子を使用してください。これが可能なのは,10 進数以外の定数は FIXED BINARY とみなされるためです。たとえば,EVALUATE/HEXADECIMAL 53 + %HEX 0 というコマンドは 00000035 を表示します。
| 前へ | 次へ | 目次 | 索引 |