コンパイル時、コンパイラーは、ソース・プログラム、コンパイル処理、およびオブジェクト・モジュールに関する情報を記載するリストを生成します。TERMINAL オプションは、端末に、診断情報と統計情報を送信します。IBM.PRINT 環境変数は、印刷可能なファイル用の出力ディレクトリーを指定します (IBM.PRINT 環境変数の詳細については、IBM.PRINTを参照してください)。次のリストの説明は、印刷ページ上の外観について述べています。
CHIMES プログラムのこのリストは、コンパイラー・リストの有効性の高いセクションの一部を強調して示します。図 3は、CHIMES プログラムのコンパイラー・リストとほぼ同じものです。
5724-B67 IBM(R) PL/I for Windows(R) V7.6 (Built:20090606) 2009.06.07 11:41:55 Page 1
Options Specified 1
Environment:
Command: number options a(s) x nest gonumber lc(55)
Line.File Process Statements
1.0 *PROCESS MACRO S A(F) X AG;
2.0 *PROCESS LANGLVL(SAA2);
3.0 *PROCESS NOT('^') OR('|');
5724-B67 IBM(R) PL/I for Windows(R) V7.6 (Built:20090606) 2009.06.07 11:41:55 Page 2
Options Used 2
+ AGGREGATE(DECIMAL)
+ ATTRIBUTES(FULL)
BIFPREC(31)
BLANK('09'x)
CHECK( NOCONFORMANCE NOSTORAGE )
CMPAT(LE)
CODEPAGE(00819)
NOCOMPILE(S)
NOCOPYRIGHT
CURRENCY('$')
NODBCS
DEFAULT(IBM ASSIGNABLE NOINITFILL NONCONNECTED LOWERINC
DESCRIPTOR DESCLIST DUMMY(ALIGNED) ORDINAL(MIN)
BYADDR RETURNS(BYVALUE) LINKAGE(OPTLINK) NORETCODE
NOINLINE REORDER NOOVERLAP NONRECURSIVE ALIGNED
NULLSYS BIN1ARG NULLSTRADDR EVENDEC SHORT(HEXADEC)
ASCII IEEE NATIVE NATIVEADDR E(IEEE))
NODLLINIT
NOEXIT
EXTRN(SHORT)
FLAG(W)
FLOATINMATH(ASIS)
+ GONUMBER
NOGRAPHIC
IMPRECISE
INCAFTER(PROCESS(""))
INCLUDE(EXT('inc' 'cpy' 'mac'))
NOINITAUTO
NOINITBASED
NOINITCTL
NOINITSTATIC
NOINSOURCE
LANGLVL(SAA2 NOEXT)
LIBS( SINGLE DYNAMIC )
LIMITS( EXTNAME(100) FIXEDBIN(31,31) FIXEDDEC(15) NAME(100) )
LINECOUNT(60)
NOLINEDIR
NOLIST
LISTVIEW(SOURCE)
+ MACRO
MARGINI(' ')
MARGINS(2,72)
MAXGEN(100000)
MAXMSG(W 250)
MAXNEST( BLOCK(17) DO(17) IF(17) )
MAXSTMT(4096)
MAXTEMP(50000)
NOMDECK
MSG(*)
NAMES('@#$' '@#$')
NATLANG(ENU)
NONEST
+ NOT('^')
NUMBER
OBJECT
NOOFFSET
NOONSNAP
OPTIMIZE(0)
+ OPTIONS(DOC)
OR('|')
+ PP( MACRO )
NOPPCICS
NOPPMACRO
NOPPINCLUDE
NOPPSQL
NOPPTRACE
PRECTYPE(ANS)
PREFIX(CONVERSION FIXEDOVERFLOW INVALIDOP OVERFLOW
NOSIZE NOSTRINGRANGE NOSTRINGSIZE NOSUBSCRIPTRANGE
UNDERFLOW ZERODIVIDE)
PROBE
NOPROCEED(S)
5724-B67 IBM(R) PL/I for Windows(R) V7.6 (Built:20090606) 2009.06.07 11:41:55 Page 3
PROCESS(DELETE)
QUOTE('"')
REDUCE
RESEXP
RESPECT()
RULES(IBM BYNAME NODECSIZE ELSEIF EVENDEC GOTO NOLAXBIF NOLAXCTL
LAXDCL NOLAXDEF LAXENTRY LAXIF LAXINOUT LAXLINK LAXMARGINS
LAXPUNC LAXQUAL LAXSCALE LAXSEMI LAXSTG NOLAXSTRZ MULTICLOSE UNREF)
NOSEMANTIC(S)
NOSNAP
NOSOSI
+ SOURCE
STATIC(SHORT)
NOSTMT
NOSTORAGE
NOSYNTAX(S)
SYSPARM('')
SYSTEM(WINDOWS PENTIUM)
TERMINAL
NOTEST
USAGE( HEX(SIZE) ROUND(IBM) SUBSTR(STRICT) UNSPEC(IBM) )
WIDECHAR(LITTLEENDIAN)
WINDOW(1950)
XINFO(NODEF NOXML)
XML( CASE(UPPER) )
+ XREF(FULL)
5724-B67 IBM(R) PL/I for Windows(R) V7.6 (Built:20090606) 2009.06.07 11:41:55 Page 4
Compiler Source
Line.File LV NT
5.0
6.0 /********************************************************************/
7.0 /* */
8.0 /* NAME - CHIMES.PLI */
9.0 /* */
10.0 /* DESCRIPTION */
11.0 /* Plays a tune using system API services */
12.0 /* */
13.0 /* 5639-A83, 5639-A24 (C) Copyright IBM Corp. 1992,1996. */
14.0 /* All Rights Reserved. */
15.0 /* US Government Users Restricted Rights-- Use, duplication or */
16.0 /* disclosure restricted by GSA ADP Schedule Contract with */
17.0 /* IBM Corp. */
18.0 /* */
19.0 /* DISCLAIMER OF WARRANTIES */
20.0 /* The following 'enclosed' code is sample code created by IBM */
21.0 /* Corporation. This sample code is not part of any standard */
22.0 /* IBM product and is provided to you solely for the purpose of */
23.0 /* assisting you in the development of your applications. The */
24.0 /* code is provided "AS IS", without warranty of any kind. */
25.0 /* IBM shall not be liable for any damages arising out of your */
26.0 /* use of the sample code, even if IBM has been advised of the */
27.0 /* possibility of such damages. */
28.0 /* */
29.0 /********************************************************************/
30.0 CHIMES: PROC OPTIONS(MAIN); /* Play a tune using DOSBEEP tones */
31.0
32.0 DCL ( REST VALUE( 0 ), /* Declare Named Constants */
33.0 G4 VALUE( 392 ), /* for note and rest tone */
34.0 C5 VALUE( 523 ), /* values and timings. */
35.0 D5 VALUE( 587 ),
36.0 E5 VALUE( 657 ),
37.0 WHOLE VALUE( 800 ) ) FIXED BIN(31);
38.0
39.0 DCL NOTES(19,2) STATIC NONASGN FIXED BIN(31)
40.0 3 INIT( E5, (WHOLE/2), /* Declare tone and timing */
41.0 C5, (WHOLE/2), /* for each note of tune. */
42.0 D5, (WHOLE/2),
43.0 G4, (WHOLE), /* Initial values may be */
44.0 REST, (WHOLE/2), /* restricted expressions */
45.0 G4, (WHOLE/2), /* using Named Constants */
46.0 D5, (WHOLE/2), /* previously defined in */
47.0 E5, (WHOLE/2), /* this program. */
48.0 C5, (WHOLE),
49.0 REST, (WHOLE/2),
50.0 E5, (WHOLE/2),
51.0 C5, (WHOLE/2),
52.0 D5, (WHOLE/2),
53.0 G4, (WHOLE),
54.0 REST, (WHOLE/2),
55.0 G4, (WHOLE/2),
56.0 D5, (WHOLE/2),
57.0 E5, (WHOLE/2),
58.0 C5, (WHOLE) );
59.0
60.0 DCL I FIXED BIN(31);
61.0
62.0 /* Declare external APIs called by chimes. */
63.0
65.0 DCL BEEP ENTRY( FIXED BIN(31), FIXED BIN(31) /* tone, time */
66.0 EXT( 'Beep' ) /* External name of function*/
67.0 OPTIONS( BYVALUE /* Pass parameters by value */
68.0 LINKAGE(STDCALL));
69.0
70.0
71.0 DCL SLEEP ENTRY( FIXED BIN(31) ) /* Time duration only*/
72.0 EXT( 'Sleep' )
73.0 OPTIONS( BYVALUE
74.0 LINKAGE(STDCALL) );
89.0
90.0 /* Play all of the notes and rests of the tune using a do loop. */
91.0
92.0 DO I = LBOUND(NOTES,1) TO HBOUND(NOTES,1);
93.0 IF NOTES(I,1) ^= 0 /* Note the use of ^ for logical NOT*/
94.0 THEN CALL BEEP( NOTES(I,1), NOTES(I,2) );
95.0 ELSE CALL SLEEP( NOTES(I,2) );
96.0 END;
97.0
98.0 END;
5724-B67 IBM(R) PL/I for Windows(R) V7.6 (Built:20090606) 2009.06.07 11:41:55 Page 5
Attribute/Xref Table 4
Line.File Identifier Attributes
65.0 BEEP CONSTANT EXTERNAL('Beep')
ENTRY( BYVALUE FIXED BIN(31,0),
BYVALUE FIXED BIN(31,0) )
Refs: 94.0
34.0 C5 CONSTANT FIXED BIN(31,0)
Refs: 39.0 39.0 39.0 39.0
30.0 CHIMES CONSTANT EXTERNAL
ENTRY()
35.0 D5 CONSTANT FIXED BIN(31,0)
Refs: 39.0 39.0 39.0 39.0
36.0 E5 CONSTANT FIXED BIN(31,0)
Refs: 39.0 39.0 39.0 39.0
33.0 G4 CONSTANT FIXED BIN(31,0)
Refs: 39.0 39.0 39.0 39.0
+++++++ HBOUND BUILTIN
Refs: 92.0
60.0 I AUTOMATIC FIXED BIN(31,0)
Refs: 93.0 94.0 94.0 95.0
Sets: 92.0
+++++++ LBOUND BUILTIN
Refs: 92.0
39.0 NOTES STATIC NONASSIGNABLE
DIM(1:19,1:2) FIXED BIN(31,0)
INITIAL
Refs: 92.0 92.0 93.0 94.0 94.0
95.0
32.0 REST CONSTANT FIXED BIN(31,0)
Refs: 39.0 39.0 39.0
71.0 SLEEP CONSTANT EXTERNAL('Sleep')
ENTRY( BYVALUE FIXED BIN(31,0) )
Refs: 95.0
37.0 WHOLE CONSTANT FIXED BIN(31,0)
Refs: 39.0 39.0 39.0 39.0 39.0
39.0 39.0 39.0 39.0 39.0
39.0 39.0 39.0 39.0 39.0
39.0 39.0 39.0 39.0
5724-B67 IBM(R) PL/I for Windows(R) V7.6 (Built:20090606) 2009.06.07 11:41:55 Page 6
Aggregate Length Table 5
Line.File Dims Offset Size Size Identifier
39.0 2 0 152 4 NOTES 5724-B67 IBM(R) PL/I for Windows(R) V7.6 (Built:20090606) 2009.06.07 11:41:55 Page 7 File Reference Table 6 File Included From Name 1 C:¥ibmpliw¥samples¥chimes.pli 3 Component Return Code Messages (Total/Suppressed) Time 7 MACRO 0 0 / 0 0 secs Compiler 0 0 / 0 1 secs End of compilation of CHIMES
コンパイル時にステートメント番号を生成すると、リストを参照することなく、(例えば、メッセージで示される) 編集の必要な行を突き止めることができます。
XREF オプションを指定すると、コンパイラーは、ID が含まれている Line.File 番号 (それぞれ、ファイル内のステートメント番号とファイル番号) とともに、ソース・プログラム内の ID のリストを含む相互参照テーブルをコンパイラー・リストに印刷します。
次の場合は、相互参照テーブルの Sets: 部分に ID が示されます。
未参照の ID がある場合、それらは別個のテーブルに示されます (この例では、示されていません)。
ATTRIBUTES と XREF を (この例のように) 指定すると、2 つのテーブルが結合されます。
明示的宣言変数は、その中に変数の存在する DECLARE ステートメントの番号とともにリストに含まれます。暗黙的宣言変数は、アスタリスクによって示され、文脈的宣言変数 (この例では、HBOUND と LBOUND) は正符号 (+) で示されます。(未宣言変数も、診断メッセージに記載されます。)
属性 INTERNAL と REAL が記載されることはありません。それぞれ矛盾する属性の EXTERNAL と COMPLEX がリストに含まれていない限り、それらが有効であることが仮定されます。
ファイル ID に関しては、属性 FILE が常に現れ、属性 EXTERNAL は適用時に現れます。 それ以外の場合は、は明示的に宣言された属性のみがリストに含まれます。
配列の場合は、次元属性が最初に印刷されます。 配列の境界が制限付きの式である場合、その式の値が境界に対して示されますが、そうでない場合はアスタリスクが示されます。
ビット・ストリングまたは文字ストリングの長さが制限付きの式である場合、その値が表示されますが、そうでない場合は アスタリスクが示されます。
| ヘッディング | 説明 |
|---|---|
| Line.File | 集合が宣言されているステートメント番号とファイル番号 |
| Offset | 集合の先頭からの各エレメントのバイト・オフセット |
| Total Size | 集合のバイト単位での全体サイズ |
| Base Size | データ型のバイト単位でのサイズ |
| Identifier | 集合名と集合内のエレメント |
FLAG オプションで指定された重大度を超えるメッセージのみが発行されます。NOTERMINAL コンパイル時オプションを指定しない限り、メッセージ、ステートメント、および戻りコードが、画面上に表示されます。