>サイトトップへ >このカテゴリの一覧へ

X 3002

:2011 (ISO/IEC 1989:2002)

(1)

目  次

ページ

序文 

1

1

  適用範囲

1

2

  引用規格

2

3

  規格合致性 

2

3.1

  規格合致実装系

2

3.1.1

  規格言語要素の受入れ 

2

3.1.2

  非 COBOL 実行時モジュールとの間の動作 

3

3.1.3

  複数の COBOL 実装系の間での動作

3

3.1.4

  実装者定義の言語要素 

3

3.1.5

  処理系依存の言語要素 

3

3.1.6

  予約語 

4

3.1.7

  規格内拡張 

4

3.1.8

  規格外拡張 

4

3.1.9

  代替又は追加の言語要素 

4

3.1.10

  旧式言語要素

4

3.1.11

  廃要素

5

3.1.12

  外部提供機能

5

3.1.13

  制限値 

5

3.1.14

  利用者向け文書化

5

3.1.15

  代替文字 

5

3.2

  規格合致翻訳群

5

3.3

  規格合致実行単位

5

3.4

  規格合致翻訳群と規格合致実装系との関係

6

3.5

  規格合致実行単位と規格合致実装系との関係

6

4

  用語及び定義 

6

5

  記述技法

23

5.1

  一般形式 

23

5.1.1

  キーワード 

23

5.1.2

  補助語 

23

5.1.3

  作用対象 

24

5.1.4

  レベル番号 

24

5.1.5

  選択可能項目

24

5.1.5.1

  角括弧 

24

5.1.5.2

  波括弧 

24

5.1.5.3

  選択指示子 

24


X 3002

:2011 (ISO/IEC 1989:2002)  目次

(2)

ページ

5.1.6

  省略記号 

25

5.1.7

  句読点 

25

5.1.8

  特殊文字 

25

5.1.9

  メタ用語 

25

5.2

  規則

25

5.2.1

  構文規則 

25

5.2.2

  一般規則 

25

5.2.3

  引数の規則 

25

5.2.4

  関数の返却値の規則 

26

5.3

  算術式

26

5.3.1

  本文中での作用対象の下付き数字 

26

5.3.2

  省略記号 

26

5.4

  整数作用対象 

26

5.5

  形式的でない記述

26

5.6

  本文中のハイフン

26

5.7

  規定条項の文章の末尾 

26

6

  正書法

27

6.1

  標識

28

6.1.1

  固定標識 

28

6.1.2

  浮動標識 

28

6.2

  固定形式正書法

29

6.3

  自由形式正書法

31

6.4

  論理的変換 

32

7

  翻訳指示機能 

33

7.1

  原文操作 

34

7.1.1

  原文操作要素

35

7.1.1.1

  翻訳指示文 

35

7.1.1.2

  ソース原文及び登録集原文

35

7.1.1.3

  仮原文 

35

7.1.1.4

  原文語 

35

7.1.2

  COPY 文 

35

7.1.3

  REPLACE 

38

7.2

  翻訳指示 

41

7.2.4

  条件翻訳 

42

7.2.5

  翻訳時算術式

42

7.2.6

  翻訳時ブール式

42

7.2.7

  定数条件式 

43

7.2.7.3

  定義済み条件

43

7.2.8

  CALL-CONVENTION 指示

43


X 3002

:2011 (ISO/IEC 1989:2002)  目次

(3)

ページ

7.2.9

  DEFINE 指示

44

7.2.10

  EVALUATE 指示 

45

7.2.11

  FLAG-85 指示

47

7.2.12

  FLAG-NATIVE-ARITHMETIC 指示 

48

7.2.13

  IF 指示 

49

7.2.14

  LEAP-SECOND 指示

49

7.2.15

  LISTING 指示 

50

7.2.16

  PAGE 指示 

50

7.2.17

  PROPAGATE 指示 

51

7.2.18

  SOURCE FORMAT 指示

51

7.2.19

  TURN 指示

52

8

  言語の概念 

53

8.1

  文字集合 

53

8.1.1

  計算機符号化文字集合 

53

8.1.2

  COBOL 文字レパートリ

54

8.1.3

  符号系 

57

8.1.4

  文字照合順序

57

8.2

  現地特性 

57

8.2.1

  現地特性フィールド名 

59

8.3

  字句の要素 

59

8.3.1

  文字列 

59

8.3.1.1

  COBOL の語 

59

8.3.1.2

  定数

66

8.3.1.3

  PICTURE 文字列

73

8.3.2

  分離符 

73

8.4

  参照

74

8.4.1

  一意参照 

74

8.4.1.1

  修飾

74

8.4.1.2

  添字

76

8.4.2

  いろいろな一意名

77

8.4.2.1

  一意名 

77

8.4.2.2

  関数一意名 

79

8.4.2.3

  部分参照 

81

8.4.2.4

  文内メソッド呼出し 

83

8.4.2.5

  オブジェクトビュー 

84

8.4.2.6

  EXCEPTION-OBJECT 

85

8.4.2.7

  NULL 

85

8.4.2.8

  SELF 及び SUPER 

85

8.4.2.9

  オブジェクトプロパティ

86


X 3002

:2011 (ISO/IEC 1989:2002)  目次

(4)

ページ

8.4.2.10

  既定義アドレス

87

8.4.2.11

  データアドレス一意名 

87

8.4.2.12

  プログラムアドレス一意名

88

8.4.2.13

  行数カウンタ

89

8.4.2.14

  報告書カウンタ

89

8.4.3

  条件名 

90

8.4.4

  明示参照及び暗黙参照 

90

8.4.5

  名前の有効範囲

90

8.4.5.1

  局所名及び大域名 

92

8.4.5.2

  プログラム名の有効範囲

93

8.4.5.3

  クラス名及びインタフェース名の有効範囲

93

8.4.5.4

  メソッド名の有効範囲 

94

8.4.5.5

  関数原型名の有効範囲 

94

8.4.5.6

  利用者関数名の有効範囲

94

8.4.5.7

  プログラム原型名の有効範囲

94

8.4.5.8

  翻訳変数名の有効範囲 

94

8.4.5.9

  パラメタ名の有効範囲 

94

8.4.5.10

  プロパティ名の有効範囲

94

8.5

  データ記述及び表現形式 

94

8.5.1

  機種によらないデータ記述

94

8.5.1.1

  ファイル及びレコード 

95

8.5.1.2

  レベル 

96

8.5.1.3

  文字処理の制限

96

8.5.1.4

  算術符号 

96

8.5.1.5

  記憶域内でのデータのけたよせ 

96

8.5.1.5.1

  英数字集団及び用途 DISPLAY のデータ項目のけたよせ 

96

8.5.1.5.2

  用途 NATIONAL のデータ項目のけたよせ 

97

8.5.1.5.3

  用途 BIT のデータ項目のけたよせ 

97

8.5.1.5.4

  実行用コードの効率を高めるための項目のけたづめ

97

8.5.1.5.5

  強い型付けの集団項目のけたよせ 

98

8.5.2

  データ項目及び定数の字類及び項類 

98

8.5.3

  型

101

8.5.3.1

  弱い型付けの項目 

102

8.5.3.2

  強い型付けの集団項目 

102

8.5.4

  長さゼロの項目

102

8.6

  データの有効範囲及び生存期間

102

8.6.1

  大域名及び局所名

102

8.6.2

  外部項目及び内部項目 

102

8.6.3

  自動項目,初期化項目及び静的項目 

103


X 3002

:2011 (ISO/IEC 1989:2002)  目次

(5)

ページ

8.6.4

  基底付き記述項及び基底付きデータ項目

104

8.6.5

  共通属性,初期化属性及び再帰属性 

104

8.6.6

  データ項目の共用

105

8.7

  演算子

105

8.7.1

  算術演算子 

105

8.7.2

  ブール演算子

105

8.7.3

  連結演算子 

106

8.7.4

  呼出し演算子

106

8.7.5

  比較演算子 

106

8.7.6

  論理演算子 

106

8.8

  いろいろな式 

107

8.8.1

  算術式 

107

8.8.2

  ブール式 

110

8.8.3

  連結式 

112

8.8.4

  条件式 

112

8.9

  予約語

123

8.10

  文脈依存語 

126

8.11

  組込み関数名 

128

8.12

  翻訳指示語 

129

8.13

  外部リポジトリ

130

9

  入出力,オブジェクト及び利用者定義関数

130

9.1

  ファイル 

130

9.1.1

  物理ファイル及び論理ファイル

130

9.1.2

  レコード領域

131

9.1.3

  ファイル結合子

131

9.1.4

  オープンモード

131

9.1.5

  ファイル結合子の共用 

132

9.1.6

  ファイル固有属性

132

9.1.7

  編成

132

9.1.7.1

  順編成 

132

9.1.7.2

  相対編成 

132

9.1.7.3

  索引編成 

133

9.1.8

  呼出し法 

133

9.1.8.1

  順呼出し法 

133

9.1.8.2

  乱呼出し法 

134

9.1.8.3

  動的呼出し法

134

9.1.9

  リール及びユニット 

134

9.1.10

  現在ボリュームポインタ 

134

9.1.11

  ファイル位置指示子

134


X 3002

:2011 (ISO/IEC 1989:2002)  目次

(6)

ページ

9.1.12

  入出力状態 

135

9.1.13

  無効キー条件

139

9.1.14

  共用モード 

140

9.1.15

  レコード施錠

141

9.1.16

  整列ファイル

141

9.1.17

  併合ファイル

142

9.1.18

  動的ファイル割当て 

142

9.1.19

  報告書ファイル

142

9.2

  画面

142

9.2.1

  端末画面 

142

9.2.2

  機能キー 

142

9.2.3

  CRT 状態 

143

9.2.4

  カーソル 

143

9.2.5

  カーソル位置指示子 

144

9.2.6

  現在の画面項目

144

9.2.7

  色彩番号 

144

9.3

  オブジェクト 

145

9.3.1

  オブジェクト及びクラス 

145

9.3.2

  オブジェクト参照

145

9.3.3

  既定義オブジェクト参照 

145

9.3.4

  メソッド 

145

9.3.5

  メソッド呼出し

145

9.3.6

  メソッド原型

146

9.3.7

  適合及びインタフェース 

146

9.3.8

  多態性 

149

9.3.9

  クラス継承 

149

9.3.10

  インタフェース継承 

150

9.3.11

  インタフェース実装

150

9.3.12

  パラメタ付きクラス 

150

9.3.13

  パラメタ付きインタフェース

151

9.3.14

  オブジェクトの生存期間 

151

9.4

  利用者定義関数

152

10

  構造化翻訳群 

152

10.1

  翻訳単位及び実行時モジュール

152

10.2

  ソース単位 

152

10.3

  ソース単位の包含関係 

153

10.4

  ソース要素及び実行時要素

153

10.5

  COBOL 翻訳群 

154

10.6

  終了標

157


X 3002

:2011 (ISO/IEC 1989:2002)  目次

(7)

ページ

11

  見出し部

157

11.1

  見出し部の構造 

157

11.2

  クラス名段落 

158

11.3

  ファクトリ段落 

159

11.4

  関数名段落 

160

11.5

  インタフェース名段落 

160

11.6

  メソッド名段落 

161

11.7

  オブジェクト段落

162

11.8

  選択肢段落 

162

11.8.4

  ARITHMETIC 句 

163

11.8.5

  ENTRY-CONVENTION 

163

11.9

  プログラム名段落

163

12

  環境部

164

12.1

  環境部の構造 

165

12.2

  構成節

165

12.2.4

  翻訳用計算機段落

165

12.2.5

  実行用計算機段落

166

12.2.6

  特殊名段落 

168

12.2.7

  リポジトリ段落

176

12.3

  入出力節 

180

12.3.3

  ファイル管理段落

181

12.3.4

  ファイル管理記述項 

181

12.3.4.4

  ACCESS MODE 句 

185

12.3.4.5

  ALTERNATE RECORD KEY 句 

185

12.3.4.6

  COLLATING SEQUENCE 

186

12.3.4.7

  FILE STATUS 句 

187

12.3.4.8

  LOCK MODE 句 

188

12.3.4.9

  ORGANIZATION 句 

189

12.3.4.10

  PADDING CHARACTER 

189

12.3.4.11

  RECORD DELIMITER 句 

190

12.3.4.12

  RECORD KEY 句 

190

12.3.4.13

  RELATIVE KEY 句 

191

12.3.4.14

  RESERVE 句 

191

12.3.4.15

  SHARING 句 

192

12.3.5

  入出力管理段落

192

12.3.6

  SAME 

192

13

  データ部 

194

13.1

  データ部の構造

194

13.2

  明示属性及び暗黙属性 

194


X 3002

:2011 (ISO/IEC 1989:2002)  目次

(8)

ページ

13.3

  ファイル節 

194

13.3.4

  ファイル記述項

195

13.3.5

  整列併合用ファイル記述項

197

13.4

  作業場所節 

198

13.5

  局所記憶節 

198

13.6

  連絡節

199

13.7

  報告書節 

200

13.7.3

  報告書記述項

200

13.7.4

  報告集団記述項

201

13.7.5

  報告書の細分

201

13.8

  画面節

202

13.9

  定数記述項 

202

13.10

  レコード記述項

203

13.11

  77 レベル記述項

203

13.12

  報告書記述項

203

13.13

  報告集団記述項

204

13.14

  データ記述項

206

13.15

  画面記述項 

209

13.16

  データ部の句

212

13.16.1

  ALIGNED 句 

212

13.16.2

  ANY LENGTH 

213

13.16.3

  AUTO 

213

13.16.4

  BACKGROUND-COLOR 句 

214

13.16.5

  BASED 

214

13.16.6

  BELL 句 

214

13.16.7

  BLANK 

215

13.16.8

  BLANK WHEN ZERO 

215

13.16.9

  BLINK 句 

215

13.16.10

  BLOCK CONTAINS 

216

13.16.11

  CLASS 句 

216

13.16.12

  CODE 句 

217

13.16.13

  CODE-SET 句 

217

13.16.14

  COLUMN 

218

13.16.15

  CONTROL 句 

221

13.16.16

  DEFAULT 句 

222

13.16.17

  DESTINATION 

223

13.16.18

  項目名句 

224

13.16.19

  ERASE 

224

13.16.20

  EXTERNAL 句 

225


X 3002

:2011 (ISO/IEC 1989:2002)  目次

(9)

ページ

13.16.21

  FOREGROUND-COLOR 

226

13.16.22

  FORMAT 句 

226

13.16.23

  FROM 

228

13.16.24

  FULL 句 

228

13.16.25

  GLOBAL 

229

13.16.26

  GROUP INDICATE 句 

229

13.16.27

  GROUP-USAGE 

230

13.16.28

  HIGHLIGHT 句 

231

13.16.29

  INVALID 句 

231

13.16.30

  JUSTIFIED 

231

13.16.31

  レベル番号

232

13.16.32

  LINAGE 句 

232

13.16.33

  LINE 句 

234

13.16.34

  LOWLIGHT 

238

13.16.35

  NEXT GROUP 

238

13.16.36

  OCCURS 句 

240

13.16.37

  PAGE 句 

244

13.16.38

  PICTURE 

246

13.16.39

  PRESENT WHEN 句 

258

13.16.40

  PROPERTY 

259

13.16.41

  RECORD 句 

262

13.16.42

  REDEFINES 

264

13.16.43

  RENAMES 

265

13.16.44

  REPORT 句 

266

13.16.45

  REQUIRED 句 

267

13.16.46

  REVERSE-VIDEO 

267

13.16.47

  SAME AS 句 

267

13.16.48

  SECURE 

269

13.16.49

  SELECT WHEN 句 

269

13.16.50

  SIGN 句 

270

13.16.51

  SOURCE 句 

271

13.16.52

  SUM 句 

272

13.16.53

  SYNCHRONIZED 句 

274

13.16.54

  TO 

275

13.16.55

  TYPE 句 

276

13.16.56

  TYPEDEF 句 

279

13.16.57

  UNDERLINE 句 

280

13.16.58

  USAGE 句 

280

13.16.59

  USING 句 

285


X 3002

:2011 (ISO/IEC 1989:2002)  目次

(10)

ページ

13.16.60

  VALIDATE-STATUS 句 

285

13.16.61

  VALUE 句 

287

13.16.62

  VARYING 句 

292

14

  手続き部 

293

14.1

  手続き部の構造

294

14.2

  宣言部分 

297

14.3

  手続き部分 

297

14.3.1

  節

297

14.3.2

  段落

297

14.4

  手続き文及び手続き完結文

297

14.4.1

  条件指定 

299

14.4.2

  文の範囲 

299

14.5

  実行

300

14.5.1

  実行単位の構成

300

14.5.2

  関数・メソッド・オブジェクト・プログラムの状態

300

14.5.3

  制御の明示移行及び暗黙移行

302

14.5.4

  項目識別 

303

14.5.5

  実行時要素の実行の結果 

303

14.5.6

  現地特性識別

303

14.5.7

  送出し側作用対象及び受取り側作用対象

304

14.5.8

  データ項目内でのデータのけたよせ 

304

14.5.9

  作用対象の重なり

305

14.5.10

  実行単位の正常終了 

305

14.5.11

  実行単位の異常終了 

306

14.5.12

  条件操作 

306

14.6

  文に共通な指定及び規則 

313

14.6.1

  ファイル終了条件

313

14.6.2

  無効キー条件

313

14.6.3

  ROUNDED 指定 

313

14.6.4

  SIZE ERROR 指定及びけたあふれ条件 

313

14.6.5

  CORRESPONDING 指定 

314

14.6.6

  算術文 

315

14.6.7

  THROUGH 指定

316

14.6.8

  RETRY 指定 

317

14.7

  パラメタ及び返却項目の適合

317

14.7.1

  パラメタ 

318

14.7.2

  返却項目 

321

14.8

  文

322

14.8.1

  ACCEPT 

322


X 3002

:2011 (ISO/IEC 1989:2002)  目次

(11)

ページ

14.8.2

  ADD 

327

14.8.3

  ALLOCATE 

328

14.8.4

  CALL 文 

330

14.8.5

  CANCEL 文 

334

14.8.6

  CLOSE 

335

14.8.7

  COMPUTE 文 

338

14.8.8

  CONTINUE 文 

338

14.8.9

  DELETE 

339

14.8.10

  DISPLAY 

340

14.8.11

  DIVIDE 

342

14.8.12

  EVALUATE 文 

344

14.8.13

  EXIT 文 

348

14.8.14

  FREE 文 

351

14.8.15

  GENERATE 

351

14.8.16

  GO TO 文 

353

14.8.17

  GOBACK 文 

353

14.8.18

  IF 文 

354

14.8.19

  INITIALIZE 文 

355

14.8.20

  INITIATE 

357

14.8.21

  INSPECT 

358

14.8.22

  INVOKE 

363

14.8.23

  MERGE 

366

14.8.24

  MOVE 

371

14.8.25

  MULTIPLY 文 

375

14.8.26

  OPEN 文 

376

14.8.27

  PERFORM 

380

14.8.28

  RAISE 

384

14.8.29

  READ 

385

14.8.30

  RELEASE 文 

391

14.8.31

  RESUME 

392

14.8.32

  RETURN 文 

393

14.8.33

  REWRITE 文 

394

14.8.34

  SEARCH 文 

398

14.8.35

  SET 

402

14.8.36

  SORT 文 

408

14.8.37

  START 文 

415

14.8.38

  STOP 

418

14.8.39

  STRING 

418

14.8.40

  SUBTRACT 文 

420


X 3002

:2011 (ISO/IEC 1989:2002)  目次

(12)

ページ

14.8.41

  SUPPRESS 

422

14.8.42

  TERMINATE 文 

423

14.8.43

  UNLOCK 文 

423

14.8.44

  UNSTRING 

424

14.8.45

  USE 文 

427

14.8.46

  VALIDATE 文 

430

14.8.47

  WRITE 文 

433

15

  組込み関数 

440

15.1

  関数の型 

440

15.2

  引数

441

15.3

  関数の返却値 

442

15.3.1

  数字関数及び整数関数 

442

15.4

  日付変換関数 

443

15.5

  関数の要約 

443

15.6

  ABS 関数

447

15.7

  ACOS 関数 

448

15.8

  ANNUITY 関数 

448

15.9

  ASIN 関数

448

15.10

  ATAN 関数 

449

15.11

  BOOLEAN-OF-INTEGER 関数 

449

15.12

  BYTE-LENGTH 関数 

449

15.13

  CHAR 関数 

450

15.14

  CHAR-NATIONAL 関数

450

15.15

  COS 関数 

450

15.16

  CURRENT-DATE 関数

451

15.17

  DATE-OF-INTEGER 関数 

451

15.18

  DATE-TO-YYYYMMDD 関数

452

15.19

  DAY-OF-INTEGER 関数 

452

15.20

  DAY-TO-YYYYDDD 関数 

453

15.21

  DISPLAY-OF 関数

453

15.22

  関数

454

15.23

  EXCEPTION-FILE 関数

454

15.24

  EXCEPTION-FILE-N 関数 

454

15.25

  EXCEPTION-LOCATION 関数 

454

15.26

  EXCEPTION-LOCATION-N 関数

455

15.27

  EXCEPTION-STATEMENT 関数

456

15.28

  EXCEPTION-STATUS 関数

456

15.29

  EXP 関数 

457

15.30

  EXP10 関数 

457


X 3002

:2011 (ISO/IEC 1989:2002)  目次

(13)

ページ

15.31

  FACTORIAL 関数 

457

15.32

  FRACTION-PART 関数 

457

15.33

  HIGHEST-ALGEBRAIC 関数 

458

15.34

  INTEGER 関数 

458

15.35

  INTEGER-OF-BOOLEAN 関数

458

15.36

  INTEGER-OF-DATE 関数 

459

15.37

  INTEGER-OF-DAY 関数 

459

15.38

  INTEGER-PART 関数 

460

15.39

  LENGTH 関数

460

15.40

  LOCALE-COMPARE 関数 

461

15.41

  LOCALE-DATE 関数 

461

15.42

  LOCALE-TIME 関数 

462

15.43

  LOG 関数 

462

15.44

  LOG10 関数 

463

15.45

  LOWER-CASE 関数 

463

15.46

  LOWEST-ALGEBRAIC 関数 

463

15.47

  MAX 関数

464

15.48

  MEAN 関数

465

15.49

  MEDIAN 関数 

465

15.50

  MIDRANGE 関数 

465

15.51

  MIN 関数 

466

15.52

  MOD 関数 

466

15.53

  NATIONAL-OF 関数 

467

15.54

  NUMVAL 関数 

467

15.55

  NUMVAL-C 関数 

468

15.56

  NUMVAL-F 関数 

470

15.57

  ORD 関数 

470

15.58

  ORD-MAX 関数 

471

15.59

  ORD-MIN 関数 

471

15.60

  PI 関数 

471

15.61

  PRESENT-VALUE 関数 

471

15.62

  RANDOM 関数 

472

15.63

  RANGE 関数

472

15.64

  REM 関数

473

15.65

  REVERSE 関数

473

15.66

  SIGN 関数 

474

15.67

  SIN 関数

474

15.68

  SQRT 関数 

474

15.69

  STANDARD-COMPARE 関数 

475


X 3002

:2011 (ISO/IEC 1989:2002)  目次

(14)

ページ

15.70

  STANDARD-DEVIATION 関数

475

15.71

  SUM 関数 

476

15.72

  TAN 関数 

476

15.73

  TEST-DATE-YYYYMMDD 関数 

476

15.74

  TEST-DAY-YYYYDDD 関数 

477

15.75

  TEST-NUMVAL 関数

477

15.76

  TEST-NUMVAL-C 関数 

478

15.77

  TEST-NUMVAL-F 関数

479

15.78

  UPPER-CASE 関数 

479

15.79

  VARIANCE 関数

480

15.80

  WHEN-COMPILED 関数 

480

15.81

  YEAR-TO-YYYY 関数 

481

16

  標準クラス 

482

16.1

  BASE クラス

482

16.1.1

  New メソッド 

483

16.1.2

  FactoryObject メソッド 

483

附属書 A  (規定)  通信機能

484

A.1

  データ部

485

A.2

  手続き部

495

A.2.1

  ACCEPT MESSAGE COUNT 文 

495

A.2.2

  DISABLE 

495

A.2.3

  ENABLE 

496

A.2.4

  PURGE 文 

497

A.2.5

  RECEIVE 

497

A.2.6

  SEND 

499

附属書 B  (規定)  言語要素一覧 

503

B.1

  実装者定義の言語要素一覧 

503

B.2

  規定されない言語要素一覧 

515

B.3

  処理系依存の言語要素一覧 

520

附属書 C  (規定)  利用者定義語に使用できる文字

523

C.1

  記法

523

C.2

  利用者定義語に使用できる文字のレパートリ

523

附属書 D  (規定)  大文字から小文字への対応

526

D.1

  記法

526

D.2

  大文字・小文字の対応一覧 

526

附属書 E  (参考)  概念

530

E.1

  ファイル

530

E.2

  表操作

539

E.3

  主記憶領域の共用 

545


X 3002

:2011 (ISO/IEC 1989:2002)  目次

(15)

ページ

E.4

  翻訳群及び実行単位の構成及び連絡

546

E.5

  通信機能

559

E.6

  組込み関数機能 

565

E.7

  デバッグ

566

E.8

  型 

567

E.9

  アドレス及びポインタ

569

E.10

  ブール機能及びビット操作 

571

E.11

  文字集合

574

E.12

  文字照合順序 

577

E.13

  文化圏特定,文化圏適応及び多言語対応の応用プログラム

580

E.14

  外部スイッチ 

585

E.15

  共通例外処理 

586

E.16

  標準算術

587

E.17

  オブジェクト指向の概念 

592

E.18

  報告書作成機能 

611

E.19

  検証機能

619

E.20

  条件式

622

E.21

  INSPECT 文の実行の例 

626

E.22

  PERFORM 文の実行の例 

628

E.23

  自由形式正書法の例

631

E.24

  条件翻訳

632

E.25

  CALL-CONVENTION 指示 

633

E.26

  ENTRY-CONVENTION 句 

633

附属書 F  (参考)  実質的な変更点一覧 

634

F.1

  既存プログラムに影響を及ぼす可能性のある変更点 

634

F.2

  既存プログラムに影響を及ぼさない変更点

645

F.3

  既存のプログラムに影響を及ぼす可能性のある相違点(ISO 1989:1985,追補 2:1994 による相違点)

655

F.4

  既存プログラムに影響しない相違点(ISO 1989:1985,追補 2:1994 による相違点) 

664

附属書 G  (参考)  旧式言語要素及び廃要素 

665

G.1

  旧式言語要素 

665

G.2

  廃要素

666

附属書 H  (参考)  規格中の既知の誤り 

667

H.1

  理論的根拠 

667

H.2

  誤りの一覧 

667

附属書 I  (参考)参考文献

668


X 3002

:2011 (ISO/IEC 1989:2002)  目次

(16)

まえがき

この規格は,工業標準化法第 14 条によって準用する第 12 条第 1 項の規定に基づき,一般社団法人情報

処理学会(IPSJ)及び財団法人日本規格協会(JSA)から,工業標準原案を具して日本工業規格を改正す

べきとの申出があり,日本工業標準調査会の審議を経て,経済産業大臣が改正した日本工業規格である。

これによって,JIS X 3002:1992 は改正され,この規格に置き換えられた。

この規格は,著作権法で保護対象となっている著作物である。

この規格の一部が,特許権,出願公開後の特許出願又は実用新案権に抵触する可能性があることに注意

を喚起する。経済産業大臣及び日本工業標準調査会は,このような特許権,出願公開後の特許出願及び実

用新案権に関わる確認について,責任はもたない。


日本工業規格

JIS

 X

3002

:2011

(ISO/IEC 1989

:2002

)

電子計算機プログラム言語 COBOL

Information technology-Programming languages-COBOL

序文 

この規格は,2002 年に第 1 版として発行された ISO/IEC 1989 及び Technical Corrigendum 1(2006)を基

に,技術的内容及び対応国際規格の構成を変更することなく作成した日本工業規格である。ただし,技術

に関する正誤票(Technical Corrigendum)については,編集し,一体化した。

なお,この規格で側線又は点線の下線を施してある参考事項は,対応国際規格にはない事項である。

適用範囲 

この規格は COBOL の構文及びその意味について規定する。この規格の目的は,COBOL プログラムを

各種のデータ処理システム上で使用できるように,

プログラムの高度な機種独立性を促進することにある。

この規格は,次の事項について規定する。

− COBOL で書いた翻訳群の形式

−  翻訳群を翻訳する効果

−  実行単位を実行する効果

−  規格合致実装系による規定が必要となる言語要素

−  意味が明示的に規定されないままである言語要素

−  処理系の機能に依存する言語要素

この規格は,次の事項については規定しない。

− COBOL で書いた翻訳群を翻訳して処理系で実行可能なコードにする手段

−  活性化する側の文に,メソッド,関数又はプログラムの実行時モジュールが連係する時点,又は束縛

される時点。ただし,該当するプログラム又はメソッドが翻訳時に認識されない場合は,必然的に実

行時束縛となる

−  パラメタ付きクラス及びパラメタ付きインタフェースが展開される時点

−  現地特性が処理系上で規定され使用可能になる機構

−  誤り・フラグ立て・警告のメッセージの書式及び内容

−  翻訳時にリストを印字出力する場合その書式及び内容

−  この規格に合致している製品の実装者が生成する文書化の形態

−  ファイル以外の資源を実行単位の間で共用する方法

注記 1  通貨記号を,国際規格は字形"$"で表示しているが,日本工業規格(以下,JIS という。)で

は字形"

¥

"

で表示している。

注記 2  この規格の対応国際規格及びその対応の程度を表す記号を,次に示す。

ISO/IEC 1989:2002

,Information technology−Programming languages−COBOL(IDT)


2

X 3002

:2011 (ISO/IEC 1989:2002)

なお,対応の程度を表す記号“IDT”は,ISO/IEC Guide 21-1 に基づき,

“一致している”

ことを示す。

引用規格 

次に掲げる規格は,この規格に引用されることによって,この規格の規定の一部を構成する。これらの

引用規格のうちで,西暦年を付記してあるものは,記載の年の版を適用し,その後の改正版(追補を含む。

は適用しない。西暦年の付記がない引用規格は,その最新版(追補を含む。

)を適用する。

JIS X 0221

  国際符号化文字集合(UCS)

注記  対 応 国 際 規 格 : ISO/IEC 10646 , Information technology − Universal Multiple-Octet Coded

Character Set (UCS)

(IDT)

JIS X 0301

  情報交換のためのデータ要素及び交換形式−日付及び時刻の表記

注記  対応国際規格:ISO 8601:2000,Data elements and interchange formats−Information interchange

−Representation of dates and times(MOD)

JIS X 0601

  情報交換用磁気テープのラベル及びファイル構成

注記  対応国際規格:ISO 1001:1986,Information processing−File structure and labelling of magnetic

tapes for information interchange

(MOD)

JIS Z 8301

  規格票の様式及び作成方法

ISO/IEC 646

,Information technology−ISO 7-bit coded character set for information interchange

注記  対応日本工業規格:JIS X 0201  7 ビット及び 8 ビットの情報交換用符号化文字集合(MOD)

ISO/IEC 9945:2009

,Information technology−Portable Operating System Interface (POSIX®) Base

Specifications, Issue 7

ISO/IEC TR 10176:2001

,Information technology−Guidelines for the preparation of programming language

standards

ISO/IEC 14651:2001

,Information technology−International string ordering and comparison−Method for

comparing character strings and description of the common template tailorable ordering (including AMD1)

規格合致性 

この箇条では,実装系がこの規格に合致するために満足しなければならない要求事項を規定し,翻訳群

又は実行単位が規格の機能を使用する場合に規格に合致する条件を定義する。

3.1 

規格合致実装系 

この規格に合致するために,規格 COBOL の実装系は箇条 6∼箇条 16 が規定する規定要素を提供しなけ

ればならない。

実装系は,

附属書 A(通信機能)が規定する要素を提供してもよい。

3.1.1 

規格言語要素の受入れ 

実装系は,この規格が要求する全ての規格言語要素,及び選択機能又は処理系依存の言語要素のうち実

装系が実装・提供を主張する言語要素に対して,構文を受け入れ,かつ,機能を提供しなければならない。

実装系は,利用者が翻訳時に呼び出せる警告機構を提供し,規格 COBOL の一般形式及び明示的な構文

規則の違反を指摘しなければならない。この警告機構には,適合規則の違反に対する検査を選択又は抑止

するための選択可能指定が提供されていなければならない。ここで,適合規則は 14.7(パラメタ及び返却

項目の適合)及び 9.3.7.1.2(インタフェース間の適合)による。


3

X 3002

:2011 (ISO/IEC 1989:2002)

規格 COBOL には,一般規則とも構文規則ともみなされない規則であるが,構文から識別可能な項目を

規定するものもある。この警告機構は,このような規則の違反も指摘しなければならない。一般形式にも

明示的な構文規則にも規定のない言語要素については,構文から識別可能なものとは何かの決定は,実装

者の判断に任せる。

規格 COBOL には,構文規則と分類してもよさそうな一般規則もある。これらの規則を一般規則と分類

した目的は,構文解析を回避するためであって,規格 COBOL の誤りというわけではない。実装系はこの

ような規則の違反にフラグ立てを行ってもよいが,必ずしも行う必要はない。

3.1.2 

非 COBOL 実行時モジュールとの間の動作 

この仕様書には,COBOL 実行時モジュールと非 COBOL 実行時モジュールとの間での,制御の移行又

は外部項目の共用を可能にする機能が用意されている。この言語間の機能を提供することは実装系に対す

る要求事項ではないが,提供する場合,実装者は,言語間機能の相手となる言語と実装系とを文書に明記

しなければならない。

3.1.3 

複数の COBOL 実装系の間での動作 

この仕様書には,異なる実装系上で翻訳された COBOL 実行時モジュールの間で,制御の移行及び外部

項目の共用を拡張する機能が用意されている。この実装系間の機能を提供することは実装系に対する要求

事項ではないが,提供する場合,実装者は,実装系間機能の相手となる実装系を文書に明記しなければな

らない。

3.1.4 

実装者定義の言語要素 

言語要素のうち構文規則又は一般規則の仕様を完全にするため実装者定義を必要とするものを,B.1(実

装者定義の言語要素一覧)に列挙する。規格 COBOL の要件を満足するには,少なくとも,必須と認識さ

れる実装者定義の言語要素だけは,実装者が規定しなければならない。各々の実装者定義の言語要素は,

利用者向け文書化が必要と認識されるとき,それに対する実装者定義の内容を,文書に明記しなければな

らない。

実装系には,実装者定義の言語要素を定義する一部として,規格内にない言語要素を翻訳群に取り込む

ことを必要とする事項があってはならない。

3.1.5 

処理系依存の言語要素 

処理系とは,ハードウェア及びソフトウェアから構成され,翻訳群の翻訳及び実行単位の実行に用いら

れる計算機システムの全体を指す。

言語要素のうちで特定の装置に依存するか,

又は特定の処理系の能力,

機能,アーキテクチャに依存するものを,B.3(処理系依存の言語要素一覧)に示す。規格 COBOL の要件

を満足するために,実装者は,実装系が実装・提供を主張する処理系依存の言語要素を文書に明記しなけ

ればならない。実装・提供を主張しない処理系依存の言語要素に関連する言語要素は,実装する必要はな

い。どの処理系依存の言語要素を実装・提供を主張するかは,実装者の裁量で決定する。決定のために考

慮する要因の中には,ハードウェアの能力,ソフトウェアの能力,その処理系の市場での位置付けが含ま

れる。

規格に合致した実装・提供を主張する処理系依存の言語要素に対しては,その言語要素に対して必要な

構文及び機能の全部を実装しなければならない。一方,構文又は機能の一部だけ実装する場合,その部分

的な実装が“規格内拡張”であると,実装者の利用者向け文書中で識別できなければならない。処理系依

存の言語要素の幾つかが実装系から欠落している場合,その旨を実装者の利用者向け文書に規定しなけれ

ばならない。

実装系は,翻訳時の機構として,実装・提供しない処理系依存の言語要素のうちで構文から検出が可能


4

X 3002

:2011 (ISO/IEC 1989:2002)

な要素の使用を指摘する警告機構を提供しなければならない。この警告機構は,実装・提供しない処理系

依存の言語要素を識別する必要があるが,

実装・提供しない構文内での構文誤りまで診断する必要はない。

実装者は,実装・提供しない処理系依存の言語要素が用いられた場合に,実行可能コードを生成する必要

はない。

3.1.6 

予約語 

実装系は,8.9(予約語)に示す COBOL の予約語の全てを予約語と認識し,8.10(文脈依存語)に示す

文脈依存語の全てを文脈中で予約語と認識し,8.12(翻訳指示語)に示す翻訳指示の予約語の全てを翻訳

指示中で認識しなければならない。

3.1.7 

規格内拡張 

実装者は,選択可能な要素又は処理系依存の要素について,構文及び関連機能の全体の実装・提供を主

張してもよいし,一部の実装・提供を主張してもよい。実装者がその構文の一部の実装・提供を主張し,

その関連機能がこの規格に規定された機能であるとき,その構文は規格内拡張である。異なる機能が提供

されるとき,その構文は規格外拡張である。

3.1.8 

規格外拡張 

規格外拡張とは,実装系に含まれる言語要素又は機能のうち,次のいずれかである。

1)

この規格に規定されていない,文書化された言語要素。

2)

この規格に合致するための要件ではない言語要素のうち,この規格の規定とは異なる機能が実装・提

供されている言語要素であり,実装者が規格どおりの実装・提供を主張していない要素。

3)

この規格に合致するための要件である言語要素のうち,この規格の規定とは異なる機能が実装されて

いる言語要素であり,規格合致の動作も実装されていて,規格外の動作は実装者定義の機構で選択す

る要素。

実装系に規格外拡張として予約語を追加した結果,規格合致の幾つかの翻訳群の翻訳が妨げられたとし

ても,その実装系が規格に合致することが否定されるわけではない。

実装系の文書では,実装・提供を主張する規格外拡張が識別できなければならず,規格外拡張のために

追加した全ての予約語を規定しなければならない。

実装系には,翻訳群内部にある規格外拡張の使用有無を指摘するために,利用者が翻訳時に呼出しでき

る警告機構が提供されていなければならない。この警告機構がフラグを立てなければならないのは,構文

から識別可能な拡張だけとする。

3.1.9 

代替又は追加の言語要素 

実装系には,規格言語要素に対して規定された機能を遂行するために,代替又は拡張の言語要素を翻訳

群に取り込むことを必要とする事項があってはならない。

3.1.10 

旧式言語要素 

旧式言語要素は,G.1(旧式言語要素)に明示する。よりよいプログラムの書き方があるので,旧式言語

要素を新規の翻訳群内では使用しないほうがよい。旧式言語要素は広範に使用されているので,現在のと

ころは規格 COBOL から削除される予定はない。しかし,これが規格 COBOL の将来の改正版において再

評価される可能性はある。

実装系は,実装・提供を主張する旧式言語要素の機能を実装・提供しなければならない。実装系の文書

では,実装されている旧式言語要素が識別できなければならない。

実装系は,翻訳群中で旧式要素を使用していることを指摘するために,利用者が翻訳時に選択的に呼び

出せる警告機構を提供しなければならない。


5

X 3002

:2011 (ISO/IEC 1989:2002)

3.1.11 

廃要素 

廃要素は,G.2(廃要素)に明示する。廃要素は,規格 COBOL の次回改正版から削除される予定である。

この規格中で廃要素と明示していない言語要素は,規格 COBOL の次回改正版から削除されることはな

い。

実装系は,実装・提供を主張する廃要素の機能を提供しなければならない。実装系の文書では,実装さ

れている全ての廃要素が識別できなければならない。

実装系は,翻訳時に利用者が選択的に呼び出せる警告機構を提供し,翻訳群内部の廃要素の使用有無を

指摘しなければならない。

3.1.12 

外部提供機能 

実装系は,翻訳群に指定された機能を実現するために操作環境とのインタフェースをとるとき,その翻

訳群には含まれない仕様を必要とすることがある。

注記  実装系は,環境変数など COBOL 実装系の外部にある OS 仕様を要求してもよい。

実装系は,COBOL 実装系以外に,操作環境上の実行時モジュール又は製品の存在を要求することで,

翻訳群に指定された構文又は機能を実現してもよい。

注記  プリコンパイラ,ファイルシステム,ソート製品など,COBOL 実装系の外部にある構成要素

を実装系が要求することを許している。

3.1.13 

制限値 

一般に,規格 COBOL は,翻訳群内の文の個数,ある文に書ける作用対象の個数などの事項に関して上

限値を規定してはいない。規格合致実装系はこのような制限値を設けてもよい。これらの制限値は規格

COBOL

の実装系によって変化し,ある規格合致実装系では規格 COBOL の要件を満足する翻訳群の幾つ

かが正しく翻訳できなくなることもある,と承認されている。

3.1.14 

利用者向け文書化 

実装系は少なくとも一つの文書化の形態を用いて,3.1.23.1.33.1.43.1.53.1.83.1.10 及び 3.1.11

に規定した利用者向け文書化の要求を満足しなければならない。

この形態には,

ハードコピーマニュアル,

オンライン文書,ユーザヘルプ画面などが含まれるが,これだけとは限らない。

利用者向け文書化の要求を満足する方法が,別な文書への参照であってもよく,これには操作環境及び

別な COBOL 実装系の文書も含まれる。

3.1.15 

代替文字 

8.1.2

(COBOL 文字レパートリ)に示す COBOL 文字レパートリの定義は,規格 COBOL の COBOL 文字

レパートリの全体を示している。COBOL 文字レパートリの基本文字に,実装系が提供しない図形表現が

ある場合,表現されない文字に代わる実装者定義の代替図形があってもよい。

3.2 

規格合致翻訳群 

規格合致翻訳群(conforming compilation group)とは,明示的に記述された規格 COBOL の条項及び仕様

に違反していないものをいう。翻訳群が規格 COBOL に合致するためには,この規格に指定のないどのよ

うな言語要素も含まれていてはならない。この規格中の選択機能,処理系依存の言語要素又は実装者定義

の言語要素を用いている翻訳群は,その言語要素のせいで正常に翻訳されない実装系においても,規格合

致翻訳群とする。

規格合致翻訳群に包含された翻訳単位は,規格合致翻訳単位とする。

3.3 

規格合致実行単位 

規格合致実行単位(conforming run unit)とは,次のいずれの条件をも満足するものをいう。


6

X 3002

:2011 (ISO/IEC 1989:2002)

1)  1

個以上の実行時モジュールから構成されており,その各々は,規格合致翻訳単位の翻訳が成功して

生じたものである。

2)

実行単位の実行時の動作という点で,明示的に記述された規格 COBOL の条項及び仕様に従っている。

注記  非 COBOL 構成要素が実行単位に含まれていても実行単位の合致に影響はない。

規格合致実行単位の処理は,規格 COBOL に定義された範囲内だけで予測可能である。規格 COBOL の

書き方又は規則に違反した結果は,この規格の中で特に別の規定がない限り,規定されない。

ある文を実行した結果が規定されない又は予測できない状況を,B.2(規定されない言語要素一覧)に明

示する。これらの状況が起こり得る COBOL 実行単位は,実行結果が規格 COBOL では定義されないだけ

であって,規格合致実行単位ではある。

3.4 

規格合致翻訳群と規格合致実装系との関係 

規格合致翻訳群を規格合致実装系で翻訳した結果は,規格 COBOL が定義する範囲内でだけ規定される。

規格合致翻訳群でも翻訳が成功しないことがあり得る。

翻訳群が規格合致でないこと以外の要因によって,

翻訳が不成功となってもよい。

注記  翻訳が不成功となる原因には,選択機能,処理系依存の言語要素,又は実装者定義の言語要素

の使用,及び実装系の制限値がある。

3.5 

規格合致実行単位と規格合致実装系との関係 

規格合致翻訳単位を翻訳してできる実行時モジュール群からなる実行単位の実行結果は,規格 COBOL

の定義する範囲内でだけ規定される。ただし,規格合致実行単位が正常に実行されないこともあり得る。

規格合致不全とは別の要因によって,実行単位が正常に実行されなくてもよい。

注記  実行が不成功となる原因には,翻訳単位の論理的な誤り,実行単位が処理するデータの誤り,

及び実装系のもつ制限値がある。

用語及び定義 

この規格で用いる主な用語及び定義は,次による。

4.1

絶対項目(absolute item)

報告書中の項目であって,ページ上に固定位置をもつもの。

4.2

活性化される側の実行時要素(activated runtime element)

活性状態におかれる関数・メソッド・プログラム。

4.3

活性化文(activating statement)

関数・メソッド・プログラムの実行を引き起こす文。

4.4

活性化する側の実行時要素(activating runtime element)

活性化文を実行する関数・メソッド・プログラム。

4.5

活性状態(active state)

関数・メソッド・プログラムの状態の一つであって,活性化されており,まだ活性化した側の実行時要

素に制御が戻っていない状態。


7

X 3002

:2011 (ISO/IEC 1989:2002)

4.6

COBOL 文字レパートリの)英字[alphabetic character (in the COBOL character repertoire)]

基本文字又は空白。

4.7

英数字(alphanumeric character)

英数字符号化文字集合の符号化文字のいずれか。符号化文字に対して図形記号が割り当てられているか

否かには関係しない。

4.8

英数字文字位置(alphanumeric character position)

英数字文字集合の 1 文字を格納するのに必要な物理的記憶域の大きさ,又はそれを印字若しくは表示す

るのに必要な表示スペースの大きさ。

4.9

英数字文字集合(alphanumeric character set; alphanumeric coded character set)

英数字符号化文字集合を参照。

4.10

英数字符号化文字集合(alphanumeric coded character set; alphanumeric character set)

用途 DISPLAY のデータ項目及び英数字定数のために実装者が選定した符号化文字集合。

4.11

英数字集団項目(alphanumeric group item)

次を除いた,あらゆる集団項目。

−  強い型付けの集団項目

−  ビット集団項目

−  各国文字集団項目

4.12

引数(argument)

活性化文の中に指定された作用対象であって,受け渡すデータを指定するもの。

4.13

想定小数点(assumed decimal point)

データ項目中の小数点位置が,実際の文字を用いないで指定されたもの。想定小数点は,論理的な意味

をもつが物理的に表現される実体はもたない。

4.14

基底付きデータ項目(based data item)

基底付き記述項を実データ項目又は割当て記憶域と関連付けることで確定するデータ項目。

4.15

基底付き記述項(based entry)

データ項目又は割当て記憶域と動的に関連付けられるひな型(テンプレート)の役目を果たすデータ記

述項。

4.16

基本文字(basic letters)

COBOL

文字レパートリ中の大文字 A∼Z 又は小文字 a∼z のいずれか。


8

X 3002

:2011 (ISO/IEC 1989:2002)

4.17

ビット(bit)

二者択一の状態を表現可能な,計算機記憶構造の最小単位。

4.18

ビットデータ項目(bit data item)

項類がブールであり用途が BIT である基本データ項目又はビット集団項目。

4.19

ブロック(block; physical record)

通常,幾つかの論理レコードからなる,データの物理的単位。

4.20

ブール文字(boolean character)

0

又は 1 の値で構成される情報の単位。各々のブール文字の記憶域中での表現形式は,ビット,英数字

又は各国文字のいずれでもよい。

4.21

ブールデータ項目(boolean data item)

ブール値をもつことができるデータ項目。

4.22

ブール式(boolean expression)

ブール演算子で区切られた,一つ以上のブール作用対象。

4.23

ブール位置(boolean position)

一つのブール文字を格納するのに必要な物理的記憶域の大きさ,又はそれを印字若しくは表示するのに

必要な表示スペースの大きさ。

4.24

ブール値(boolean value)

一つ以上のブール文字からなる値。

4.25

バイト(byte)

計算機の記憶内で番地付け可能な最小文字単位を表現するビットの並び。

4.26

(符号化文字集合の)文字[character (in a coded character set)]

基本文字,拡張文字,数字,記号,制御機能,そのほかデータの構成・制御・表現に用いる要素の,符

号化表現を成すコード値。

注記 COBOL では,符号化文字集合の各コード値を 1 文字とみなして処理する。

4.27

(画面項目中の)文字[character (in a screen item)]

図形文字。

4.28

COBOL 文字レパートリの)文字[character (in COBOL character repertoire); COBOL character]

基本文字,拡張文字,数字又は特殊文字であって,符号化表現には依存せず,COBOL の語又は分離符


9

X 3002

:2011 (ISO/IEC 1989:2002)

の形成に用いられるもの。

4.29

(計算機記憶中の)文字[characters (in computer storage)]

符号化文字集合の一つのコード値。

4.30

文字境界(character boundary)

計算機の記憶域の番地付け境界の最左端ビット。

4.31

文字位置(character position)

(英数字又は各国文字の)単一文字を格納するのに必要な物理的記憶域の大きさ,又はそれを印字若し

くは表示するのに必要な表示スペースの大きさ。符号化文字集合に属する単一要素は文字位置一つを占め

る。

注記  例えば,国際符号化文字集合の結合コード列の要素は,それぞれが文字位置一つを占める。

UTF-16

でいう区点要素の対,すなわちサロゲート値(surrogate value)では,左サロゲート(left

surrogate

)が文字位置一つを占め,右サロゲート(right surrogate)が文字位置一つを占める。

4.32

文字列(character-string)

COBOL

の語,定数又は PICTURE 文字列を形成する,一連の文字の並び。

4.33

(オブジェクト指向の)クラス[class (in object orientation)]

0

個以上のオブジェクトの共通な振る舞い及び実装を定義する実体。

4.34

(データ項目の)字類[class (of data item)]

データ項目の集合に対する総称方法の一つで,共通の属性又は共通する値の範囲をもつもの。これは,

データ記述項の USAGE 句,PICTURE 句若しくはこれら二つの句の組合せから定まるか,又は既定義一意

名の規定若しくは組込み関数の規定から定まる。

4.35

(データ値の)字類[class (of data value)]

データ項目の内容としてもつことのできるデータ値の集合の指す名称。

4.36

(オブジェクト指向の)クラス定義[class definition (in object orientation)]

オブジェクトのクラスを定義する翻訳単位。

4.37

句(clause)

記述項の属性を指定するための,連続した COBOL 文字列の順序付き集合。

4.38

COBOL

文字[COBOL character; character (in COBOL character repertoire)]

(COBOL 文字レパートリの)文字参照。

4.39

COBOL

文字レパートリ(COBOL character repertoire)


10

X 3002

:2011 (ISO/IEC 1989:2002)

注記と,16 進形式でない英数字定数及び各国文字定数の内容とを除いた,COBOL 翻訳群の構文を表記

するために用いられる文字レパートリ。

注記  JIS X 0221 の用語定義 4.37(レパートリ)では,次のように規定されている。

レパートリ(repertoire)  符号化文字集合で表現する文字の指定された文字集合。

4.40

符号化文字集合(coded character set)

文字集合を定め,その集合の文字と符号化表現との間の関係を定める,曖昧さのない規則の集合(JIS X 

0221

参照)

注記  この定義は,JIS X 0221 の用語定義 4.10(符号化文字集合)に相当する。

4.41

結合文字(combining character)

国際符号化文字集合の構成単位であって,先行する非結合文字(基底文字)と組み合わせることを意図

したもの,又は基底文字の後に結合文字の列が続いた形のものと組み合わせることを意図したもの。

注記  この定義は,JIS X 0221 の用語定義 4.13(結合文字)に相当する。

4.42

共通プログラム(common program)

別のプログラムの中に直接含まれているにもかかわらず,その別のプログラムに直接又は間接に含まれ

るどのプログラムからでも呼び出してもよいプログラム。

4.43

翻訳群(compilation group)

一緒に翻訳に出される幾つかの翻訳単位の並び。

4.44

翻訳単位(compilation unit)

ソース単位のうちで他のソース単位の内に入れ子になっていないもの。

4.45

合成列(composite sequence)

基底文字とそれに続く幾つかの結合文字とからなる図形文字の列。

注記  この定義は,JIS X 0221 の用語定義 4.15(合成列)に相当する。

4.46

条件文(conditional statement)

指定された条件の真理値が評価され,それ以降の制御の流れを決定するのに用いられる文。

4.47

(オブジェクト指向の)適合[conformance (for object orientation)]

オブジェクトが属するクラスのインタフェースとは異なるインタフェースに従った使用法を許すような,

単方向の関係。

4.48

(パラメタの)適合[conformance (for parameters)]

活性化する側とされる側との実行時要素において,引数と仮パラメタとの間及び返却項目どうしの間の

関係についての必要事項。

4.49


11

X 3002

:2011 (ISO/IEC 1989:2002)

制御機能(control function)

データの記録,処理,伝送又は解釈に影響を及ぼす動作であって,一つ以上のバイトからなる符号化表

現をもつもの。

注記 1  規格 COBOL では用語“オクテット”を用いていないので“オクテット”を“バイト”と置

換したことを除けば,この定義は JIS X 0221 と同じである。

注記 2  この定義は,JIS X 0221 の用語定義 4.16(制御機能)に相当する。

4.50

文化的要素(cultural element)

言語,地理的な領域,又は他の文化的環境に依存して変化してもよい,計算機利用のためのデータの要

素。

4.51

通貨記号(currency sign)

COBOL

文字の"¥"。これは,PICTURE 文字列中で既定解釈の通貨編集用記号として用いられ,データ項

目の編集形式中で既定解釈の通貨文字列としても用いられる。

注記 1  これ以外に通貨文字列及び通貨編集用記号を選択するための機能も存在する。

注記 2  通貨記号を,国際規格は字形"$"で表示しているが,JIS では字形"¥"で表示している。

4.52

通貨文字列(currency string)

数字編集項目が PICTURE 文字列の中に通貨編集用記号を含んでいる場合に,編集操作の結果として,

その項目の中に設定される文字の組。

4.53

通貨編集用記号(currency symbol)

PICTURE

文字列中で通貨文字列の存在を表すために用いられる文字。

4.54

現在レコード(current record)

ファイルに関連するレコード領域中で使用可能になっているレコード。

4.55

現在ボリュームポインタ(current volume pointer)

順ファイルの現在のボリュームを指す概念上の実体。

4.56

データ項目(data item)

データ記述項又は一意名の評価結果によって定義されるデータの単位。

4.57

デバッグ行(debugging line)

デバッグモードスイッチの設定によって,翻訳されたりされなかったりするソース行。

4.58

小数点(decimal point; decimal separator)

小数点を表現するために用いる文字。COBOL の既定解釈は文字の終止符である。

4.59

小数点文字(decimal separator; decimal point)


12

X 3002

:2011 (ISO/IEC 1989:2002)

4.58

(小数点)参照。

4.60

宣言文(declarative statement)

USE

文であって,後続の手続きがどのような条件下で実行されるのかを定義するもの。

4.61

逆編集(de-editing)

数字編集データ項目から,その項目の編集しない数値を求めるために,全ての編集文字を論理的に除去

する処理。

4.62

範囲明示文(delimited scope statement)

明示範囲終了子で終わる文。

4.63

けた位置(digit position)

1

けたの数字を収めるのに必要な物理的記憶域の大きさ,又はそれを印字若しくは表示するのに必要な

表示スペース。

4.64

動的呼出し(dynamic access)

大容量記憶ファイルにおいて,特定の論理レコードを,順序に関係なく取り出したり書き出したりして

もよく,順序どおりにファイルから取り出してもよい呼出し法。

4.65

動的記憶域(dynamic storage)

実行時の要求によって割り付けられ解放される記憶域。

4.66

終了標(end marker)

ソース単位の終わりの印。

4.67

項,記述項(entry)

一連の句の組からなる記述を分離符の終止符で止めたもの。

4.68

入口規約(entry convention)

関数・メソッド・プログラムが正常にやり取りするために必要な情報。

4.69

例外状態(exception condition)

実行時に検出される状態であって,正常な処理に対する誤り又は例外が起こったことを示す。

4.70

例外オブジェクト(exception object)

例外状態として振る舞うオブジェクト。

4.71

例外状態指示子(exception status indicator)

各例外名に対して存在する概念的な実体。


13

X 3002

:2011 (ISO/IEC 1989:2002)

4.72

EXIT FUNCTION

文(EXIT FUNCTION statement)

“EXIT 文で FUNCTION 指定があるもの”の縮約形。

4.73

EXIT METHOD

文(EXIT METHOD statement)

“EXIT 文で METHOD 指定があるもの”の縮約形。

4.74

EXIT PARAGRAPH

文(EXIT PARAGRAPH statement)

“EXIT 文で PARAGRAPH 指定があるもの”の縮約形。

4.75

EXIT PERFORM

文(EXIT PERFORM statement)

“EXIT 文で PERFORM 指定があるもの”の縮約形。

4.76

EXIT PROGRAM

文(EXIT PROGRAM statement)

“EXIT 文で PROGRAM 指定があるもの”の縮約形。

4.77

EXIT SECTION

文(EXIT SECTION statement)

“EXIT 文で SECTION 指定があるもの”の縮約形。

4.78

明示範囲終了子(explicit scope terminator)

文の範囲を終了させる語。文の種類によって語は異なる。

4.79

拡張モード(extend mode)

ファイル処理のモードの一つ。このモードでは,順ファイルの最後にレコードを追加してもよいが,レ

コードの削除,読み込み,及び更新はできない。

4.80

拡張文字(extended letter)

COBOL

文字レパートリとして定義された文字集合の中で,基本文字(basic letter)でない文字(letter)

4.81

外部データ(external data)

実行単位に属するデータであって,

これを記述しているいずれの実行時要素もアクセスしてもよいもの。

4.82

外部媒体形式(external media format)

表現又は印字に適したデータの形式の一つであって,読解可能なテキストとして表現するために必要な

あらゆる制御機能をも含んでいるもの。

4.83

外部スイッチ(external switch)

二者択一の状態のいずれかであることを示すために用いられるハードウェア又はソフトウェアの装置で,

実装者によって命名され定義されるもの。

4.84


14

X 3002

:2011 (ISO/IEC 1989:2002)

ファクトリオブジェクト(factory object)

クラスに関連する唯一のオブジェクトであって,

そのクラスのファクトリ定義によって定義されるもの。

主に,そのクラスに属するインスタンスオブジェクトを生成するために用いられる。

4.85

ファイル(file)

論理レコードの集まりを表す論理的な実体。一つのファイル結合子に関連する論理ファイルは一つであ

るが,一つの物理ファイルに関連する論理ファイルが複数あってもよい。

4.86

ファイル結合子(file connector)

ファイルについての情報を含んでいる記憶領域であって,ファイル名と物理ファイルとの間の連絡,及

びファイル名とそれに関連するレコード領域との間の連絡に使用されるもの。

4.87

ファイル編成(file organization)

ファイルを生成した時点で確定する永続的な論理的ファイル構造。

4.88

ファイル位置指示子(file position indicator)

概念上の実体であって,次に呼び出すレコードを正確に指定する便宜上用いられるもの,又はそのよう

な参照が確定できない理由を示しているもの。

4.89

ファイル共用(file sharing)

同一物理ファイルへの同時呼出しを制御する共同環境。

4.90

ファイル固有属性(fixed file attribute)

物理ファイルの属性のうち,その物理ファイルの生成時に確定され,その物理ファイルが存在する間は

決して変更されないもの。

4.91

仮パラメタ(formal parameter)

手続き部見出しの USING 指定に書いたデータ名であって,ある引数に対し,関数・メソッド・プログ

ラム中で用いられる名前を付与したもの。

4.92

関数(function)

プログラム言語に組み込まれているか,又は利用者が定義する手続き実体であって,引数に基づいた値

を返すもの。

4.93

関数原型定義(function prototype definition)

特定の関数の評価のために必要とされる引数,関数の評価の結果を返すデータ項目,そのほか関数の評

価に対して必要とされる全ての要求を統括する規則を指定する定義。

4.94

図形文字(graphic character)

制御機能以外の文字であって,通常は手書き,印字又は表示の可視化表現をもつもの。


15

X 3002

:2011 (ISO/IEC 1989:2002)

注記  この定義は,JIS X 0221 の用語定義 4.22(図形文字)に相当する。

4.95

図形記号(graphic symbol)

図形文字又はその合成列の可視化表現。

注記  この定義は,JIS X 0221 の用語定義 4.23(図形記号)に相当する。

4.96

(現地特性編集の)けたまとめ[grouping (in locale editing)]

数値及び金額の表記形式において,けたを区切って幾つかの組にする処理。

4.97

けたまとめ文字(grouping separator)

数値が読みやすくなるよう数字けたを区切るために用いられる文字。COBOL の既定解釈は文字のコン

マである。

4.98

最左端(high-order end)

文字列又はビット列の最左端位置。

4.99

入出力両用モード(i-o mode)

ファイル処理のモードの一つ。このモードでは,レコードの読込み,更新,追加,及び削除ができる。

4.100

入出力状態(i-o status)

一つのファイルに対して一つ存在する概念上の実体であって,そのファイルに対する入出力操作の実行

結果を表す値をもつ。

4.101

無条件文(imperative statement)

無条件動作を指示する文と,範囲明示文とのいずれか。

4.102

指標(index)

記憶領域又はレジスタであって,内容が表中の特定の要素を指すもの。

4.103

索引編成(indexed organization)

各レコードが,

レコード中の幾つかのキーの値によって識別されるような,

永続的な論理ファイル構造。

4.104

(クラスの)継承[inheritance (for classes)]

幾つかのクラスのインタフェース及び実装を用いて,別のクラスの基礎とする仕組み。

4.105

(インタフェースの)継承[inheritance (for interfaces)]

幾つかのインタフェースの仕様を用いて,別のインタフェースの基礎とする仕組み。

4.106

初期化プログラム(initial program)

呼び出された時点ではいつも初期状態に設定されるプログラム。


16

X 3002

:2011 (ISO/IEC 1989:2002)

4.107

初期状態(initial state)

実行単位中で最初に活性化された時点での関数・メソッド・プログラムの状態。

4.108

入力モード(input mode)

ファイル処理のモードの一つ。このモードでは,レコードの読込みだけができる。

4.109

インスタンスオブジェクト(instance object)

オブジェクトの単一のインスタンス。クラスによって定義され,ファクトリオブジェクトによって生成

される。

4.110

(オブジェクトの)インタフェース[interface (of an object)]

オブジェクトに対して定義された全てのメソッド群(継承されたメソッド群も含める)の名前。各メソ

ッドについては次による。

−  仮パラメタの順序付きの並び,各パラメタの記述,及び各パラメタの引渡し方法

−  指定があるときは返却値及びその記述

−  引き起こし得る例外状態の組

4.111

(言語構成)インタフェース[interface (the language construct)]

メソッド原型の集まり。

4.112

内部データ(internal data)

あるソース単位中で記述されたデータのうちで,

外部データ項目及び外部ファイル結合子を除いた全て。

4.113

呼出し(invocation; method invocation)

4.123

(メソッド呼出し)参照。

4.114

参照キー(key of reference)

索引ファイル中のレコードを呼び出すため現在使われている主レコードキー又は副レコードキー。

4.115

文字(letter)

基本文字(basic letter)又は拡張文字(extended letter)

4.116

現地特性(locale)

利用者情報技術環境での機能であって,言語及び文化的規約を規定するもの。

4.117

施錠モード(lock mode)

レコード施錠が有効なファイルの状態であって,レコード施錠が手動か自動かを示している。

4.118

最右端(low-order end)


17

X 3002

:2011 (ISO/IEC 1989:2002)

文字列又はビット列の最右端位置。

4.119

MCS

(MCS; message control system)

4.120

(通信管理システム)参照。

4.120

通信管理システム(message control system; MCS)

通信の処理を実現する通信制御システム。

4.121

メソッド(method)

あるクラスに属するオブジェクトに対して許される操作として,メソッド定義によって定義される手続

き実体。そのメソッド定義は,そのクラス定義の中にあるか,又は継承されたものである。

4.122

メソッドデータ(method data)

メソッド定義中で宣言されたデータ。

4.123

メソッド呼出し(method invocation; invocation)

名前付きメソッドをオブジェクトに対して実行するようにとの要求。

4.124

メソッド原型(method prototype)

メソッド呼出し及び適合検査に必要な情報を定義しているソース要素。

4.125

各国文字(national character)

各国文字集合の文字。

4.126

各国文字位置(national character position)

各国文字の単一文字を格納するのに必要な物理的記憶域の大きさ,又はそれを印字若しくは表示するの

に必要な表示スペースの大きさ。

4.127

各国文字集合(national character set; national coded character set)

4.128

(各国文字符号化文字集合)参照。

4.128

各国文字符号化文字集合(national coded character set; national character set)

用途 NATIONAL と記述されたデータ項目及び各国文字定数を表現するために実装者が選定した文字集

合。

4.129

各国文字データ項目(national data item)

字類が各国文字である基本データ項目又は各国文字集団項目。

4.130

固有英数字文字集合(native alphanumeric character set)

計算機の英数字符号化文字集合。


18

X 3002

:2011 (ISO/IEC 1989:2002)

4.131

固有算術(native arithmetic)

実装者指定の技法を算術の扱いに用いる算術モード。

4.132

固有文字集合(native character set)

実装者定義の英数字,各国文字,又はその両方の文字集合であって,COBOL 実行時モジュールの内部

処理に用いられるもの。固有文字集合は,特殊名段落のキーワード NATIVE で参照される。

4.133

固有文字照合順序(native collating sequence)

実行時モジュールが実行される計算機に関連する,実装者定義の文字照合順序であって,英数字照合順

序又は各国文字照合順序のいずれか。

4.134

固有各国文字符号化文字集合(native national coded character set)

計算機の各国文字符号化文字集合。

4.135

次のレコード(next record)

ファイルの現在レコードに論理上後続するレコード。

4.136

ナル(null)

ポインタがアドレスを保持していないことを示すポインタの状態,又はオブジェクト参照が参照を保持

していないことを示すオブジェクト参照の状態。

4.137

COBOL の規則中での)数字[numeric character (in the rules of COBOL)]

次の数字集合に属する文字。0,1,2,3,4,5,6,7,8,9。

4.138

オブジェクト(object)

データ及びそのデータに対して作用するメソッドで構成される単位。

4.139

オブジェクトデータ(object data)

次のいずれかにおいて定義されたデータ。

−  ファクトリ定義中。ただし,そのメソッド中で記述されたデータを除く。

−  インスタンス定義中。ただし,そのメソッド中で記述されたデータを除く。

4.140

オブジェクトプロパティ(object property; property)

オブジェクトから値を得たり,値をオブジェクトに渡したりするために,オブジェクト参照の修飾語と

して用いてもよい名前。

4.141

オブジェクト参照(object reference)

オブジェクトへの参照を内容として含む,明示的又は暗黙に定義されたデータ項目。

4.142


19

X 3002

:2011 (ISO/IEC 1989:2002)

オープンモード(open mode)

ファイル結合子の状態であって,関連するファイルに行ってもよい入出力動作の種類を示すもの。

4.143

不定ファイル(optional file)

実行時モジュールが実行されるとき必ずしも存在しなくてもよいように宣言されたファイル。

4.144

最も外側のプログラム(outermost program)

プログラムのうち,それに内包されるプログラムを包括し,他のいかなるプログラムにも内包されない

もの。

4.145

出力ファイル(output file)

出力モード又は拡張モードで開かれたファイル。

4.146

出力モード(output mode)

ファイル処理のモードの一つ。このモードでは,ファイルを作成し,そのファイルにレコードを追加す

ることだけができる。

4.147

物理ファイル(physical file)

物理レコードの物理的な集まり。

4.148

物理レコード(physical record; block)

4.19

(ブロック)参照。

4.149

直前のレコード(previous record)

ファイルの現在レコードに論理上先行するレコード。

4.150

手続き(procedure)

手続き部内の連続した一つ以上の段落又は節の集まり。

4.151

手続き分岐文(procedure branching statement)

書いた順に従わず,次に実行可能な文ではない他の文へ明示的な制御の移行を起こす文。

4.152

処理系(processor)

ハードウェア及びソフトウェアの両者を包括した計算機システムであって,ソースコードの翻訳,実行

単位の実行,又はその両方に用いられるもの。

4.153

プログラム原型定義(program prototype definition)

副プログラムが受け取ることを期待しているパラメタの字類,及びその副プログラムへ制御を移し,そ

こから制御を受け取り,情報を引き取るために必要とされる,その他の全ての要求を,統括する規則を示

す定義。


20

X 3002

:2011 (ISO/IEC 1989:2002)

4.154

プロパティ(property; object property)

4.140

(オブジェクトプロパティ)参照。

4.155

乱呼出し(random access)

相対ファイル又は索引ファイルに対して読込み・削除・書込みを行う論理レコードを,キーデータ項目

の値によって識別する呼出し法。

4.156

レコードキー(record key)

索引ファイル中のレコードを識別するために用いる,レコード中のデータ項目。

4.157

レコード錠(record lock)

共用される物理ファイル中の特定レコードへの同時呼出しを制御するために用いる,概念上の実体。

4.158

レコード施錠(record locking)

共用される物理ファイル中のレコードへの同時呼出しを制御するための機能。

4.159

相対項目(relative item)

報告書中の項目であってその位置が直前の項目からの相対位置で指定されるもの。

4.160

相対キー(relative key)

相対レコード番号を内容としてもつデータ項目。

4.161

相対編成(relative organization)

各々のレコードの論理的な位置が相対レコード番号によって一意に識別される,永続的な論理ファイル

構造。

4.162

相対レコード番号(relative record number)

相対編成のファイル中のレコードの順序番号。

4.163

報告書(report)

報告書節で記述され,そのデータ記述から生成される印字出力。

4.164

報告書作成機能(report writer)

一連の処理段階を通してではなく,一般的な体裁に従って記述されたような印字レイアウトを可能にす

る,データ句及び文の包括的な集合。

4.165

制限付きポインタ(restricted pointer)

特定の型のデータ項目,又は指定されたプログラムと同じ呼出し情報をもつプログラムに,指す対象が

制限されているポインタデータ項目。


21

X 3002

:2011 (ISO/IEC 1989:2002)

4.166

実行単位(run unit)

問題解決を提供する一つの実体として,実行時に相互に作用しながら機能する,一つ以上の実行時モジ

ュール。

4.167

実行時要素(runtime element)

ソース要素を翻訳した結果として生成された実行可能単位。

4.168

実行時モジュール(runtime module)

翻訳単位(compilation unit)を翻訳した結果。

4.169

順呼出し(sequential access)

呼出し法の一つ。この呼出し法では論理レコードが,レコードを書き出す文の実行の順序でファイル中

へと書き出され,書き出された順序でレコードが読み込まれる。

4.170

順編成(sequential organization)

ファイルにレコードを書き出した時点で確定する前後関係によってレコードが識別される,永続的な論

理ファイル構造。

4.171

共用モード(sharing mode)

ファイルの状態であって,ファイル共用のモードを示すもの。

4.172

ソース要素(source element)

ソース単位から内部に含まれるソース単位を除いたもの。

4.173

ソース単位(source unit)

見出し部から始まり,終了標又は翻訳群の終わりで終わる一連の文の並び。その内部にある,あらゆる

入れ子のソース単位も包含する。

4.174

標準算術(standard arithmetic)

算術式,算術文,SUM 句並びに特定の整数関数及び数字関数を扱うのに用いられる技法を,規格が規定

している算術のモード。

4.175

標準中間データ項目(standard intermediate data item)

標準算術が有効であるとき,算術作用対象を保持するのに用いられる,一時的な抽象的 10 進浮動小数点

データ項目。

4.176

静的データ(static data)

ソース要素に再入した時点で直前使用状態をもつデータ。

4.177


22

X 3002

:2011 (ISO/IEC 1989:2002)

下位クラス(subclass)

別のクラスを継承するクラス。継承関係にある二つのクラスを考える場合に,下位クラスは継承者つま

り継承する側のクラスであり,上位クラスは被継承者つまり継承される側のクラスである。

注記  技術文献中では,下位クラスという用語の代わりに“派生クラス(derived class)”という用語

もよく用いられる。これらの用語は同義である。

4.178

記述項の左辺(subject of the entry)

データ記述項によって定義されるデータ項目。

4.179

添字(subscript)

表の特定の要素を指すために用いられる番号。添字 ALL の場合,表の全ての要素を指す。

4.180

上位クラス(superclass)

他のクラスに継承されるクラス。

4.181

サロゲートペア(surrogate pair)

国際符号化文字集合の単一抽象文字に対する,2 オクテット値二つの並びからなる UTF-16 形式の符号化

文字表現。この一対の,一つ目の値が上サロゲート(high-surrogate)であり,二つ目の値が下サロゲート

(low-surrogate)である。

注記  国際符号化文字集合を規定している JIS X 0221 では,サロゲートペア,上サロゲート,下サロ

ゲートとはいわずに,区点要素の対,上半分の領域の区点要素,下半分の領域の区点要素とい

っている。

4.182

(型宣言の)型[type (for type declaration)]

データ項目及びその従属項目の全ての性質をもつひな型。

4.183

UCS

(UCS; Universal Multiple-Octet Coded Character Set)

4.184

(国際符号化文字集合)参照。

4.184

国際符号化文字集合(Universal Multiple-Octet Coded Character Set; UCS)

JIS X 0221

によって定義される符号化文字集合。この符号化文字集合が包含する文字群は,現代世界中

で記述に用いられるほぼ全ての言語を網羅している。

4.185

非限定オブジェクト参照(universal object reference)

オブジェクト参照であって,特定クラス又は特定インタフェースへの制限はないもの。

4.186

実行不成功(unsuccessful execution)

実行を試みた結果として,文に指定された全ての操作を実行しなかった文。文の実行不成功は,その文

で参照されるデータに影響を及ぼさないが,状態指示子に影響を及ぼすことがある。

4.187


23

X 3002

:2011 (ISO/IEC 1989:2002)

可変反復データ項目(variable-occurrence data item)

可変回数反復する表要素。

4.188

長さゼロの項目(zero-length item)

取り得る長さの最小値がゼロであり,実行時に長さがゼロになる項目。

記述技法 

規格 COBOL を記述するのに用いられる技法には,次のものがある。

−  一般形式

−  規則

−  算術式

−  形式的でない記述

5.1 

一般形式 

一般形式(general format)は,規格 COBOL の要素の構文及び要素の並べ方を規定する。

個々の一般形式の中にある語(word),指定(phrase)

,句(clause),句読点,及び作用対象は,その一

般形式の規則で特に断らない限り,

翻訳群中において,

一般形式に示された順序で書かなければならない。

特定の言語構成に対して並べ方が複数種類ある場合,一般形式は,番号と名前とを付けた複数の形式に

分けて示される。

注記  この個々の形式を COBOL の JIS では“書き方”と呼ぶ。

一般形式を書き表すのに用いられる要素には,次のものがある。

−  キーワード keyword

−  補助語 optional

word

−  作用対象 operand

−  レベル番号 level

number

−  選択可能項目 option

−  角括弧  [  ] (square)

brackets

−  波括弧  {  } (curly)

braces

−  選択指示子  |  | choice

indicators

−  省略記号 ellipses

−  句読点 punctuation

−  特殊文字 special

character

−  メタ用語 meta-term

5.1.1 

キーワード 

キーワード(keyword)は,予約語又は文脈依存語である。これらを一般形式中では,下線のある大文字

で示す。キーワードに関連する機能を選択するには,これらを必ず指定しなければならず,また 5.1.5(選

択可能項目)に規定する規約,及び一般形式に対する構文規則に従わなければならない。

5.1.2 

補助語 

補助語(optional word)は,予約語又は文脈依存語である。これらは一般形式中では,下線のない大文

字で示される。補助語が定義されている句又は指定をソース単位の中に書く場合,補助語を書いて意味を

明確にしてもよい。


24

X 3002

:2011 (ISO/IEC 1989:2002)

5.1.3 

作用対象 

作用対象(operand)は,式,定数,データの参照又は例外状態の参照である。作用対象は日本語で示さ

れ,ソース単位を書くときにプログラマが与える項目,条件又は対象の,値又は識別を表すものである。

次に示す用語はいずれも,対応する言語要素の出現を指す。これは“記述箇所”欄に記された参照段落

の規定による。そのような用語は日本語で表記され,一意参照のため各々に接尾辞の数字が附加される。

作用対象の種類 

記述箇所 

用語(n123,…) 

引数

15.2

(引数) 

引数 n

8.8

(いろいろな式) 

算術式 n

ブール式 n

条件式 n

整数

5.4

(整数作用対象) 

整数 n

定数

8.3.1.2

(定数) 

定数 n

参照

8.4

(参照) 

a)

利用者定義語,

必 要 に 応 じ て 修 飾 及

び添字付けも含める

8.3.1.1.1

(利用者定義語) 

8.4.1.1

(修飾) 

8.4.1.2

(添字) 

8.3.1.1.1

に挙げた種類のいずれか

に接尾語の数字を附加したもの

b)

一意名

8.4.2

(いろいろな一意名) 

一意名 n

c)

例外名

14.5.12.1.5

(例外名及び

例外状態) 

例外名 n

5.1.4 

レベル番号 

一般形式中に特定のレベル番号がある場合は,その書き方をソース単位中に書くときに必ずそのレベル

番号を指定しなければならない。レベル番号の書き方 1,2,…,9 はそれぞれ 01,02,…,09 と 2 けたで

書いてもよい。

5.1.5 

選択可能項目 

選択可能項目(option)は,一般形式中において角括弧,波括弧又は選択指示子の内部に取り得る選択

肢を縦に並べて書くことで示す。選択可能項目の一つを選択するには,取り得る選択肢の組のうち 1 種類

を指定するか,角括弧,波括弧又は選択指示子の並びから一意な選択肢の組合せを指定する。

5.1.5.1 

角括弧 

角括弧(brackets,[  ])で一般形式の一部を囲んである場合は,その角括弧の内部にある構文要素又

は選択肢の一つを明示的に指定してもよいし,一般形式のその部分を省略してもよい。省略された要素の

代わりに想定される既定解釈はない。

5.1.5.2 

波括弧 

波括弧(braces,{  })で一般形式の一部を囲んである場合,その波括弧の内部にある構文要素又は選

択肢の一つを明示的に指定するか,暗黙に選択するかしなければならない。選択肢の一つが補助語だけか

らなるときは,その選択肢が既定解釈であって,別な選択肢を明示的に指定しない限りその選択肢を暗黙

に選択したことになる。

5.1.5.3 

選択指示子 

選択指示子(choice indicators)とは,波括弧又は角括弧で囲まれた一対の縦棒( | | )であって,一般形

式の一部を囲んでいるものである。波括弧で囲んだ場合,その選択指示子の内部にある選択肢は一つ以上


25

X 3002

:2011 (ISO/IEC 1989:2002)

を指定しなければならないが,同じ選択肢の指定は一度だけでなければならない。角括弧で囲んだ場合,

その選択指示子の内部にある選択肢は,省略するか又は一つ以上を指定しなければならないが,同じ選択

肢は一度だけ指定してもよい。選択肢の指定の順序は任意である。

5.1.6 

省略記号 

省略記号(ellipses,…)は,一般形式中において書き方の一部を利用者が繰り返し選択する箇所を表す。

書き方のうち繰り返してもよい部分の決定方法は次による。書き方の中に省略記号がある場合,右から左

へと読み進めて,省略記号の直前にある右角括弧又は右波括弧の区切り記号を決定する。さらに,右から

左へ読み進めて,それと論理的に対応する左角括弧又は左波括弧の区切り記号を決定する。書き方のうち

決定された区切り記号の一対で囲まれた部分に省略記号が適用される。

注記  一般形式以外の本文中での省略記号は,省略しても理解が損なわれない場合に限って,語句又

は語句の並びが省略されていることを表す。これが,省略記号の本来の意味であり,その用途

は文脈中で明確になる。

5.1.7 

句読点 

分離符のコンマ及びセミコロンは,一般形式及びその他の構文規定の中で分離符の空白を用いる箇所で

あればどこで用いてもよい。翻訳群中で,これらの分離符は交換可能とする。

一般形式中に規定された分離符の終止符は,その書き方を使用する場合は必須である。

5.1.8 

特殊文字 

書き方の中に現れる特殊文字の語及び分離符には下線はないが,その書き方の,その部分を用いる場合

には,必ず指定しなければならない。

5.1.9 

メタ用語 

メタ用語は,一般形式中では小文字又は日本語で示され,一般形式の部分の名前を表す。X をメタ用語

とすると,この部分は書き方の主部の下に“X は,次による。

”と指定される。

5.2 

規則 

組込み関数以外に対しては,規則は大別して構文規則と一般規則とに分類される。組込み関数に対して

は,代わりに引数の規則及び関数の返却値の規則とがある。

5.2.1 

構文規則 

構文規則(syntax rule)は,一般規則を補完したり,等価な語を認定したり,更に大きな要素である指定,

句,文などを形成するために語又は要素を書いてもよい順序を規定又は明確化したりする。さらに,個々

の語又は要素に制限を課したり,語又は要素による暗黙の制限を緩和したり,その他の構文規則中で用い

てもよい用語を定義したりもする。

PICTURE

句の規則のうち,13.16.38.5(順序規則)の規定は構文規則である。

構文規則が,ある語を別な語(又は語列)とは同義,略記,又は等価であると規定している場合,両者

は書き方の上で交換可能であって同じ意味をもつ。

5.2.2 

一般規則 

一般規則(general rule)は,ある要素の意味又は要素間の意味の相互関連を規定又は明確化する。一般

規則は,文の意味及び実行時又は翻訳時における効果を規定又は明確化するために用いられ,後に続く一

般規則で用いる用語を定義することもある。

PICTURE

句の規則のうち,13.16.38.4(編集規則)の規定は一般規則である。

5.2.3 

引数の規則 

引数の規則は,組込み関数への引数に関連する要求事項,制約事項又は既定解釈を規定する。


26

X 3002

:2011 (ISO/IEC 1989:2002)

5.2.4 

関数の返却値の規則 

関数の返却値の規則は,組込み関数の意味を規定する。

5.3 

算術式 

規則の中には,COBOL 構文の結果の一部又は全部を規定する算術式が含まれたものもある。算術式の

表記の中では,次に示す特別な記法又は意味の異なる記法を用いる。

5.3.1 

本文中での作用対象の下付き数字 

作用対象に本文中“作用対象 j

n

”のような下付き数字がある場合,用語“作用対象 j”が特定の作用対象

を示し,

“n”が“作用対象 j”の n 番目の位置又は実体を示している。

注記  例えば,15.61(PRESENT-VALUE 関数)の関数の返却値の規則に現れる。

5.3.2 

省略記号 

省略記号は,項又は演算子の個数が可変であることを表す。

5.4 

整数作用対象 

1)

用語“整数 n”

(n=1,2,…)は,一般形式又は関連規則中で用いた場合,固定小数点整数定数を指

す。関連規則中に別の指定がない限り,符号なしのゼロでない整数でなければならない。

2)

用語“整数”を構文規則中で制約条件に使用した場合は,次による。

a)

その作用対象が定数のとき,整数定数でなければならない(8.3.1.2.2.1 参照)

b)

その作用対象がデータ名又は一意名のとき,次のいずれかでなければならない。

1.

整数型の組込み関数

2.

組込み関数以外の固定小数点数字データ項目で,小数点の右側にけた位置のない記述をもつもの。

3)

用語“整数”を一般規則中で制約条件に使用した場合,その作用対象は実行時に次のとおり評価され

なければならない。

a)

固有算術が有効であるとき,どのような場合に作用対象が整数になるかは,実装者定義とする。

b)

標準算術が有効であるとき作用対象は,特異な値のゼロをもつか,10 進固定小数点表現が小数点の

右側にゼロだけをもつ,標準中間データ項目と等しくなければならない。

注記 1  指数の値が 31 を超えるとき,その標準中間データ項目の値は整数である。

注記 2  指数の値が 1 未満であるとき,その標準中間データ項目の値は整数ではない。

c)

固有算術が有効であるとき,算術式が整数になる条件は,実装者定義とする。

5.5 

形式的でない記述 

COBOL

仕様書の相当な部分は,言葉,表,及び一般形式以外の図で,形式的でなく記述される。これ

らの部分は,通常は 5.2.2(一般規則)で示した,意味を規定するものであるが,5.1(一般形式)及び 5.2.1

(構文規則)で示した事項に附加する構文上の要求事項が含まれることもある。意味が振る舞いを規定す

るのに対して,構文上の要求事項はソースコードの書き方を規定する。

5.6 

本文中のハイフン 

本文の行末に現れるハイフンは,それが区切る文字列又は語の一部とする。複数の行にまたがる文字列

又は語を行末で分割するためにハイフンを用いることはない。

注記  この規定は,COBOL の国際対応規格での英文行末ハイフンについての言及であり,日本語で

書かれた COBOL の JIS では該当しない。

5.7 

規定条項の文章の末尾 

この規格の規格本文中では決まった文章の末尾を用いて,規格合致のため要求事項,選択の自由が認め

られる条項,及び推奨事項の相違を区別している。これらの文章の末尾は,JIS Z 8301 

附属書 H(規定


27

X 3002

:2011 (ISO/IEC 1989:2002)

を表す言葉の表現形式)による。

この規格中で用いる規定の文章の末尾及び代替表現を,次の

表 に要約して示す。

表 1−文章の末尾

意味の区別

文章の末尾

国際規格での対応英語

実装系又はプログラムに関す
る要求事項であり,規格への合

致のために厳密に従わなけれ
ばならない。

…(し)なければならない。

…  とする。 
…  による。

…(し)てはならない。 
…(し)ない。

shall

(要求規定)

  同類:  is required to

 is

 is

to

shall not

(禁止規定)

  同類: is not permitted

is not allowed

規格の表現する許容事項。

…(し)てもよい。 
…差し支えない。

…しなくてもよい。 
…する必要はない。

may

(許容規定)

  同類: is permitted

 is

allowed

need not

(不要規定)

  同類:  is not required to

規格の表現する推奨事項。

従わなくてもよい。

…することが望ましい。 
…するほうがよい。

…しないほうがよい。

should

  同類:  it is recommended that

 is

recommended

should not

  同類:  is not recommended

利用者に公開された

規格の能力又は可能性。

…できる。

…できない。

can

  同類:  is able to

it is possible to

 is

possible

cannot

正書法 

正書法は,COBOL のソース原文及び登録集原文を記述するための規約である。COBOL には,自由形式

正書法及び固定形式正書法の 2 種類の正書法が用意されている。この 2 種類の正書法は,ソース原文及び

登録集原文の中又は間で混在してもよく,そのために SOURCE FORMAT 翻訳指示が用いられる。翻訳群

の正書法の既定解釈は,固定形式とする。

次の規則が,指定された正書法に適用される。

1)

自由形式及び固定形式

a)

正書法は,入出力媒体上の行上の文字位置の観点で記述される。

b) COBOL

コンパイラは,正書法に従って書いたソース原文及び登録集原文を受け付けなければなら

ない。

c)

行及び文字位置の意味は,実装者定義とする。

注記  以前の規格では,どの種類の文字が用いられるのか明確でなかったが,一般的には均一な

幅をもつ英数字の列と想定されていた。


28

X 3002

:2011 (ISO/IEC 1989:2002)

d)

翻訳群の原文の解析上,翻訳群の最初の文字列には先行する分離符の空白があるとみなし,翻訳群

の最後の文字列には後続する分離符の空白があるとみなす。

2)

固定形式

a) COBOL

コンパイラは,固定形式正書法の行を処理して,その行を固定形式から自由形式に論理的

に変換しなければならない[6.4(論理的変換)参照]

b)

論理的変換の後は,

自由形式に変換された行が,

自由形式正書法の要求を満たさなければならない。

ただし,行の長さは延びてもよいが,英数字定数及び各国文字定数の中では計算機文字集合の全て

の文字がそのまま保持されなければならない[規則 3) b)  参照]

3)

自由形式

a)  1

行上の文字位置の数は行ごとに変わってもよく,

その範囲は最小値 0 から最大値 255 までとする。

b)

自由形式の行の終端を示す制御文字は,実装者定義とする。そのような制御文字が,注記,英数字

定数及び各国文字定数の中に記述できるかどうかは,実装者定義とする。

6.1 

標識 

標識(indicators)とは,コンパイラへ正書法の解釈を指示するものである。標識は固定標識と浮動標識

とに分類される。

6.1.1 

固定標識 

固定標識(fixed indicators)は,固定形式正書法の標識領域に指定してもよい[6.2(固定形式正書法)参

照]

。固定標識を次に示す。

文字 

標識の名前 

その意味 

*

注記標識

注記行

/

注記標識

注記行で改ページを伴うもの

D

デバッグ標識

デバッグ行

d

デバッグ標識

デバッグ行

(ハイフン)

継続標識

後の行

空白

ソース標識

注記行・デバッグ行・後の行以外のあらゆる

固定標識の文字は,COBOL 文字レパートリ中の文字ではなく,固定形式正書法に用いるために実装者

が定義した符号化文字集合の文字とする。

注記  ここで重要なことは,固定標識については,英数字と各国文字との等価性が要求もされないし,

排除もされないという点である。その意図は,以前の規格 COBOL との上位互換を許すためで

ある。以前の規格では文字に英数字及び各国文字という分類が存在しなかった。

6.1.2 

浮動標識 

浮動標識(floating indicators)は,固定形式正書法で用いても,自由形式正書法で用いてもよい。浮動標

識は,次に示す COBOL 文字列とする。

文字列 

標識の名前 

その意味 

*>

注記標識

1)

注記行(プログラム原文領域中で先頭文字列として指

定した場合)

2)

行内注記(プログラム原文領域中で一つ以上の文字列

の後に指定した場合)

なお,6.1.2.1(構文規則)にも従わなければならない。


29

X 3002

:2011 (ISO/IEC 1989:2002)

>>

翻訳指示標識

翻訳指示行(空白を挟むか否かにかかわらず,次に翻訳指

示語が続く場合)

なお,7.2(翻訳指示)の規則にも従わなければならない。

"–

'–

定数継続標識

定数の継続(未完結の定数で,開始区切りに用いたのと同

じ引用記号を指定した場合)

なお,6.1.2.1(構文規則)にも従わなければならない。

>>D

デバッグ標識

デバッグ行(直後に 1 個以上の空白文字が続く場合)

6.1.2.1 

構文規則 

1)

翻訳群の原文の解析上,浮動注記標識の直後には空白 1 個を書いたものとみなす。

2)

行内注記の浮動注記標識は,直前に分離符の空白がなければならない。これは,分離符の空白を書い

てもよいところならどこに書いてもよいが,次に示す例外がある。

−  浮動注記標識の直前におく分離符の空白の代わりとしては,書いてはならない。

−  浮動定数継続標識の直後に書いてはならない。

3)

複数文字の浮動標識を形成する文字は,全体を同じ行の中に書かなければならない。

4)

浮動定数継続標識は,英数字定数・ブール定数・各国文字定数に対してだけ書いてもよい。一つの定

数を継続するために継続の書き方を 2 種類以上混ぜて用いてはならない。

5)

浮動定数継続標識を,固定定数継続標識のある行に書いてはならない。

6)

複数行にわたって継続する英数字定数・ブール定数・各国文字定数に対しては,各々の後の行の最初

の非空白文字は,その定数の開始区切り記号に用いた引用記号でなければならない。

7)

浮動デバッグ標識と同じ行の中に,先行して書いてもよいものは空白文字だけとする。

8)

浮動デバッグ標識を,固定デバッグ標識又は固定継続標識のある行に書いてはならない。

注記  デバッグ標識及びデバッグ機能は,廃要素であって,規格 COBOL の次の版からは削除される

予定である。

6.2 

固定形式正書法 

固定形式正書法の行の書き方は,次による(

図 参照)。

境界

境界

境界

境界

L C

A

R

1 2 3 4 5 6

7

8

9

10

11

12

13

・・・

一連番号領域

標識領域

プログラム原文領域

図 1−固定形式正書法

境界 L は,行の最左端文字位置のすぐ左とする。

境界 C は,行の 6 番目と 7 番目の文字位置の間とする。

境界 A は,行の 7 番目と 8 番目の文字位置の間とする。

境界 R は,プログラム原文領域の最右端文字位置のすぐ右とする。最右端文字位置は固定で,実装者定

義とする。

一連番号領域は,6 個の文字位置(1∼6)を占め,境界 L と境界 C との間とする。

標識領域は,行の 7 番目の文字位置とする。

プログラム原文領域は,文字位置 8 から始まり,境界 R のすぐ左の文字位置で終わる。


30

X 3002

:2011 (ISO/IEC 1989:2002)

6.2.1 

一連番号領域 

一連番号領域を利用して,ソース原文及び登録集原文の行を識別してもよい。一連番号領域の内容は,

利用者によって定義され,計算機文字集合中の任意の文字で構成される。一連番号領域の内容は,特定の

順序でなくてもよいし,一意でなくてもよい。

6.2.2 

標識領域 

標識領域は,6.1.1(固定標識)に規定された標識に従ってソース行の種類を識別する。

6.2.3 

プログラム原文領域 

プログラム原文領域の内容は,次に示すいずれかであってもよい。

1)

標識領域の内容が注記標識である場合,注記行の注記原文。

2)

標識領域の内容がデバッグ標識,継続標識,又はソース標識である場合,次に示すいずれか又はその

組合せで,更に構文の規定に従うもの。

−  文字列(COBOL の語)

−  分離符

−  注記

−  浮動標識

3)

全て空白。

6.2.4 

行の継続 

ある記述項,完結文,文,句,指定又は仮原文が複数の文字列からなるとき,2 番目以降の COBOL の

語,定数又は PICTURE 文字列は,後に続く行のプログラム原文領域に書いてもよい。

一つの COBOL の語,定数又は PICTURE 文字列を分けて,その一部を後に続く幾つかの行にわたって

書いてもよい。後続する行を後の行(continuation line)と呼び,先行する行を前の行(continued line)と呼

ぶ。COBOL の語,PICTURE 文字列,又は英数字・ブール・各国文字以外の定数が継続中であることは,

固定継続標識を後の行に書くことで示す。

注記 COBOL の語の継続は旧式要素であり,使用しないほうがよい。しかしながら以前の規格 COBOL

との互換性のため,固定形式正書法では用いてもよい。

英数字定数・ブール定数・各国文字定数を継続することは,次のいずれかで示す。

1)

英数字定数又はブール定数の途中に,終了区切り記号なしの行末があって,その次にくる注記行でも

空白行でもない行に固定継続標識がある。

2)

英数字定数・ブール定数・各国文字定数の途中に,浮動定数継続標識付きの行末がある。

継続が固定継続標識による場合,その継続対象である固定形式行の末尾の空白は全て,その定数の一部

となる。

継続が固定継続標識による場合も浮動定数継続標識による場合も,その次にくる注記行でも空白行でも

ない行が,後の行である。後の行のプログラム原文領域内にある最初の非空白文字は,開始区切り記号に

用いた引用記号に釣り合う引用記号でなければならない。継続が始まる箇所は,後の行のこの引用記号の

直後の文字位置である。

各国文字定数は,浮動定数継続標識によってだけ継続してもよい。

複数文字からなる分離符,又は標識を構成する文字は,全てを同一の行に記述しなければならない。呼

出し演算子"::"を構成する文字は,全てを同一の行に記述しなければならない。

一つの定数を分かち書きした幾つかの行の間に,注記行及び空白行が挟まってもよい。

ある行に固定継続標識がないとき,翻訳群の原文の解析上,その行の最初の非空白文字の前に空白 1 個


31

X 3002

:2011 (ISO/IEC 1989:2002)

を書いたものとみなす。

6.2.5 

空白行 

空白行とは,境界 C から境界 R までの内容が空白文字だけである行をいう。空白行は,翻訳群のどの行

として書いてもよい。

6.2.6 

注記 

注記は,注記標識とそれに後続する注記原文とからなる。注記原文中には,翻訳時の計算機文字集合の

いかなる文字の組合せを書いてもよい。

注記はただの注釈として扱われ,翻訳群の意味上の効果はない。

注記は,注記行であることも行内注記であることもある。

6.2.6.1 

注記行 

注記行は,固定注記標識又は浮動注記標識で示される。注記標識の直後から境界 R までの全ての文字が

注記原文である。注記行は,翻訳群のどの行として書いてもよい。

印字出力が生成される場合,固定注記標識の斜線  "/"  によって示される注記行は,その注記行の印字に

先立って改ページを引き起こし,固定注記標識の星印  "*"  によって示される注記行は,印字出力の,次に

出力可能な位置に印字される。

6.2.6.2 

行内注記 

浮動注記標識の前のプログラム原文領域内に一つ以上の文字列があると,その浮動注記標識は行内注記

を示す。その浮動注記標識の直後から境界 R までの全ての文字が注記原文である。行内注記は,浮動定数

継続標識のある行を除けば,翻訳群のどの行に書いてもよい。

6.2.7 

デバッグ行 

デバッグ行は,固定デバッグ標識又は浮動デバッグ標識で示される。境界 A から境界 R までが空白だけ

で構成されるデバッグ行は,空白行と同じとみなされる。デバッグ行は連続して指定してもよい。

デバッグ行は,翻訳用計算機段落の後であれば,翻訳単位中のどこに書いてもよい。

全ての COPY 文及び REPLACE 文が処理された後,翻訳用計算機段落に WITH DEBUGGING MODE 句

がない場合は,デバッグ行は注記行の特性をもつ。

注記  デバッグ行はこの規格の廃要素であり,規格 COBOL の次の版からは削除される予定である。

6.3 

自由形式正書法 

自由形式正書法では,ソース原文及び登録集原文を,行の中のどの文字位置に書いてもよい。ただし,

注記,デバッグ行及び継続に対しては特別な規則がある。

6.1.2

(浮動標識)に規定された標識が,翻訳群の特定要素を識別する。自由形式の行は,その全体がそ

の行のプログラム原文領域を構成する。

6.3.1 

行の継続 

一つ以上の文字列からなるあらゆる記述項,完結文,文,句,指定又は仮原文は,それを構成する文字

列及び分離符の幾つかを後に続く行に書くことで,行を継続してもよい。

英数字定数・ブール定数・各国文字定数は,行をまたいで続いてもよい。続けられる行を前の行と呼び,

後続する行を後の行と呼ぶ。このような定数が行末で完結しない場合は,定数の未完結の部分が浮動継続

標識で終わらなければならない[6.1.2(浮動標識)参照]

。浮動継続標識の直後に,分離符の空白が一つ

以上あってもよい。後の行に現れる最初の非空白文字は,開始区切り記号に用いた左引用記号に釣り合う

引用記号でなければならず,その引用記号の後に現れる最初の文字が,定数の継続の最初の文字となる。

定数の内容中,前の行及び後の行にはそれぞれ,英数字,各国文字又は 16 進数字を少なくとも一つ記述し


32

X 3002

:2011 (ISO/IEC 1989:2002)

なければならない。

複数文字からなる分離符又は標識を構成する文字は,全てを同一の行に記述しなければならない。定数

内で引用記号 1 個を表す連続した引用記号 2 個は,同一の行に記述しなければならない。

一つの定数を分かち書きした幾つかの行の間に,注記行及び空白行が挟まってもよい。

6.3.2 

空白行 

空白行とは,空白文字以外を含まない行,又は文字位置が一つもない行である。空白行は翻訳群のどこ

にあってもよい。

6.3.3 

注記 

注記は,注記標識とそれに後続する注記原文とからなる。注記標識の直後から行末までの全ての文字が

注記原文である。

注記原文中には,箇条 6(正書法)の規則 3) b)  に示した文字を除き,翻訳時の計算機文字集合のどのよ

うな文字の組合せを書いてもよい。

注記は,ただの注釈として扱われ,翻訳群の意味上の効果はない。

注記は,注記行であることも行内注記であることもある。

6.3.3.1 

注記行 

注記行は,行の先頭文字列として指定した浮動注記標識によって示される。注記行は,翻訳群のどの行

として書いてもよい。

6.3.3.2 

行内注記 

浮動注記標識の前の行中に一つ以上の文字列があると,その浮動注記標識は行内注記を示す。行内注記

は,浮動定数継続標識のある行を除けば,翻訳群のどの行に書いてもよい。

6.3.4 

デバッグ行 

デバッグ行は,一つのデバッグ標識,デバッグ標識に先行して置いてもよい一つ以上の空白文字,及び

デバッグ標識に続く行中の全ての文字位置からなる。デバッグ行の終わりは行末とする。

デバッグ行は,翻訳用計算機段落の後であれば,翻訳単位中のどこに書いてもよい。

全ての COPY 文及び REPLACE 文が処理された後,翻訳用計算機段落に WITH DEBUGGING MODE 句

がない場合は,デバッグ行は注記行の特性をもつ。

注記  デバッグ行はこの規格の廃要素であり,規格 COBOL の次の版からは削除される予定である。

6.4 

論理的変換 

固定形式正書法のソース原文及び登録集原文は,置換及び条件翻訳の動作が適用される前に,自由形式

正書法へ論理的に変換される。固定形式及び自由形式での前の行及び後の行は連結されて継続標識は除去

され,注記行及び空白行は両方の形式から除去される。論理的変換の結果として生じる自由形式原文の,

行の長さの最大値に関する制限はない。

注記  固定形式正書法が翻訳中に自由形式正書法へと論理的に変換される理由は,その他の言語規則,

例えば COPY 文の REPLACING 指定及び REPLACE 文の理解を容易にするためである。

実装者は,効果が同じでありさえすれば,実際に変換を行わなくともよい。正書法及び原文

操作の規則は,実際の変換の有無に関係なく適用される。

論理的変換の規則は,コンパイラがソース原文及び登録集原文の行を入力する順序で,翻訳群の個々の

行に適用される。これらの行は,翻訳群の先頭行から終わりに達するまで順に調べられる。結果としての

論理的変換済みの翻訳群は,自由形式正書法であり,次のとおりに生成される。

1) SOURCE

FORMAT

指示の行の場合,正書法の種類が決定され  その後 SOURCE FORMAT 指示の行は


33

X 3002

:2011 (ISO/IEC 1989:2002)

論理的には捨てられる。

2)

注記行又は空白行の場合,その行は論理的には捨てられる。

3)

行内注記がある場合,その行内注記は空白で置換され  その行の処理が続く。

4)

固定形式又は自由形式の行に浮動定数継続標識がある場合,プログラム原文領域の末尾は継続標識の

直前の文字の直後にあるものとされる。継続標識それ自体及び後続するあらゆる文字列は論理的には

捨てられ,その行の処理が続く。

5)

固定形式の行に固定デバッグ標識がある場合,結果の翻訳群の中に自由形式の行が生成され,その構

成は浮動デバッグ標識と後続する空白,その後に固定形式でのプログラム原文領域の内容となる。

6)

固定形式の行にソース標識があり後の行ではない場合,その行のプログラム原文領域が結果の翻訳群

へと複写される。

7)

固定形式の行に固定継続標識がある場合は,次による。

a)

継続対象文字列が英数字定数又はブール定数であれば,プログラム原文領域の内容の最初の引用記

号の後の最初の文字から始まる部分が,結果の翻訳群の最新論理行の中の最後の文字のすぐ右へと

附加される。

b)

さもなければ,プログラム原文領域の内容の最初の非空白文字から始まる部分が,結果の翻訳群の

最新論理行の中の最後の文字のすぐ右へと附加される。

8)

自由形式の行であり後の行ではない場合,その行が結果の翻訳群へと複写される。

9)

固定形式又は自由形式の行が直前の浮動定数継続標識による後の行である場合,プログラム原文領域

の内容のうち最初の引用記号の後の最初の文字から始まる部分が,結果の翻訳群の最新論理行の中の

最後の文字のすぐ右へと附加される。

10)

その次の行が入力されて処理は 1)  から繰り返される。

翻訳群の終わりに達すると,結果としての論理的変換済み翻訳群を用いて処理が続く。ソース印字出力

を生成する実装のとき,ソース印字に対する論理的変換の影響は,実装者定義とする。

翻訳指示機能 

翻訳指示機能は,原文操作のための翻訳指示文,原文操作のための翻訳指示及び翻訳オプションを指定

するための翻訳指示からなる。

翻訳群処理には,翻訳指示文及び翻訳指示の動作が起きる段階が 2 種類ある,すなわち原文操作段階と

翻訳段階とである。

原文操作段階(text manipulation stage)では,元の翻訳群を受け取り,COPY 文,REPLACE 文,及び条

件翻訳の指示に指定された修正を実行し,定数記述項の翻訳変数を置き換える。成果物は,翻訳段階で処

理する構造化翻訳群である。

翻訳段階(compilation stage)では,その構造化翻訳群を利用しての翻訳処理を完成する。

翻訳指示文及びこれらの動作が起きる段階を,次に示す。

翻訳指示文 

段階 

COPY

原文操作

        SUPPRESS

指定

実装者定義

REPLACE

原文操作

さらに,翻訳指示及びこれらの動作が起きる段階を,次に示す。

翻訳指示 

段階 


34

X 3002

:2011 (ISO/IEC 1989:2002)

CALL-CONVENTION

翻訳

DEFINE

原文操作

EVALUATE

原文操作

FLAG-85

翻訳

IF

原文操作

LEAP-SECOND

翻訳

LISTING

実装者定義

PAGE

実装者定義

PROPAGATE

翻訳

SOURCE FORMAT

原文操作

TURN

翻訳

印字出力(もし指定があれば)に関連する動作が起きる段階は,実装者定義とする。

翻訳変数値から定数記述項への代替が起きるのは原文操作段階である。デバッグ行は,翻訳段階で取り

込まれるか又は取り除かれる。パラメタ付きクラス及びパラメタ付きインタフェースを展開する方法及び

展開する時点は,原文操作段階より後で展開されることを除いて,実装者定義とする。

7.1 

原文操作 

翻訳群処理の原文操作段階ではソース原文及び登録集原文からソース行を受け入れて,条件翻訳を通し

てソース行を選択的に取り込み,原文を修正して構造化翻訳群を生成する。

次に示す要素群とこれらの識別に必要な分離符とは,元々のソース原文及び登録集原文の中で,構文的

に正しいものでなければならない。

− COPY 文

−  翻訳指示

−  英数字定数,ブール定数及び各国文字定数

−  固定標識及び浮動標識

−  定数記述項で FROM 指定のあるもの

REPLACE

文は,COPY 文の REPLACING 指定の動作の後に,構文的に正しいものでなければならない。

これ以外の標識,言語要素及び分離符は,原文操作段階が完了するまでは構文的に正しいものでなくて

もよい。

原文操作は,ソース原文及び登録集原文の行に作用する幾つかの処理からなり,これらの処理は特定の

順序で有効になる。最終結果が同じになりさえすれば,実装者は実際の処理順序及び相互作用をあらゆる

方法で最適化してもよい。次に示す処理をこの順序で適用する。

1)

展開形の翻訳群(expanded compilation group)を,論理的に自由形式正書法で生成する−すなわち,入

力した行を順に受け入れ,6.4(論理的変換)の規定に従って自由形式正書法へ論理的に変換して,展

開形の翻訳群中に書き出す。COPY 文で識別される登録集原文を取り込むが,置換動作は 2)  の段階ま

で遅延する。COPY 文及びそれで取り込む原文は,展開形の翻訳群中において識別可能でなければな

らない。その目的は,これ以降に論理的に REPLACING 指定に関連する処理があったときの識別のた

めである。

IF

指示又は EVALUATE 指示の  条件が偽の場合の経路に現れた行が,COPY 文で識別される原文を

も含め,展開形の翻訳群から省略されることがある。SOURCE FORMAT 指示は,入力行を正しく解釈

するために,条件が偽の場合の経路に現れても処理されなければならない。


35

X 3002

:2011 (ISO/IEC 1989:2002)

注記  論理的変換の段階で条件が真又は偽の経路を認識することは,要求も禁止もされない。

その処理結果の行が,展開形の翻訳群を構成する。

2)

条件処理済みの翻訳群(conditionally-processed compilation group)を生成する−すなわち展開形の翻訳

群を読み込んで,次に示すものを現れた順に処理する。

a) DEFINE

指示,IF 指示及び EVALUATE 指示

b)

翻訳変数値から定数記述項への代替

c)

全ての COPY 文の置換動作

その処理結果の行が,条件処理済みの翻訳群を構成する。

3)

構造化翻訳群(structured compilation group)を生成する−すなわち条件処理済みの翻訳群を読み込ん

で,REPLACE 文の置換動作を順に適用する。

その処理結果の行が,構造化翻訳群を構成する。

原文操作処理の後では,翻訳群とは構造化翻訳群を指し,次の翻訳段階では,この構造化翻訳群に含ま

れる行が用いられる。

7.1.1 

原文操作要素 

箇条 7(翻訳指示機能)で参照されたが定義はされない言語要素群の意味は,箇条 8(言語の概念)によ

る。

7.1.1.1 

翻訳指示文 

翻訳指示文は,COPY 文及び REPLACE 文とする。

7.1.1.2 

ソース原文及び登録集原文 

ソース原文は,単一翻訳群に対するコンパイラへの主入力である。登録集原文は,COPY 文の処理の結

果としてコンパイラへの副入力となる。

原文操作によって処理されるソース原文及び登録集原文は,標識,文字列,注記及び分離符からなる。

文字列は,原文語又は語"COPY"のいずれかとする。

7.1.1.3 

仮原文 

仮原文(pseudo-text)とは,REPLACE 文中及び COPY 文の REPLACING 指定中にある作用対象である。

仮原文は,仮原文区切り記号で挟んで,0 個以上の原文語,注記,及び分離符の空白をいかなる順序で構

成してもよい。ただし,区切り記号自体は仮原文に含まれない。

開始の仮原文区切り記号及び終了の仮原文区切り記号は,2 個連続した COBOL 文字“= = ”からなる。

7.1.1.4 

原文語 

原文語(text-word)は,COBOL ソース原文又は登録集原文中の,1 文字又は連続した文字の並びであっ

て,次のような構成となる。

1)

分離符,ただし,次のもの以外:空白,仮原文区切り記号,及び英数字定数・ブール定数・各国文字

定数を囲む両端の区切り記号。原文語を形成する文字の並びを決定するとき,英数字定数・各国文字

定数の内部を除くあらゆる文脈において,コロン及び左右の丸括弧は分離符として扱われる。

2)

定数を囲む両端の区切り記号までを含めた,英数字定数・ブール定数・各国文字定数。

3)

これ以外の,分離符で囲んだ連続 COBOL 文字の並び全て。ただし,注記及び語"COPY"は除く。

7.1.2 COPY

 

COPY

(複写)文は,COBOL 翻訳群の中に,登録集原文を複写する。

7.1.2.1 

一般形式 


36

X 3002

:2011 (ISO/IEC 1989:2002)

 COPY

定数1

原文名1

⎣⎢

⎦⎥

 OF

 IN

定数2

登録集名1

 [SUPPRESS PRINTING]

REPLACING

⎪⎧

⎪⎫

 ==

仮原文1==

原文1

定数3

語1

 BY

 ==

仮原文2==

原文2

定数4

語2

 LEADING

 TRAILING

 ==

部分語1== BY ==部分語2==

… .

7.1.2.2 

構文規則 

1) COPY

文は,ソース原文中又は登録集原文中で,文字列を書いてもよいところ,又は定数の右側の区

切り記号を除く分離符を書いてもよいところには,どこに書いてもよい。ただし,COPY 文の中に

COPY

文を書いてはならない。

2) COPY

文は,翻訳群の最初の文であるときを除き,空白に後続しなければならない。

3)

一つの COBOL 登録集の中では,各原文名は一意でなければならない。

4)

連結式又は表意定数を,定数 1,定数 2,定数 3 又は定数 4 として指定してはならない。

5)

定数 1 及び定数 2 は,英数字定数でなければならない。定数 1 及び定数 2 として使用できる値は,実

装者定義とする。

6)

仮原文 1 は,原文語を一つ以上含まなければならず,そのうちの少なくとも一つは分離符のコンマで

もセミコロンでもないものでなければならない。

7)

仮原文 2 は,原文語を含まなくても,一つ以上含んでもよい。

8)

仮原文 1 及び仮原文 2 中の文字列は,正書法の規則に従って継続してもよい。

9)

原文 1 及び原文 2 は,一意名の書き方のうち,関数一意名,添字修飾付きデータ名,部分参照,修飾

付き行数カウンタ又は修飾付き報告書カウンタのいずれかでなければならない。

注記  原文 1 及び原文 2 は旧式の書き方であり,使用しないほうがよい。

添字付けがある場合は,単一の定数,単一の一意名,又は一意名±整数以外の算術式を添字として

含んでいてはならない。添字列,部分参照子又は関数の引数列の中に指定する一意名の書き方は,関

数一意名,添字修飾付きデータ名,部分参照,修飾付き行数カウンタ又は修飾付き報告書カウンタで

なければならない。原文 1 又は原文 2 の中に関数一意名を書く場合,組込み関数の引用だけでなけれ

ばならない。

10)

語 1 又は語 2 は,語"COPY",翻訳指示標識,浮動デバッグ標識又は注記標識を除き,単一の COBOL

の語なら何であってもよい。

11)

仮原文中及び登録集原文中の原文語の長さは,1∼322 文字でなければならない。

12)

仮原文 1 及び仮原文 2 にはデバッグ行が含まれてもよい。デバッグ行が“仮原文内に指定されている”

とは,そのデバッグ行の開始位置が,開始仮原文区切り記号から対応する終了仮原文区切り記号まで

の間にある場合のことである。

13)

仮原文 1,仮原文 2,部分語 1 又は部分語 2 の中に,翻訳指示行があってはならない。

14)

部分語 1 は,単一の原文語でなければならない。

15)

部分語 2 は,単一の原文語か又は空でなければならない。

16)

英数字定数・ブール定数・各国文字定数を,部分語 1 又は部分語 2 として書いてはならない。

7.1.2.3 

一般規則 


37

X 3002

:2011 (ISO/IEC 1989:2002)

1)

原文名 1 又は定数 1 は,COPY 文で処理される登録集原文を識別する。

2)

登録集名 1 の命名する資源は,コンパイラで使用可能でなければならず,原文名 1 の指す登録集原文

へのアクセスを提供するものでなければならない。

3)

原文名 1 又は定数 1 で参照される登録集原文への位置付け規則は,実装者定義とする。登録集名 1 も

定数 2 も指定がない場合は,既定解釈の COBOL 登録集が用いられる。既定解釈の COBOL 登録集を

識別する機構は,実装者定義とする。

4) SUPPRESS

指定を書いたとき,COPY 文の処理の結果として取り込まれる登録集原文は印字出力に現

れない。印字出力を生成するとき,COPY 文それ自体が印字出力に現れる。

5)

登録集原文を翻訳群中へと複写する処理が完了すると,その登録集原文中に LISTING 指示があっても

それには関係なく,COPY 文それ自体に対して有効な LISTING 指示が有効であるとみなされる。

6) COPY

文の処理は,原文名 1 又は定数 1 の値で関連付けられた登録集原文が,予約語 COPY に始まり

終止符で終わる COPY 文全体(終止符も含む)を論理的に置き換えながら,翻訳群中に複写する。

7) REPLACING

指定がないとき,登録集原文はそのまま結果の原文中に取り込まれる。

8) REPLACING

指定があると,7.1(原文操作)で規定する構造化翻訳群生成時に登録集原文が修正され

る。仮原文 1・原文 1・語 1・定数 3・部分語 1 に一致するものが登録集原文中にあれば,それぞれ対

応する仮原文 2・原文 2・語 2・定数 4・部分語 2 で置換される。これは,以降の COPY 文の規則によ

る。

9)

照合処理上,原文 1,語 1 及び定数 3 は,それぞれ原文 1,語 1 又は定数 3 だけを含む仮原文であると

みなされる。

10)

原文の置換を決定する比較の操作は,次の方法で起きる。

a)

分離符のコンマ又はセミコロン以外の最も左端の登録集原文語が,比較で用いられる最初の原文語

である。この原文語に先行する原文語及び空白は結果の原文中に複写される。比較のための最初の

原文語と,REPLACING 指定の最初の仮原文 1・原文 1・語 1・定数 3・部分語 1 とから始めて,予

約語 BY の前にある REPLACING 指定の作用対象全体が,それと同数の連続した登録集原文語と比

較される。

b)

仮原文 1・原文 1・語 1・定数 3 が登録集原文と一致するのは,前者を形成している原文語の並び順

が登録集原文語の並び順と文字単位で等しいときだけとする。LEADING 指定がある場合,部分語 1

が登録集原文と一致するのは,部分語 1 を形成している連続文字群の並びが登録集原文語の最左端

文字位置から始まる同数の連続文字群と,文字単位で等しいときだけとする。TRAILING 指定があ

る場合,部分語 1 が登録集原文と一致するのは,部分語 1 を形成している連続文字群の並びが登録

集原文語の最右端文字位置で終わる同数の連続文字群と,文字単位で等しいときだけとする。

c)

照合処理上では,次の規則を適用する。

1.

仮原文 1 又は登録集原文の中の分離符のコンマ・セミコロン・空白は,それぞれ単一の空白とみ

なされる。幾つかの空白分離符の並びは単一の空白とみなされる。

2.

連結式の作用対象及び演算子は,それぞれが別々の原文語とする。

3. 16

進形式でない英数字定数又は各国文字定数の中に書いた場合を除いて,各々の英数字は対応す

る各国文字と等しく,各々の小文字は対応する大文字と等しい[8.1.2(COBOL 文字レパートリ)

参照]

4.

英数字定数・ブール定数・各国文字定数では,次による。

a.

定数の両端の区切り記号に指定する場合,引用記号の 2 種類の表現は一致する。


38

X 3002

:2011 (ISO/IEC 1989:2002)

注記  両端の区切り記号は,表現方法が同じでなければならない。

b.

開始区切り記号で引用記号として用いた文字が,定数の内容に 2 個連続して現れると,それは

その文字が 1 個現れたものとみなされる。

5.

翻訳指示行が現れると,それぞれ単一の空白とみなされる。

6.

デバッグ標識は,書かなかったかのように扱う。デバッグ行の原文語は比較の対象とする。

7.

注記があれば,単一の空白とみなされる。

注記  論理的変換後のソース原文に,注記は存在しないはずである。

d)

一致しなければ,REPLACING 指定中にある次の仮原文 1・原文 1・語 1・定数 3・部分語 1 を用い

た比較が行われ,一致が起きるまで,又は次の REPLACING 作用対象がなくなるまで,この処理が

繰り返される。

e)

全ての REPLACING 指定の作用対象が比較され,どれも一致しなかったときは,最左端の登録集原

文語が結果の原文中に複写される。そして次の登録集原文語が最左端の登録集原文語とみなされ,

REPLACING

指定中の仮原文 1・原文 1・語 1・定数 3・部分語 1 のうち最初のものを用いて比較の

繰返しが再び開始する。

f)

仮原文 1・原文 1・語 1・定数 3 と登録集原文との間で一致が発生すると,対応する仮原文 2・原文

2

・語 2・定数 4 が結果の原文中に置かれる。部分語 1 と登録集原文語との間で一致が発生すると,

登録集原文語は,一致した文字が部分語 2 で置換されて(部分語 2 が空である場合は削除されて)

結果の原文中に現れる。そして,照合対象となった最右端の原文語の直後の登録集原文語が最左端

の原文語とみなされ,REPLACING 指定中にある仮原文 1・原文 1・語 1・定数 3・部分語 1 のうち

最初のものを用いて比較の繰返しが再開始する。

g)

この比較操作は,登録集原文中の最右端の原文語が一致するまで,又は最左端の登録集原文とみな

されて比較の周期が完了するまで,続けられる。

11) REPLACING

指定がある場合は,登録集原文中に COPY 文があってならない。

12)

置換処理の後の結果のソース原文は,論理的には自由形式正書法である。原文語を結果のソース原文

中に複写する場合,既に空白が存在するか又は空白が想定される原文語の間にだけ,附加的な空白が

導入されることがある。

注記  ソース行の最後には,一つの空白が想定される。

13) COPY

文の処理の結果として行が追加されるとき,COPY 文がデバッグ行から始まるか,又は追加さ

れる原文語が登録集原文のデバッグ行に現れる場合は,追加される各原文語はデバッグ行上に現れる。

BY

指定内にある原文語が取り込まれるとき,その原文語が,置換される最初の登録集原文語がデバ

ッグ行上にある場合は,デバッグ行上に現れる。以上の場合を除き,仮原文 2 内のデバッグ行上にあ

る原文語だけが,その結果のソース原文中のデバッグ行上に現れる。

14) REPLACING

指定がない場合は,登録集原文中に REPLACING 指定のない COPY 文があってもよい。

実装系は,最初の COPY 文も含めて,少なくとも 5 層の入れ子構造を実装・提供しなければならない。

複写された登録集原文は,

直接又は間接に自体を複写する COPY 文の処理を引き起こしてはならない。

15) COPY

文の置換動作が,COPY 文,SOURCE FORMAT 指示,注記又は空白行を生じさせてはならない。

7.1.3 REPLACE

 

REPLACE

(置換)文は,翻訳群中の原文を修正する。

7.1.3.1 

一般形式 

書き方 1replacing


39

X 3002

:2011 (ISO/IEC 1989:2002)

 REPLACE [ALSO]

==

仮原文1== BY ==仮原文2==

 LEADING

 TRAILING

 ==

部分語1== BY ==部分語2==

… .

書き方 2off

 REPLACE [LAST] OFF.

7.1.3.2 

構文規則 

1) REPLACE

文は,ソース原文中又は登録集原文中で,文字列を書いてもよいところ,又は定数の右側

の区切り記号を除く分離符を書いてもよいところには,どこに書いてもよい。

2) REPLACE

文は,翻訳群の最初の文である場合を除き,直前が空白でなければならない。

3)

仮原文 1 は原文語を一つ以上含まなければならず,そのうちの少なくとも一つは分離符のコンマでも

セミコロンでもないものでなければならない。

4)

仮原文 2 は原文語を含まなくても,一つ以上含んでもよい。

5)

部分語 1 は,単一の原文語でなければならない。

6)

部分語 2 は,単一の原文語又は空でなければならない。

7)

英数字定数・ブール定数・各国文字定数を,部分語 1 又は部分語 2 として書いてはならない。

8)

仮原文 1 及び仮原文 2 中の文字列は,正書法の規則に従って継続してもよい。

9)

仮原文中の原文語の長さは,1∼322 文字でなければならない。

10)

仮原文 1 及び仮原文 2 は,デバッグ行を含んでもよい。

11)

仮原文 1,仮原文 2,部分語 1 又は部分語 2 の中に,翻訳指示行があってはならない。

7.1.3.3 

一般規則 

1) REPLACE

文に関する以降の一般規則において,

“ソース原文”とは“条件処理済みの翻訳群”を指す

7.1(原文操作)参照]

2)

仮原文 1 は,仮原文 2 によって置換される原文を指定する。

3)

部分語 1 は,部分語 2 によって置換される原文を指定する。

4)

いったん現れると,書き方 1 の REPLACE 文は次の 3 種類の状態のいずれかになる。

a)

活性(状態)

。  その意味はこの文を,翻訳群に対する現時点での置換処理に用いることを表す。

b)

不活性(状態)

。その意味はこの文を,現時点では置換処理に用いないが,後入れ先出しの待ち行列

中に保持しておき,翻訳群中にこれ以降に現れる REPLACE 文の規則に従って,待ち行列から取り

出して,活性状態にするか,又は取消し状態にする可能性があることを表す。

c)

取消し(状態)

。その意味はこの文を,翻訳群の残りに対する置換処理に用いる可能性を取り除く,

又は不活性のとき,翻訳群の残りに対する不活性な文の待ち行列から取り除くことを表す。

5)

活性状態となった REPLACE 文の効力が持続するのは,不活性状態になるか,取り消されるか,又は

翻訳群の終わりに達するか,いずれかが最初に起きる箇所までとする。

6)

活性状態の REPLACE 文がない場合は,次による。

a)

書き方 1 の REPLACE 文は,翻訳群中にそれが現れた箇所から,活性状態となる。ALSO 指定は,

あっても効果をもたない。

b)

書き方 2 の REPLACE 文は,効果をもたない。

7)

活性状態の REPLACE 文がある場合は,次による。

a)

書き方 1 の REPLACE 文で ALSO 指定のあるものは,次の結果をもたらす。

1.

この活性状態の REPLACE 文を不活性化して,不活性な文の待ち行列へ押し込む。


40

X 3002

:2011 (ISO/IEC 1989:2002)

2.

現在の REPLACE 文を展開して単一の REPLACE 文とし,ALSO 指定は書かずに,現在の文の全

作用対象を指定した後に続けて,不活性な文の待ち行列へ最も新しく押し込まれた文の作用対象

を指定する。この展開 REPLACE 文が活性状態となる。

b)

書き方 1 の REPLACE 文で ALSO 指定のないものは,この活性状態の REPLACE 文を取り消す。不

活性な文の待ち行列中に REPLACE 文があれば,これも取り消す。そして,現在の文が活性状態と

なる。

c)

書き方 2 の REPLACE 文で LAST 指定のあるものは,この活性状態の REPLACE 文を取り消す。不

活性な文の待ち行列中に押し込まれた文があるとき,最も新しい文が取り出されて,その取り出さ

れた文が活性状態となる。

d)

書き方 2 の REPLACE 文で LAST 指定のないものは,この活性状態の REPLACE 文を取り消す。不

活性な文の待ち行列中に REPLACE 文があれば,これも取り消す。

8)

原文の置換を決定する比較操作が,REPLACE 文の直後の原文から,次の方法で行われる。

a)

最左端のソース原文の原文語と,最初の仮原文 1 又は部分語 1 とから始めて,仮原文 1 又は部分語

1

を,それと等しい語数の一連のソース原文の原文語と比較する。

b)

仮原文 1 がソース原文と一致するのは,前者を形成している原文語の並び順がソース原文語の並び

順と文字単位で等しいときだけとする。LEADING 指定がある場合,部分語 1 がソース原文語と一

致するのは,部分語 1 を形成している連続文字群の並びがソース原文語の最左端文字位置から始ま

る同数の連続文字群と,文字単位で等しいときだけとする。TRAILING 指定がある場合に,部分語

1

がソース原文語と一致するのは,部分語 1 を形成している連続文字群の並びがソース原文語の最

右端文字位置で終わる同数の連続文字群と,文字単位で等しいときだけとする。

c)

次の規則を照合処理上に適用する。

1.

仮原文 1 又はソース原文の中の分離符のコンマ・セミコロン・空白は,それぞれ単一の空白とみ

なされる。一つ以上の空白分離符の並びは,単一の空白とみなされる。

2.

連結式の作用対象及び演算子は,それぞれが別々の原文語とする。

3. 16

進形式でない英数字定数又は各国文字定数の中に書いた場合を除いて,各々の英数字は対応す

る各国文字と等しく,各々の小文字は対応する大文字と等しい[8.1.2(COBOL 文字レパートリ)

参照]

4.

英数字定数・ブール定数・各国文字定数では,次による。

a.

定数の両端の区切りに指定する場合,引用記号の 2 種類の表現は一致する。

注記  両端の区切り記号は,表現方法が同じでなければならない。

b.

開始区切り記号で引用記号として用いた文字が,定数の内容に 2 個連続して現れると,それは

その文字が 1 個現れたものとみなされる。

5.

翻訳指示行が現れると,それぞれ単一の空白とみなされる。

6.

デバッグ標識は,書かなかったかのように扱う。デバッグ行の原文語は比較の対象とする。

7.

注記がもしあれば,単一の空白とみなされる。

注記  論理的変換後のソース原文に,注記は存在しないはずである。

d)

一致しなければ,次の仮原文 1 又は部分語 1 を用いての比較が行われ,一致が起きるまで,又は次

の仮原文 1 又は部分語 1 がなくなるまで,この処理が繰り返される。

e)

全ての仮原文 1 又は部分語 1 の実体が比較され,どれも一致しなかったときは,次のソース原文語

が最左端のソース原文語とみなされ,仮原文 1 又は部分語 1 のうち最初のものを用いて比較の繰返


41

X 3002

:2011 (ISO/IEC 1989:2002)

しが再開始する。

f)

仮原文 1 とソース原文との間で一致が発生すると,対応する仮原文 2 がソース原文中の一致した原

文を置換する。部分語 1 とソース原文語との間で一致が発生すると,ソース原文語は,一致した文

字が部分語 2 で置換されて(部分語 2 が空である場合は削除されて)ソース原文中に現れる。そし

て,照合対象となった最右端の原文語の直後のソース原文語が最左端の原文語とみなされ,原文 1

又は部分語 1 のうち最初のものを用いて比較の繰返しが再開始する。

g)

この比較操作は,REPLACE 文の有効範囲内にあるソース原文中の最右端の原文語が一致するまで,

又は最左端の登録集原文とみなされて比較の周期が完了するまで,続けられる。

9) REPLACE

文の処理の結果として生じる原文中に COPY 文,REPLACE 文,SOURCE FORMAT 指示,

注記又は空白行が含まれてはならない。

10) REPLACE

文の処理の結果の原文は,論理的には自由形式正書法である。REPLACE 文の処理の結果の

原文に挿入される原文語は,自由形式正書法の規則に従って配置される。仮原文 2 の原文語を結果の

原文に挿入する場合,既に空白が存在するか又は空白が想定される原文語の間にだけ,附加的な空白

が挿入されることがある。

注記  ソース行の最後には,一つの空白が想定される。

11)

置換される原文がデバッグ行上から始まる場合,その結果の原文はデバッグ行上に現れる。

7.2 

翻訳指示 

翻訳指示(compiler directive)は,コンパイラが使用する選択機能を指定したり,翻訳変数を定義したり,

条件翻訳を制御したりする。

7.2.1 

一般形式 

 >>

翻訳命令

7.2.2 

構文規則 

1)

翻訳指示は,単一行に指定しなければならない。ただし,EVALUATE 指示及び IF 指示は例外で特別

な規則が規定されている。

2)

翻訳指示の前には,0 個以上の空白文字だけがあってもよい。

3)

正書法が固定形式の場合,翻訳指示はプログラム原文領域内に書かなければならず,その後に書いて

もよいのは空白文字及び行内注記だけとする。

4)

正書法が自由形式の場合,翻訳指示の後に書いてもよいのは空白文字及び行内注記だけとする。

5)

翻訳指示の構成は,翻訳指示標識と,それに後続する COBOL 文字の空白(書く書かないは自由)及

び翻訳命令とする。翻訳指示標識に後続する空白がなくても空白があるのと同様に取り扱われる。

6)

翻訳命令は,各々の翻訳指示の構文の規定どおり,翻訳指示語,システム名及び利用者定義語からな

る。翻訳指示語は,8.12(翻訳指示語)による。

7)

翻訳指示語は,それが指定される翻訳指示の文脈内では予約語の扱いとなる。

8)

翻訳指示は,次の箇所を除けば,翻訳群内すなわちソース原文中又は登録集原文中のどこに書いても

よい。

a)

個々の翻訳指示に対する規則で制限されている箇所

b)

ソース原文操作文

c)

行をまたいで継続する文字列を書いた 2 行の間

d)

デバッグ行

9)

翻訳指示語 IMP は,実装者による使用に備えて予約されている。実装者が IMP 指示を定義するとき,


42

X 3002

:2011 (ISO/IEC 1989:2002)

その指示に対する構文規則は,実装者定義とする。

注記  ">>IMP"  は,現在及び将来の実装者定義のあらゆる翻訳指示に構文を提供する。実装者は,

一つ以上の実装者定義の翻訳指示の開始を,">>IMP"  を使って示すことができる。

10)

翻訳指示中の定数は,連結式,表意定数又は浮動小数点数字定数であってはならない。

7.2.3 

一般規則 

1)

翻訳指示行は,COPY 文又は REPLACE 文の置換動作の影響を受けない。

2)

翻訳指示は,原文操作段階又は翻訳段階で処理される[7.1(原文操作)参照]

。原文操作段階での処

理の順序は 7.1(原文操作)による。翻訳段階では翻訳指示が,構造化翻訳群の中に現れた順に処理さ

れる。

3)

実装者が IMP 指示を定義するとき,その指示に対する一般規則は,実装者定義とする。

4)

翻訳指示は,後続するソース原文及び登録集原文の全てに適用されるのであって,実行の流れには依

存しない。

7.2.4 

条件翻訳 

特定の翻訳指示を用いると,ソースコードの選択された行を,取り込むか又は取り除く手段となる。こ

れを,条件翻訳(conditional compilation)と呼ぶ。条件翻訳のために用いる翻訳指示は,DEFINE 指示,

EVALUATE

指示及び IF 指示である。DEFINE 指示は翻訳変数を定義するために用いる。定義された翻訳

変数を EVALUATE 指示及び IF 指示の中で参照して,翻訳する行又は取り除く行を選択してもよい。翻訳

変数は,定数記述項の中で参照してもよい[13.9(定数記述項)参照]

7.2.5 

翻訳時算術式 

翻訳時算術式は,DEFINE 指示,EVALUATE 指示,定数条件式及び定数記述項の中に指定してもよい。

7.2.5.1 

構文規則 

1)

翻訳時算術式は,次の点を除けば,8.8.1(算術式)に従って形成しなければならない。

a)

べき乗演算子を指定してはならない。

b)

全ての作用対象は,固定小数点数字定数,又は全ての作用対象が固定小数点数字定数である算術式

でなければならない。

c)

算術式は,ゼロ除算が起きないように,かつ,各々の演算後に標準中間データ項目の値が許容範囲

内に収まるように,指定しなければならない[8.8.1.3.1.1(精度及び許容値の大きさ)参照]

7.2.5.2 

一般規則 

1)

翻訳時算術式の優先順序及び評価規則は,8.8.1(算術式)による。算術演算に対しては全て標準算術

が用いられる。

2)

算術式の最終結果は,値の整数部へと切り捨てられる[15.38(INTEGER-PART 関数)参照]

。結果の

値は整数定数とみなされる。

7.2.6 

翻訳時ブール式 

翻訳時ブール式は,EVALUATE 指示の中及び定数条件式の中に指定してもよい。

7.2.6.1 

構文規則 

1)

翻訳時ブール式は,8.8.2(ブール式)に従って形成しなければならない。全ての作用対象はブール定

数又はブール式でなければならず,

そのブール式も全ての作用対象がブール定数でなければならない。

7.2.6.2 

一般規則 

1)

翻訳時ブール式の優先順序と評価規則は,8.8.2(ブール式)による。


43

X 3002

:2011 (ISO/IEC 1989:2002)

7.2.7 

定数条件式 

定数条件式(constant conditional expression)は,作用対象が定義済み条件,定数,定数項だけを含む算

術式,又は定数項だけを含むブール式のいずれかである条件式とする。定義済み条件は,翻訳変数が定義

済みの値をもつか否かを調べる。

7.2.7.1 

構文規則 

1)

定数条件式は,次のいずれかでなければならない。

a)

比較対象が両方とも定数,定数項だけを含む算術式,又は定数項だけを含むブール式のいずれかで

ある比較条件。その条件は,8.8.4.1.1(比較条件)の規則に従って書かなければならない。次の規則

も適用される。

1.

作用対象は,両方とも項類が同じでなければならない。算術式の項類は数字である。ブール式の

項類はブールである。

2.

定数の指定があってそれが数字定数ではないとき,比較演算子は"IS [NOT] EQUAL TO"又は"IS

[NOT] =

"

でなければならない。

b)

全ての作用対象がブール定数であるブール条件[8.8.4.1.2(ブール条件)参照]

c)

定義済み条件。

d)

細則 a)c)  の単純条件を組み合わせた複合条件[8.8.4.2(複合条件)参照]

。ただし,略記組合せ

比較条件は指定できない。

2)

定数条件式の中の算術式の書き方は,7.2.5(翻訳時算術式)による。

3)

定数条件式の中のブール式の書き方は,7.2.6(翻訳時ブール式)による。

7.2.7.2 

一般規則 

1)

複合条件の評価は,8.8.4.2(複合条件)の規則による。

2)

比較対象が数字でもブールでもない単純比較条件に対しては,比較に文字照合順序は用いられない。

文字の等価性を一つずつ,各々の符号化 2 進値に基づいて比較する方法が用いられる。定数どうしの

長さが等しくなければ比較結果は等しくない。

注記  この意味では,大文字と小文字とは等価ではない。

7.2.7.3 

定義済み条件 

定義済み条件(defined condition)は,翻訳変数が定義済みか否かを調べるものである。

7.2.7.3.1 

一般形式 

翻訳変数名 1 IS [NOT] DEFINED

7.2.7.3.2 

構文規則 

1)

翻訳変数名 1 が,翻訳指示の予約語と同じであってはならない。

7.2.7.3.3 

一般規則 

1) IS

DEFINED

構文を用いた定義済み条件の評価が真となるのは,その時点で翻訳変数名 1 が定義済み

であるときとする。

2)  IS NOT DEFINED

構文を用いた定義済み条件の評価が真となるのは,その時点で翻訳変数名 1 が未定

義であるときとする。

7.2.8 CALL-CONVENTION

指示 

CALL-CONVENTION

(呼出し規約)指示は,プログラム名又はメソッド名への参照をどのように扱うか

をコンパイラに指示する。また,関数・メソッド・プログラムとの相互作用に対する詳細を決めるために

用いられることもある。


44

X 3002

:2011 (ISO/IEC 1989:2002)

7.2.8.1 

一般形式 

 >>  CALL-CONVENTION

 COBOL

呼出し規約名1

7.2.8.2 

一般規則 

1) CALL-CONVENTION

指示に対する既定解釈は,>>CALL-CONVENTION COBOL とする。

2) CALL-CONVENTION

指示は,この後に現れる INVOKE 文,文内メソッド呼出し,CALL 文,CANCEL

文及びプログラムアドレス一意名に指定したプログラム名及びメソッド名を,コンパイラがどのよう

に処理するかを決定する。この指示を適用するのは,プログラム名又はメソッド名への参照が前述の

言語構造においてなされた場合とする。

a) COBOL

を指定した場合には,プログラム名又はメソッド名を COBOL の語とみなして,それぞれ呼

出し対象のメソッド又は呼出し・取消し・参照する対象のプログラムの外部公開名へと対応付けを行

う。この場合,AS 指定のないメソッド名又はプログラム名に対するのと同じ,実装者定義の対応

付け規則を適用する。

b)

呼出し規約名 1 を指定した場合には,プログラム名又はメソッド名を定数とみなして,それぞれ呼

出し対象のメソッド又は呼出し・取消し・参照する対象のプログラムの外部公開名へと対応付けを行

う。その方法は実装者定義とする。

3) CALL-CONVENTION

指示は,関数・メソッド・プログラムとの相互作用に必要とされる,これ以外

の詳細を,実装者が解決するために用いてもよい。

7.2.9 DEFINE

指示 

DEFINE

(定義)指示は,ある特定の定数値に対して,翻訳変数(compilation variable)と呼ぶ記号名を

指定する。この名前をその後,定数条件式中,EVALUATE 指示中又は定数記述項中で用いてもよい。翻訳

変数には,コンパイラが操作環境から取得した値を設定できる。

7.2.9.1 

一般形式 

 >>  DEFINE

翻訳変数名 1 AS

定数1

算術式1

 PARAMETER

 [OVERRIDE]

 OFF

7.2.9.2 

構文規則 

1)

翻訳変数名 1 が,翻訳指示の予約語と同じであってはならない。

2) DEFINE

指示に OFF 指定も OVERRIDE 指定もない場合,次のいずれかでなければならない。

−  翻訳変数名 1 がそれ以前に同一翻訳群内で宣言されてはいない。

−  翻訳変数名 1 を指す直前の DEFINE 指示には OFF 指定がある。

−  翻訳変数名 1 を指す直前の DEFINE 指示に同じ値の指定がある。

3)

算術式 1 の書き方は,7.2.5(翻訳時算術式)による。

7.2.9.3 

一般規則 

1)

翻訳変数名 1 を指定して OFF 指定のない DEFINE 指示の後に続く原文中では,翻訳群内の次のいずれ

かの箇所で翻訳変数名 1 を用いてもよい。

−  その名前に関連する項類の定数を書いてもよい任意の翻訳指示。

−  定義済み条件。


45

X 3002

:2011 (ISO/IEC 1989:2002)

− FROM 指定のある定数記述項中。

2) OFF

指定のある DEFINE 指示の後,翻訳変数名 1 は,それ以降の DEFINE 指示で再定義しない限り,

定義済み条件中以外で用いてはならない。

3) OVERRIDE

指定がある場合,翻訳変数名 1 は無条件で,新しく指定された作用対象の値を指すように

設定される。

4) PARAMETER

指定がある場合,翻訳変数名 1 の指す値は,DEFINE 指示が処理されるときに実装者定

義の方法によって操作環境から取得される。操作環境から取得されて使用可能になる値が全くない場

合は,翻訳変数名 1 が定義されない。

5) DEFINE

指示の作用対象が単一の数字定数であるとき,作用対象は算術式ではなく定数とみなされる。

注記  整数部への切捨ては行われない。

6)

算術式 1 の指定がある場合,その算術式 1 は 7.2.5(翻訳時算術式)に従って評価され,翻訳変数名 1

はその結果の値を指す。

7)

定数 1 の指定がある場合,翻訳変数名 1 はその定数 1 を指す。

7.2.10 EVALUATE

指示 

EVALUATE

(評価)指示は,多方向分岐の条件翻訳のために提供される。

7.2.10.1 

一般形式 

書き方 1

 >>  EVALUATE

⎪⎧

⎪⎫

定数1

算術式1

ブール式1

⎪⎧

⎪⎫

>> WHEN

⎪⎧

⎪⎫

定数2

算術式2

ブール式2

⎣⎢

⎦⎥

 THROUGH

 THRU

定数3

算術式3

 [

原文1]   …

   [>>  WHEN OTHER  [原文 2]]

   >>  END-EVALUATE

書き方 2

 >>  EVALUATE TRUE

   {>>  WHEN 定数条件式 1 [原文 1] } …

   [>>  WHEN OTHER  [原文 2] ]

   >>  END-EVALUATE

7.2.10.2 

構文規則 

全ての書き方

1)

これ以降の構文規則の記述で,作用対象 1 は,書き方 1 の定数 1・算術式 1・ブール式 1 及び書き方 2

のキーワード TRUE を指す。また作用対象 2 は,書き方 1 の定数 2・算術式 2・ブール式 2 及び書き

方 2 の定数条件式 1 を指す。さらに,作用対象 3 は,書き方 1 の定数 3 又は算術式 3 を指す。

2)  >>EVALUATE

作用対象 1 は,新しい行から書き始めて,全部をその行に書かなければならない。

3)  >>WHEN

作用対象 2 [THROUGH 作用対象 3] は,新しい行から書き始めて,全部をその行に書かな

ければならない。

4)

原文 1 は,新しい行から書き始めなければならない。

5)  >>WHEN OTHER

は,新しい行から書き始めて,全部をその行に書かなければならない。


46

X 3002

:2011 (ISO/IEC 1989:2002)

6)

原文 2 は,新しい行から書き始めなければならない。

7)  >>END-EVALUATE

は,新しい行から書き始め,全部をその行に書かなければならない。

8)

原文 1 及び原文 2 は,翻訳指示も含めたいかなる種類のソース行であってもよい。原文 1 及び原文 2

は,複数行からなってもよい。

9)

ある一つの EVALUATE 指示に属する WHEN 指定及び END-EVALUATE 指定は,その全てを同一の登

録集原文中に指定するか,又は全てをソース原文中に指定するか,いずれかでなければならない。こ

の規則上は,原文 1 及び原文 2 を EVALUATE 指示に属する指定とみなさない。原文 1 又は原文 2 中

に入れ子の EVALUATE 指示があれば,新たな別の EVALUATE 指示であるとみなす。

書き方 1

10)

定数 1,算術式 1 及びブール式 1 が選択主体(selection subject)であり,WHEN 指定に書いた作用対

象が選択対象(selection object)である。

11)

一つの EVALUATE 指示の全ての作用対象は,項類が同じでなければならない。この規則に対しては,

算術式は項類が数字であり,ブール式は項類がブールとする。

12) THROUGH

指定がある場合,選択主体と選択対象は全て項類が数字でなければならない。

13)

語 THROUGH と語 THRU とは,等価とする。

14)

算術式 1,算術式 2 及び算術式 3 の書き方は,7.2.5(翻訳時算術式)による。

15)

ブール式 1 及びブール式 2 の書き方は,7.2.6(翻訳時ブール式)による。

書き方 2

16)

定数条件式 1 の書き方は,7.2.7(定数条件式)による。

7.2.10.3 

一般規則 

全ての書き方

1)

原文 1 及び原文 2 は,EVALUATE 翻訳指示行の一部ではない。これらの原文に含まれる,翻訳指示行

を形成しないあらゆる原文語は,COPY 文及び REPLACE 文の突合せ及び置換の処理対象になる。

書き方 1

2) EVALUATE

指示の作用対象が単一数字定数であるとき,作用対象は算術式ではなく定数とみなされ

る。

注記  整数部への切捨ては行われない。

3)

ブール式 1 及びブール式 2 の評価は,7.2.6(翻訳時ブール式)による。

4)

選択主体は,各々の WHEN 指定中にある値と,順番に,次のとおり比較される。

a) THROUGH

指定がないとき,TRUE の結果を返すのは選択主体が定数 2,算術式 2 又はブール式 2

に等しい場合である。

b) THROUGH

指定があるとき,TRUE の結果を返すのは選択主体が定数 2 又は算術式 2 と定数 3 又は

算術式 3 とによって決まる(両端も含めた)範囲内にある場合である。

ある WHEN 指定の評価が TRUE であるときは,その WHEN 指定に関連する原文 1 の行が全て,結

果の原文中に取り込まれる。その EVALUATE 指示に属するその他の WHEN 指定に関連する原文 1 の

行の全て及び WHEN OTHER 指定に関連する原文 2 の行の全ては,結果の原文から省かれる。

5)

どの WHEN 指定の評価も TRUE でないときは,WHEN OTHER 指定があるならそれに関連する原文 2

の行が全て,結果の原文中に取り込まれる。その他の WHEN 指定に関連する原文 1 の行は全て,結果

の原文から省かれる。

6) END-EVALUATE

指定に達して,どの WHEN 指定も TRUE と評価されず,WHEN OTHER 指定もない


47

X 3002

:2011 (ISO/IEC 1989:2002)

とき,全ての WHEN 指定に関連する原文 1 の行が全て,結果の原文から省かれる。

7)

定数 1 が英数字定数又は各国文字定数であるとき,文字の等価性を一つずつ,各々の符号化 2 進値に

基づいて比較する方法が用いられる。定数どうしの長さが等しくなければ比較結果は等しくない。

書き方 2

8)

各々の WHEN 指定に対して順番に行われる定数条件式の評価は,7.2.7(定数条件式)による。

ある WHEN 指定の評価が TRUE であるときは,その WHEN 指定に関連する原文 1 の行が全て,結果の

原文中に取り込まれる。その EVALUATE 指示に属するその他の WHEN 指定に関連する原文 1 の行の全て

及び WHEN OTHER 指定に関連する原文 2 の行の全ては,結果の原文から省かれる。

9)

どの WHEN 指定の評価も TRUE でないときは,WHEN OTHER 指定があるならそれに関連する原文 2

の行が全て,結果の原文中に取り込まれる。その他の WHEN 指定に関連する原文 1 の行は全て,結果

の原文から省かれる。

10) END-EVALUATE

指定に達して,どの WHEN 指定も TRUE と評価されず,WHEN OTHER 指定もない

とき,全ての WHEN 指定に関連する原文 1 の行が全て,結果の原文から省かれる。

7.2.11 FLAG-85

指示 

FLAG-85

指示は,以前の COBOL 規格と現行の COBOL 規格との間で互換性を欠く可能性がある特定の

構文に対してフラグを立てる選択種目を指定する。

7.2.11.1 

一般形式 

 >>  FLAG-85

⎪⎪

⎪⎪

⎪⎪

⎪⎪

LENGTH

-

ZERO

2

-

STANDARD

1

-

STANDARD

SET

NUMVAL

MOVE

ARGUMENT

-

FUNCTION

DIVIDE

EDITING

-

DE

ING

CORRESPOND

ALL

 ON

 OFF

7.2.11.2 

構文規則 

1) FLAG-85

指示を書いてもよい箇所は,手続き部以外の部では句と句との間だけとし,手続き部では文

と文との間だけとする。

7.2.11.3 

一般規則 

1)

実装者は,既存プログラムに影響する可能性のある非互換性のうち選択された種目に対してフラグを

立てる警告機構を提供しなければならない。ここでいう非互換性とは,ISO 1989:1985(以前の COBOL

規格)に ISO 1989:1985/Amd.1:1992(組込み関数機能単位)を含めた規格仕様と,現行の規格仕様と

の間の非互換性である。

注記 1  既存プログラムに影響を及ぼす可能性のある変更点の一覧は,F.1 に示す。

注記 2  対応国際規格では ISO 1989:1985/Amd.2:1994(正誤表及び明確化)も非互換性の基準に含

めている。しかし,JIS X 3002:1992 には反映されていなかったため,この規格では

ISO 1989:1985/Amd.2:1994

によって導入された非互換性を,F.3 に追加して示す。


48

X 3002

:2011 (ISO/IEC 1989:2002)

2)

ある選択種目に対して ON が指定又は想定された場合,警告機構は指定された選択種目について有効

となり,翻訳群の終わりに達するまで,又は全ての選択種目をオフにする FLAG-85 指示が現れるか若

しくはこの選択種目をオフにする FLAG-85 指示が現れるまで,後続する全ての原文に対して有効性が

持続する。

3) OFF

が指定された場合,選択された種目(の組)に対するフラグ立ては無効になる。

4) FLAG-85

に続く語又は語の並びは,構文を次のとおり診断することを示す。

a) ALL

:全ての選択種目が適用される。

b) CORRESPONDING

:CORRESPONDING 指定付きの ADD 文,MOVE 文又は SUBTRACT 文で,作

用対象のいずれかに定数以外の添字付けがある場合,その文にフラグを立てる。

c) DE-EDITING

:逆編集の MOVE 文にフラグを立てる。

d) DIVIDE

:REMAINDER 指定付きの DIVIDE 文で,商のデータ項目の記述が符号なし(PICTURE 句

に S なし)であり,除数又は被除数のいずれかの記述が符号付きである場合,その DIVIDE 文にフ

ラグを立てる。

e) FUNCTION-ARGUMENT

:組込み関数 RANDOM の直後に括弧で囲まれた算術式が続く場合で,か

つ,その RANDOM 関数が,引数並びに複数の算術式をとる組込み関数の引数として指定されてい

る場合,その RANDOM 関数にフラグを立てる。

f) MOVE

:英数字の定数又はデータ項目が数字データ項目へ転記され,送出し側項目が 31 文字より大

きい場合,その MOVE 文にフラグを立てる。

g) NUMVAL

:組込み関数の NUMVAL 及び NUMVAL-C にフラグを立てる。

h) SET

:条件設定の書き方の SET 文が可変長集団項目を参照している場合,その SET 文にフラグを立

てる。

i) STANDARD-1

:特殊名段落中の ALPHABET 句に STANDARD-1 の指定がある場合,

その ALPHABET

句にフラグを立てる。

j) STANDARD-2

:特殊名段落中の ALPHABET 句に STANDARD-2 の指定がある場合,

その ALPHABET

句にフラグを立てる。

k) ZERO-LENGTH

:長さゼロの項目を返す可能性のある READ 文に,又は長さゼロの項目となる可能

性のあるデータ項目を参照する文にフラグを立てる。

5) FLAG-85

指示の指定がない場合,全ての選択種目の既定解釈は OFF とする。

7.2.12 FLAG-NATIVE-ARITHMETIC

指示 

FLAG-NATIVE-ARITHMETIC

(固有算術表示)指示は,ソース単位に対して明示的又は暗黙に標準算術

を指定したとき,固有算術を使用する算術演算に対してフラグを立てることを指定する[8.8.1.3(標準算

術)参照]

7.2.12.1 

一般形式 

 >>  FLAG-NATIVE-ARITHMETIC

 ON

 OFF

7.2.12.2 

構文規則 

1) FLAG-NATIVE-ARITHMETIC

指示を書いてよい箇所は,手続き部以外の部では句と句との間だけと

し,手続き部では文と文との間だけとする。

7.2.12.3 

一般規則 

1)

実装者は,ソース単位に対して標準算術を明示的又は暗黙に指定したとき固有算術を使用する箇所に


49

X 3002

:2011 (ISO/IEC 1989:2002)

対してフラグを立てる警告機構を提供しなければならない。

2)

ソース単位に対して標準算術を明示的又は暗黙に指定し,ON の指定又は想定がある場合,固有算術

を用いているか又は用いる可能性のある,あらゆる算術演算に対してフラグ立てが有効となる。

3) OFF

の指定がある場合,固有算術に対するフラグ立ては行われない。

4)

固有算術が有効な場合,固有算術に対するフラグ立ては行われない。

5) FLAG-NATIVE-ARITHMETIC

指示の指定がない場合,既定解釈は OFF とする。

7.2.13 IF

指示 

IF

(判断)指示は,単方向又は双方向分岐の条件翻訳に対して準備される。

7.2.13.1 

一般形式 

 >>  IF

定数条件式 1 [原文 1]

  [>> ELSE  [原文 2] ]

  >> END-IF

7.2.13.2 

構文規則 

1)  >>IF

定数条件式 1 は,新しい行から書き始めて,全部をその行に書かなければならない。

2)

原文 1 は,新しい行から書き始めなければならない。

3)  >>ELSE

は,新しい行から書き始めて,全部をその行に書かなければならない。

4)

原文 2 は,新しい行から書き始めなければならない。

5)  >>END-IF

は,新しい行から書き始めて,全部をその行に書かなければならない。

6)

原文 1 及び原文 2 は,翻訳指示も含めたいかなる種類のソース行であってもよい。原文 1 及び原文 2

は,複数行からなってもよい。

7)

ある一つの IF 指示に属する ELSE 指定及び END-IF 指定は,その全てを同一の登録集原文中に指定す

るか,又は全てをソース原文中に指定するかの,いずれかでなければならない。この規則上は,原文

1

及び原文 2 を IF 指示に属する指定とはみなさない。原文 1 又は原文 2 の中に入れ子の IF 指示があ

れば,新たな別の IF 指示であるとみなす。

7.2.13.3 

一般規則 

1)

原文 1 及び原文 2 は,IF 翻訳指示行の一部ではない。これらの原文に含まれる,翻訳指示行を形成し

ないあらゆる原文語は,COPY 文及び REPLACE 文の突合せ及び置換の処理対象になる。

2)

定数条件式 1 の評価が TRUE であるときは,原文 1 の行が全て結果の原文中に取り込まれ,原文 2 の

行は全て結果の原文から省かれる。

3)

定数条件式 1 の評価が FALSE であるときは,原文 2 の行が全て結果の原文中に取り込まれ,原文 1

の行は全て結果の原文から省かれる。

7.2.14 LEAP-SECOND

指示 

LEAP-SECOND

(うるう秒)指示は,TIME 指定付きの ACCEPT 文,CURRENT-DATE 組込み関数及び

WHEN-COMPILED

組込み関数によって返却される値の中で,秒を表す位置に 59 より大きい値が返却され

ることがあるか否かを指定する。

7.2.14.1 

一般形式 

 >>  LEAP-SECOND

 ON

 OFF

7.2.14.2 

構文規則 

1) LEAP-SECOND

指示は,翻訳単位の内部に指定してはならない。


50

X 3002

:2011 (ISO/IEC 1989:2002)

7.2.14.3 

一般規則 

1) LEAP-SECOND

指示の指定がない場合には,その翻訳群の先頭にある翻訳単位の前に OFF 指定付きの

LEAP-SECOND

指示を書いたものとみなす。

2) ON

が明示的又は暗黙に指定された場合,次に示す動作からの返却値のうち,秒を表す位置に 59 より

大きい値が返されることがあるか否かは,実装者定義とする。

− TIME 指定付きの ACCEPT 文

− CURRENT-DATE 組込み関数

− WHEN-COMPILED 組込み関数

3) OFF

が明示的又は暗黙に指定された場合,次に示す動作からの返却値のうち,秒を表す位置に 59 よ

り大きい値が返されることがあってはならない。

− TIME 指定付きの ACCEPT 文

− CURRENT-DATE 組込み関数

− WHEN-COMPILED 組込み関数

7.2.15 LISTING

指示 

LISTING

(印字出力)指示は,コンパイラに,ソース印字出力(もしあるなら)を行うか否かの切換え

を指示する。

注記  この規格では印字出力の内容又は体裁を規定しない。実装者は,元々の翻訳群の印字出力と,

選択機能として,原文操作を適用した結果の印字出力とを,提供することが望ましい。

7.2.15.1 

一般形式 

 >>  LISTING

 ON

 OFF

7.2.15.2 

一般規則 

1)

コンパイラがソース印字出力を生成するか否かは,実装者定義とする。コンパイラがソース印字出力

を生成しない場合,LISTING 指示は無視される。さもなければ,次の一般規則を適用する。

2)

既定解釈の LISTING 指示は,>>LISTING ON とする。

3) LISTING

指示がソース印字出力を抑止していても,各 LISTING 指示は印字出力される。

4) OFF

が指定された場合,ON が明示的又は暗黙に指定された LISTING 指示が現れるまで,ソース行は

印字出力されない。ただし例外として,別な LISTING OFF 指示は印字出力される。

5) ON

が明示的又は暗黙に指定された場合,LISTING OFF 指示が現れるまで,又は翻訳群の最後に到達

するまで,ソース原文行は印字出力される。

7.2.16 PAGE

指示 

PAGE

(改ページ)指示は,強制的な改ページを指定し,ソース印字出力に対する文書化を提供する。

7.2.16.1 

一般形式 

 >>  PAGE [

注記原文 1 ]

7.2.16.2 

構文規則 

1)

注記原文 1 には,箇条 6(正書法)の規則 3) b)  に規定された制御文字を除く,翻訳時の計算機文字集

合のどの文字が含まれてもよい。

2)

注記原文 1 は,構文解析されない。

7.2.16.3 

一般規則 

1)

注記原文 1 は,文書化にだけ使う。


51

X 3002

:2011 (ISO/IEC 1989:2002)

2)

ソース印字出力が生成される場合,PAGE 指示は,その指示が印字出力される前に強制的な改ページ

を引き起こす。

3)

ソース印字出力が生成されない場合,PAGE 指示は効果をもたない。

7.2.17 PROPAGATE

指示 

PROPAGATE

[伝ぱ(播)

]指示は,活性化する側の実行時要素へ例外状態を伝ぱ(播)させるために用

いる。

7.2.17.1 

一般形式 

 >>  PROPAGATE

 ON

 OFF

7.2.17.2 

構文規則 

1) PROPAGATE

指示を翻訳単位の内部に指定してはならない。

7.2.17.3 

一般規則 

1) ON

指定の明示的な又は暗黙の指定がある場合,翻訳群中でそれに後続する関数・メソッド・プログ

ラムに対して,例外状態の自動的な伝ぱ(播)が有効となる。自動的な伝ぱ(播)は,OFF 指定のあ

る PROPAGATE 指示が現れるか又は翻訳群の終わりまで,有効のままとする。

2)

例外状態の自動的な伝ぱ(播)が有効な実行時要素の実行中に,例外状態が発生して,その実行時要

素中の例外指定でも宣言手続きでも操作されなければ,該当する宣言手続き中で GOBACK RAISING

LAST

文を実行したかのように,その例外状態が呼出し元の要素へ伝ぱ(播)する。

3) OFF

指定がある場合,例外状態の自動的な伝ぱ(播)は無効となり,ON 指定のある PROPAGATE 指

示が現れるまで,翻訳群中で後続する関数・メソッド・プログラムに対して無効のままとする。

4)

翻訳群に対する既定解釈は,>>PROPAGATE OFF とする。

7.2.18 SOURCE 

FORMAT

指示 

SOURCE FORMAT

(ソース書式)指示は,後続するソース原文又は登録集原文の正書法を,固定形式又

は自由形式のいずれとするかを指定する。

7.2.18.1 

一般形式 

 >>  SOURCE FORMAT IS

 FIXED

 FREE

7.2.18.2 

一般規則 

1) SOURCE

FORMAT

指示は,その指示の直後からこれ以降に SOURCE FORMAT 指示が現れるまでの,

ソース原文又は登録集原文の取扱いを FIXED 指定がある場合は固定形式とするし,FREE 指定がある

場合は自由形式とすることを示す[6.2(固定形式正書法)及び 6.3(自由形式正書法)参照]

2)

翻訳群の正書法の既定解釈は,固定形式とする。

3)

登録集原文の正書法の既定解釈は,この登録集原文の処理を引き起こした COPY 文に対して有効な正

書法とする。

4)

翻訳群又は登録集原文の最初の行である SOURCE FORMAT 指示は,固定形式と自由形式のいずれで

あってもよい。

5)

登録集原文中に SOURCE FORMAT 指示を指定すると,指定された正書法は,SOURCE FORMAT 指示

がもう一つ現れるまで,又は登録集原文の終わりに達するまで,有効性が持続する。その登録集原文

の処理が完了すると正書法は,その登録集原文の処理を引き起こした COPY 文に対して有効な正書法

に戻る。


52

X 3002

:2011 (ISO/IEC 1989:2002)

7.2.19 TURN

指示 

TURN

(切換え)指示は,特定の例外状態に対する検査を行うか否かの切換えに使用する。

7.2.19.1 

一般形式 

 >>  TURN {

例外名 1 [ファイル名 1]… }… CHECKING

 ON [WITH LOCATION]

 OFF

7.2.19.2 

構文規則 

1)

利用者定義語を指定して,それが COBOL 文字列  "EC-"  で始まっているとき,ファイル名 1 ではなく

例外名 1 と解釈される。利用者定義語を指定して,それが翻訳指示語と重複しているとき,ファイル

名 1 ではなく翻訳指示語と解釈される。

2)

例外名 1 は,14.5.12.1(例外状態)に挙げた例外名のどれかでなければならない。TURN 指示に指定

した利用者定義の例外名又はファイル名を TURN 指示の有効範囲内で実際に用いるか否かは検証しな

い。

注記  例外オブジェクトは,常に有効になる。

3)

一つの TURN 指示内には,どの例外名も 1 度しか指定してはならない。

4)

一つの例外状態に対しては,どのファイル名も 1 度しか指定してはならない。

5)

ファイル名 1 を指定するとき,例外名 1 は COBOL 文字列  "EC-I-O"  で始まらなければならない。

7.2.19.3 

一般規則 

1)

既定解釈の TURN 指示は,>>TURN EC-ALL CHECKING OFF  とする。

2)

例外名 EC-ALL を指定すると,その効果は,全ての例外名を含んだ TURN 指示を指定したのと同じと

する。

3)

例外名がレベル 2 例外名のいずれかである場合,その効果は,そのレベル 2 例外名に従属する全ての

例外名を含んだ TURN 指示を指定したのと同じとする。ファイル名 1 の指定がある場合,これらの例

外名の各々に対してファイル名 1 を指定したのと同じとする。

4) ON

の明示的な又は暗黙の指定があるとき,例外名 1 に関連する例外状態に対しての検査が,後続す

る翻訳群中の手続き部の文及び手続き部見出しに対して有効となる。ファイル名 1 の指定がある場合

には,そのファイル名に関連する例外状態に対してだけ,検査が有効となる。文の途中に指定すると,

TURN

指示はその文自体には適用されない。この検査は,後続する翻訳群中において該当する手続き

部の文及び手続き部見出しの全てに対して有効なままであり,OFF 指定付きの TURN 指示によって無

効化されるまで効果が持続する。

5) LOCATION

指定があるとき,EXCEPTION-LOCATION 関数,EXCEPTION-LOCATION-N 関数及び

EXCEPTION-STATEMENT

関数に対するソース原文の識別に必要な全ての情報が,実行単位で使用可

能になる。LOCATION 指定がないとき,この情報の使用可否は,実装者定義とする。

6) OFF

指定があるとき,例外名 1 に関連する例外状態に対しての検査が,後続する翻訳群中の全ての手

続き部の文及び手続き部見出しに対して無効となる。この検査は,例外名 1 に対して別の TURN 指示

が ON 指定付きで現れるまで無効なままとする。ファイル名 1 の指定がある場合,そのファイル名に

関連する例外状態に対してだけ検査が無効となる。文の途中に指定すると,その文に対して検査は無

効にならない。


53

X 3002

:2011 (ISO/IEC 1989:2002)

言語の概念 

8.1 

文字集合 

COBOL

における文字集合の概念は,計算機符号化文字集合,COBOL 文字レパートリ,符号系の 3 種類

とする。

計算機符号化文字集合は,COBOL の内部処理で用いられる文字集合である。

COBOL

文字レパートリとは,言語構文を定義するために用いる文字のレパートリとする。これは符号

化表現に依存しない文字の組であるという点において,一種の抽象的な文字集合とされる。COBOL 文字

レパートリに規定される言語の要素は,8.1.2(COBOL 文字レパートリ)による。

符号系とは,

外部媒体上でデータを表現する符号化文字集合を識別したり,

文字照合順序を識別したり,

又はその両方を識別したりするものである。プログラマは,特殊名段落中で符号系を定義したり,特殊名

段落中で識別された既定義の符号系を参照したりできる。

CODE-SET

句をファイル記述項で使用し,

特殊名段落で定義した符号系をそこで参照することによって,

外部媒体上のレコードの代替符号化表現を記述してもよい。入出力操作の間に,CODE-SET 句付きで宣言

したファイルのレコードに対して,その外部媒体上の符号化表現と計算機符号化文字集合の符号化表現と

の間で,変換を行う。

8.1.1 

計算機符号化文字集合 

計算機符号化文字集合(computer’s coded character set)とは,COBOL 実行時要素の翻訳時に又は実行時

に計算機記憶中で用いられる文字の集合とする。

ソースコード中で,英数字定数及び各国文字定数の内容は,16 進形式の場合を除き,ソースコードを書

くのに用いられる計算機符号化文字集合のどの文字であってもよい。ただし,その定数の字類に対して実

装者が許している文字に矛盾しない限り,という条件はある。翻訳時に用いられる符号化文字集合は,結

果として生成された実行時要素群の実行時に用いられる符号化文字集合と,同じであっても異なってもよ

い。

ソースコード中で注記は,ソースコードの記述に用いられる符号化文字集合のあらゆる文字を含んでい

てもよい。これは,箇条 6(正書法)の規則による。

実行時の計算機符号化文字集合を構成する部分には,用途が DISPLAY と記述されたデータを表現する

のに用いる符号化文字集合と,用途が NATIONAL と記述されたデータを表現するのに用いる符号化文字

集合とがあって,これらをそれぞれ計算機英数字符号化文字集合及び計算機各国文字符号化文字集合と呼

ぶ。英数字符号化文字集合と各国文字符号化文字集合とは,二つの別個な符号化文字集合の組であっても

よいし,又は同一の符号化文字集合であって,部分集合の一つを英数字に指名し別な一つか全体集合を各

国文字に指名してあってもよい。いずれの場合も,英数字又は各国文字と特に断らない限りは,計算機符

号化文字集合という用語は,英数字と各国文字との両方を指す。英数字符号化文字集合の文字群と各国文

字符号化文字集合の文字群とに,共通する要素は皆無であってもよいが,そうでなくてもよい。

注記 1  一般に,この COBOL 規格仕様では,各国文字集合が英数字文字集合を内包していると想定

しており,

例えば,

これら二つの文字集合間で変換を行うための組込み関数を定義している。

英数字文字集合の典型は ISO/IEC 646 などのラテン文字符号化文字集合であるが,どのよう

な符号化文字集合であってもよい。各国文字集合はそれより大規模な符号化文字集合,例え

ば JIS X 0221 が規定する国際符号化文字集合(UCS)などを意図しているが,どのような符

号化文字集合であってもよい。

注記 2  一つの符号化文字集合で英数字と各国文字との両方を表している例には,この UCS の UTF-16


54

X 3002

:2011 (ISO/IEC 1989:2002)

がある。そこでは各国文字符号化文字集合が JIS X 0221 符号化文字集合の全体から成り,英

数字符号化文字集合がこの UCS の部分集合からなる。英数字及び各国文字の符号化文字集合

が,両方とも UCS 符号化文字集合の全体からなってもよい。

実行時に実装系は,計算機英数字文字集合の文字と計算機各国文字集合の文字との組合せを,英数字項

類のデータ項目の内容で認識してもよい。この組合せを,英数字と各国文字との混在データ(mixed

alphanumeric and national data

)と呼ぶ。この組合せを許す場合,適用される一般規則は,実装者定義とす

る。

COBOL

の仕様は,計算機符号化文字集合を表現するのに用いられる符号化表現には依存しないが,次

に示す事項は例外とする。

1)

計算機記憶の中で英数字符号化文字集合の文字を表現するために用いられるバイト数は,その符号化

文字集合中の全ての文字に対して,同じでなければならない。このバイト数は翻訳時に決まる。

2)

計算機記憶の中で各国文字符号化文字集合の文字を表現するのに用いられるバイト数は,その符号化

文字集合中の全ての文字に対して,同じでなければならない。このバイト数は翻訳時に決まる。

3)

各国文字符号化文字集合の 1 文字を表すのに用いられるバイト数は,英数字符号化文字集合の 1 文字

を表すのに用いられるバイト数と等しいかより多いかでなければならない。

ソースコードの規則は,8.1.2(COBOL 文字レパートリ)による。

実装系が動作するそれぞれの計算機における 1 バイト当たりのビット数は,実装者定義とする。

計算機英数字符号化文字集合及び計算機各国文字符号化文字集合のそれぞれについて,含まれる文字の

集合及び符号化表現は,実装者定義とする。これらを同一の符号化文字集合として実現する場合,計算機

英数字符号化文字集合に対応付けられる文字群,及び計算機各国文字符号化文字集合に対応付けられる文

字群は,実装者定義とする。計算機文字集合の中で 2 種類以上の符号化表現が使える実装系では,符号化

表現を実行時に選択する機構は,実装者定義とする。

実行時の計算機文字集合が翻訳時に分かっていた計算機文字集合と異なる場合は,英数字定数及び各国

文字定数を,実行時の使用に先立って,その定数の字類に対して適宜に,実行時の計算機符号化文字集合

へと変換しなければならないが,例外として 16 進英数字形式及び 16 進各国文字形式の定数を変換しては

ならない。翻訳時の符号化文字集合中の文字と,実行時の計算機符号化文字集合中の関連する文字との対

応付けは,実装者定義とする。実行時の文字集合が翻訳時に分かっている場合,この変換が起きる時点は,

翻訳時であることも実行時であることもある。実行時の文字集合が翻訳時に分からない場合,変換が起き

るのは実行時である。実行時の変換の起きる時点は,実装者定義とする。

8.1.2 COBOL

文字レパートリ 

COBOL

文字レパートリ(COBOL character repertoire)は,言語の構文を指定するのに用いられる。COBOL

の語,分離符,PICTURE 記号,数字定数,通貨記号,浮動形式の標識,ブール定数及び 16 進定数の内容

は,COBOL 文字レパートリで定義される。COBOL 文字レパートリからソースコード記述に用いるための

一つ以上の符号化文字集合への対応付けは,実装者定義とする。

COBOL

文字レパートリは,基本文字,基本数字,基本特殊文字及び拡張文字からなる[

表 2(COBOL

文字レパートリ)参照]

。拡張文字は,英語に加えて多くの言語で利用者定義語を書くことを可能にする。


55

X 3002

:2011 (ISO/IEC 1989:2002)

表 2COBOL 文字レパートリ

記述

文字

意味

基本文字

 A

,B,…,Z

 a

,b,…,z

ISO/IEC 646

又は JIS X 0221 の基本ラテン大文字

ISO/IEC 646

又は JIS X 0221 の基本ラテン小文字

基本数字

 0

,1,…,9

数字

基本特殊文字

 +

 –

 *

 /

 =

空白 
正符号 
負符号(ハイフン)

星印(アスタリスク) 
斜線(スラント,スラッシュ,ソリダス) 
等号

 ¥

 ,

 ;

 .

通貨記号

コンマ 
セミコロン 
ピリオド

 "

 '

引用符 
アポストロフィ

 (

 )

 >

 <

 &

 :

左括弧

右括弧 
大なり記号 
小なり記号

アンパサンド 
コロン

 _

下線文字(アンダスコア)

拡張文字

JIS X 0221

の文字レパートリに由来する,利用者定義語の

形成に用いるための追加の文字群 

注記  漢字などを含む。)

8.1.2.1 

一般規則 

1) COBOL

文字レパートリの基本文字,基本数字,基本特殊文字及び拡張文字から一つ以上の符号化文

字集合への対応付けは,実装者定義とする。COBOL 文字レパートリは,実装者が選択したどのよう

な符号化表現方式で表現されてもよい。その選択肢には,(i)この文字レパートリの全ての文字を包

含した一つの符号化文字集合,及び(ii)二つの別個な符号化文字集合の組であって一つの英数字と

一つの各国文字との混合,が含まれるが,これらだけとは限らない。二つの別個な符号化文字集合の

組を用いる場合,英数字符号化文字集合と各国文字符号化文字集合との間での,基本文字,基本数字

及び基本特殊文字の対応関係は,実装者定義とする。

注記 1  “英数字”及び“各国文字”の概念はデータの符号化表現に適用されるが,“基本文字”

及び“拡張文字”の概念はソースコードに適用されて,符号化表現ではなく記号名それ自

体を指定する。翻訳群中に現れる基本文字は,英数字符号化文字集合と各国文字符号化文

字集合のいずれで書いてもよいが,いずれの場合も同じ文字とする。例えば,翻訳群中に

ISO/IEC 646

で書いた基本文字"A"が COBOL の語の中でもつ意味は,JIS X 0221 で書いた

基本文字"A"と同じである。これはちょうど,大文字の"A"の意味が小文字の"a"と同じであ

るのと同様である。

注記 2 COBOL 文字レパートリを表現するために用いてよい符号化文字集合の例としては,JIS X 


56

X 3002

:2011 (ISO/IEC 1989:2002)

0221

の UCS-4,UTF-8 又は UTF-16 がある。また,実装者定義の符号化文字集合として二

つの別個な符号化文字集合(一つが英数字で,一つが各国文字)の混在がある。このほか

にも実装者定義の COBOL 文字レパートリとして可能な符号化表現がある。

2) COBOL

文字レパートリが対応付けられている文字集合が,英数字と各国文字との混在符号化文字集

合であるとき,英数字を各国文字から区別するための制御機能又はその他の機構は,実装者定義とす

る。単一の翻訳群の中で 2 種類以上の符号化表現が使用できるとき,符号化表現の間での区別を行う

ために用いる制御機能又はその他の方法は,実装者定義とする。符号化文字集合間の切換えに用いる

制御機能は翻訳処理で利用され,実装者定義の規定がない限り,翻訳群の構文の一部ではない。

3)

翻訳群内では,次の規則を適用する。

a) 16

進形式でない英数字定数及び各国文字定数の中で用いる場合を除き,個々の COBOL 基本大文字

は,対応する COBOL 基本小文字があれば,それと等価である。

b)

英数字文字集合中にある基本文字,基本数字,基本特殊文字及び拡張文字は,それぞれ各国文字集

合中にある,対応する基本文字,基本数字,基本特殊文字及び拡張文字と等価とする。

基本文字の大文字と小文字との等価性は,大文字を小文字に同一視して達成する。これは,

附属

書 に規定する大文字と小文字との対応表による。

4)

拡張文字の集合は,

附属書 C(利用者定義語に使用できる文字)が規定するレパートリのうち,COBOL

文字レパートリ中で基本文字,基本数字又は基本特殊文字と定義された文字を除外した文字群で構成

する。利用者定義語において拡張文字は次に示す規則による。

a)

附属書 のある文字が拡張文字の集合に包含されるのは,実装者定義の翻訳時符号化文字集合中に

その文字が存在する場合とする。

b)

附属書 で特殊文字だと識別する文字を,利用者定義語の先頭又は末尾の文字としてはならない。

ISO/IEC TR 10176

附属書 が結合文字だと識別する文字を,利用者定義語の先頭又は末尾の文

字としてはならない。

c)

拡張文字の大文字は,対応する拡張文字の小文字と同一のものとして扱う。これは,

附属書 に規

定する大文字・小文字の対応表による。

d)  ISO/IEC TR 10176

附属書 が結合文字だと識別する文字が拡張文字の集合に含まれる場合,基

底文字と各々の結合文字とは,利用者定義語の長さを決めるのに当たり,別々の文字として扱う。

注記 1  ソースコードを移植可能とするためには,プログラマは利用者定義語を書くとき COBOL

文字レパートリの基本文字,基本数字,下線文字及びハイフンを用いる必要がある。

注記 2  ISO/IEC TR 10176 は,プログラム言語の識別子(COBOL の利用者定義語に相当)に用

いるために推奨する文字群を識別するものである。ISO/IEC TR 10176 の文字群には,句

読文字,一般に単語のつづりの中では用いない記号及びプログラム言語の識別子にふさ

わしくないと思われる記号は含まれていない。ISO/IEC TR 10176 の文字群の中には,

COBOL

が規定する基本特殊文字に似た外見をもつ文字もあり,ある言語の話者にとっ

ては見慣れないが特定の言語を書き表すには必要な文字もある。そのような文字を

COBOL

が許しているのは,これらの文字が不可欠となっている言語に堪能なプログラ

マが書いた利用者定義語は,混乱が生じないという想定に基づいている。

注記 3  ISO/IEC TR 10176 が識別子(COBOL の利用者定義語に相当)のために推奨する文字の

一覧は,JIS X 0221 の実装水準 2 の結合列を包含しているが,実装水準 3 の結合列は包

含しない。この一覧は"é"のような合成文字の代替表現を形成する結合列を包含しない。


57

X 3002

:2011 (ISO/IEC 1989:2002)

注記 4  拡張文字は,大文字と小文字との等価性を決める場合に小文字に同一視される。

5) COBOL

文字レパートリに,実装系が図形表現を備えていない文字がある場合,表現されない文字を

置換する実装者定義の代替図形表現があってもよい。

8.1.3 

符号系 

COBOL

において符号系(alphabet)とは,符号化文字集合,文字照合順序,又はその両方の指定に名前

を付与したものである。特殊名段落は,符号系を命名し,利用者定義の符号化文字集合及び文字照合順序

を指定する手段を提供する。符号化文字集合又は文字照合順序を用いるには,それを作用対象として参照

する COBOL の文又は記述項の中で,符号系名を指定すればよい。

8.1.4 

文字照合順序 

文字照合順序(collating sequence)とは,整列処理,併合処理,データの比較,及び索引編成のファイル

処理のために,符号化文字集合又は COBOL 符号系の中での,文字群の順序を規定するものである。論理

的には二つの文字照合順序,すなわち英数字照合順序と各国文字照合順序とが存在する。英数字照合順序

は,用途が DISPLAY と記述されたデータ項目又はレコードキーに関連する順序を規定するものであり,

各国文字照合順序は,用途が NATIONAL と記述されたデータ項目又はレコードキーに関連する順序を規

定するものである。これら二つの論理的な文字照合順序の定義及び実装は,別々であっても,一緒であっ

てもよい。後者の場合,論理的には英数字照合順序に対応する文字群と,論理的には各国文字照合順序に

対応する文字群とが,一つに合成された文字照合順序である。

これらの文字照合順序に関連する既定解釈の順序付けは,実装者定義とする。次の処理では特定の順序

付けを選択してもよい。

−  プログラム文字照合順序としては,実行用計算機段落の PROGRAM COLLATING SEQUENCE 句に指

定した符号系又は現地特性による。

− SORT 文又は MERGE 文に対しては,各々の文に指定した符号系又は現地特性による。

−  索引ファイルに対しては,ファイル管理記述項の COLLATING SEQUENCE 句に指定した符号系又は

現地特性による。

−  特定の比較に対しては,LOCALE-COMPARE 組込み関数又は STANDARD-COMPARE 組込み関数の使

用による。

現地特性の指定があるとき,関連する順序付けは実行時に決まる。

8.2 

現地特性 

現地特性(ロケール,locale)とは,実行時に用いられるいろいろな文化的要素の仕様を用意したもので

ある。いろいろな文化的要素は,名前付きの現地特性カテゴリへとまとめられて,次に示すように,実行

時の振る舞いの特定の解釈方法を制御する。

現地特性カテゴリ 

影響のある振る舞い 

LC_COLLATE

文字照合順序

LC_CTYPE

文字の字類分けと大文字・小文字の変換規則

LC_MESSAGES

通報・診断メッセージと対話応答の形式

LC_MONETARY

金額の表示形式

LC_NUMERIC

数値の表示形式

LC_TIME

日付と時間の表示形式

LC_ALL

現地特性カテゴリのうち LC_COLLATE,LC_CTYPE,LC_MESSAGES,

LC_MONETARY

,LC_TIME,LC_NUMERIC そのほか現地特性に含まれる


58

X 3002

:2011 (ISO/IEC 1989:2002)

あらゆるカテゴリ

現地特性カテゴリの名前,現地特性カテゴリの詳細,及び現地特性のフィールド名は,ISO/IEC 9945 

よる。現地特性の格納形式及び実装方法は,論理的に同等な機能が実現される限り ISO/IEC 9945 と異な

っていてもよい。

ソース単位に対して,現地特性からの文化的要素を使用するよう指定した場合,その現地特性カテゴリ

に関連する特有の値,形式又はアルゴリズムは,実行時に決まる。

操作環境によってはシステム全体で使用する現地特性が備わっており,これを,システム既定解釈現地

特性(system-default locale)と呼ぶ。そのような環境には,実行単位内で使用する現地特性を選択する手

段もまた備わっていることがあり,それを,利用者既定解釈現地特性(user-default locale)と呼ぶ。

実行単位が活性化される時点で,実行時の現在有効現地特性には利用者既定解釈現地特性が設定され,

その実行単位に対しては,別の実行時現地特性が確定するまでその仕様が有効となる。SET 文によって,

任意の現地特性を実行時の現在有効現地特性として確定したり任意の現地特性を利用者既定解釈現地特性

に設定したりする機能も提供されている。ただし,実行単位全体に対しては常に一つの現在有効現地特性

が存在するので,

これが有効になるのは現地特性を指す言語機能を使用する翻訳単位に対してだけとなる。

送出し側に USER-DEFAULT  を指定した SET 文を実行すると,指定されたカテゴリに対する実行時の現

在有効現地特性に,利用者既定解釈現地特性が設定される。実装者は,利用者既定解釈現地特性を定義す

るための手法を規定し,更に,利用者既定解釈現地特性を備えていない計算機環境での使用のため最低で

も 1 種類の利用者既定解釈現地特性を提供しなければならない。

送出し側に SYSTEM-DEFAULT を指定した SET 文を実行すると,指定されたカテゴリに対する実行時の

現在有効現地特性に,システム既定解釈現地特性が設定される。実装者は,システム既定解釈現地特性を

定義するための手法を規定し,システム既定解釈現地特性を備えていない計算機環境での使用のため最低

でも 1 種類のシステム既定解釈現地特性を提供しなければならない。

送出し側に現地特性名を指定した SET 文を実行すると,実行時の現在有効現地特性のうちの指定された

カテゴリに対して,特殊名段落の LOCALE 句でその現地特性名に関連付けられた現地特性が設定される。

SET

文を用いて現在有効現地特性の情報を退避しておき,その後に別な SET 文で特定の現地特性を有効に

することができる。

利用者既定解釈現地特性又はシステム既定解釈現地特性を切り換えたのが非 COBOL 実行時モジュール

であるとき,新たな利用者既定解釈現地特性又はシステム既定解釈現地特性は,実行時の現在有効現地特

性にする SET 文を実行しない限りは,COBOL では使用可能にならない。現地特性カテゴリのいずれかに

対して,活性化される側の COBOL 実行時モジュールが行った現地特性の切換えは,制御の復帰とともに,

活性化した側の COBOL 実行時モジュールで用いられる。非 COBOL 実行時モジュールによる現在有効現

地特性の切換えが,COBOL で用いられるか,及びどのカテゴリに対して用いられるかは,実装者定義と

する。

注記  システム既定解釈現地特性を COBOL 内部から設定する機能は,提供されない。

現在有効現地特性が何かを識別する方法は,14.5.6(現地特性識別)による。

現地特性を必要とする操作の間に現地特性が見つからないと,EC-LOCALE-MISSING 例外状態になって

演算は不成功になる。現地特性を使用する操作の間に現地特性の内容が妥当でないか又は完全でないと,

EC-LOCALE-INVALID

例外状態になってその演算は不成功になる。

現地特性が LC_COLLATE 中に英数字照合順序と各国文字照合順序との両方を規定してはいない場合,

その現地特性には各国文字照合順序が定義されていなければならず,用途が DISPLAY のデータ項目中で


59

X 3002

:2011 (ISO/IEC 1989:2002)

使用できる文字との対応が付く各国文字が,その文字照合順序の中に包含されていなければならない。現

地特性に基づいて比較条件を評価する場合に英数字から各国文字への変換を行うには,この対応付けが用

いられる。

現地特性カテゴリ LC_MESSAGES 及び LC_NUMERIC を COBOL が直接に用いることはない。しかし,

これらのカテゴリの設定及び問合せの機能は提供するので,応用プログラムはその機能を用いてよい。

LC_ALL

を構成する文化的要素の集合の中に,COBOL が使用することのないカテゴリ及び文化的要素

が含まれていてもよい。

8.2.1 

現地特性フィールド名 

現地特性フィールド名の幾つかは,処理内容を明確化するために COBOL 仕様書から参照されている。

これら及びそのほかの関連フィールド名は,ISO/IEC 9945 の規定による。明示的に参照される現地特性フ

ィールド名を次に示す。

カテゴリ 

フィールド名 

説明 

LC_MONETARY

 int_curr_symbol

国際通貨記号

 currency_symbol

現地通貨記号

 mon_decimal_point

小数点文字

 mon_thousands_sep

小数点の左側のけたまとめに用いる文字列

 mon_grouping

各々の組のけた数

 positive_sign

非負の値をもつ量を表すのに用いる文字列

 negative_sign

負の値をもつ量を表すのに用いる文字列

 int_frac_digits

小数点の右側のけた数

 frac_digits

小数点の右側のけた数

 p_cs_precedes

非負の量に対し,通貨記号が数値の前か後かを表す標識

 n_cs_precedes

負の量に対し,通貨記号が数値の前か後かを表す標識

LC_TIME

 d_fmt

日付の表現形式

 t_fmt

時刻の表現形式

8.3 

字句の要素 

字句の要素は,文字列及び分離符である。

8.3.1 

文字列 

文字列(character-string)とは,1 文字又は一連の文字の並びであって,COBOL の語,定数又は PICTURE

文字列を形成する。文字列は,分離符で区切られる。

8.3.1.1 COBOL

の語 

COBOL

の語(COBOL word)は,31 文字以内の文字列であって,翻訳指示語,文脈依存語,組込み関

数名,予約語,システム名又は利用者定義語を形成する。特殊文字語でない COBOL の語の各文字は,基

本文字,基本数字,拡張文字,基本特殊文字のハイフン及び基本特殊文字の下線文字から選ばなければな

らない。ハイフン又は下線文字を,語の最初又は最後の文字としてはならない。

翻訳群の内部では,翻訳変数名が,その他の種類の利用者定義語,システム名,文脈依存語及び組込み

関数名と要素を共用する集合群を形成する。つまり同一の COBOL の語を,翻訳変数名に用いると同時に

これら他の種類の語に用いてもよい。


60

X 3002

:2011 (ISO/IEC 1989:2002)

ソース要素中では,次を適用する。

1)

予約語は,これを利用者定義語又はシステム名に用いてはならない。

2)

翻訳指示語は,予約語でもあるものを除き,これを利用者定義語及びシステム名に用いてもよい。

3)

文脈依存語は,規定された言語構造以外の文脈で,これを利用者定義語及びシステム名に用いてもよ

い。ある語が利用者定義か又は文脈依存かの解釈に,特別な規則を適用することもある。

4)

ある特定の語を,システム名に用いるのと同時に利用者定義語に用いてもよい。その場合は,8.3.1.1.1 

(利用者定義語)及び 8.3.1.1.2(システム名)の規則による。

5)

組込み関数名を,利用者定義語及びシステム名に用いてもよい。ただし,次のものを除く。

−  組込み関数名の LENGTH,RANDOM,SIGN,SUM(これらは予約語でもある。

−  組込み関数名のうち,リポジトリ段落中の関数指定子で識別されるもの

8.3.1.1.1 

利用者定義語 

利用者定義語(user-defined word)は,COBOL の語であって,句又は文の書き方を満足するように利用

者が定義する。

利用者定義語の種類は,次による。

−  符号系名 alphabet-name

−  通信記述名(廃要素) cd-name

−  クラス名(オブジェクト指向用)

class-name (for object orientation)

−  字類名(真理値命題用)

class-name (for truth value proposition)

−  翻訳変数名 compilation-variable-name

−  条件名 condition-name

−  定数名 constant-name

−  データ名 data-name

−  ファイル名 file-name

−  関数原型名 function-prototype-name

−  指標名 index-name

−  インタフェース名 interface-name

−  レベル番号 level-number

−  現地特性名 locale-name

−  メソッド名 method-name

−  呼び名 mnemonic-name

−  順序付け名 ordering-name

−  段落名 paragraph-name

−  パラメタ名 parameter-name

−  プログラム名 program-name

−  プログラム原型名 program-prototype-name

−  プロパティ名 property-name

−  レコードキー名 record-key-name

−  レコード名 record-name

−  報告書名 report-name

−  画面名 screen-name


61

X 3002

:2011 (ISO/IEC 1989:2002)

−  節名 section-name

−  記号文字 symbolic-character

−  型名 type-name

−  利用者関数名 user-function-name

一つのソース要素中で,利用者定義語を用いてよい用途は,ここに示した利用者定義語の種類のうちの

一つだけに限られる,ただし,次に示す例外がある。

1)

翻訳変数名は,これ以外のあらゆる種類の利用者定義語と同じであってもよい。

2)

レベル番号は,段落名又は節名と同じであってもよい。

3)

次に示すいずれかの種類の利用者定義語として同じ名前を用いてもよい。

−  定数名

−  データ名

−  プロパティ名

−  レコードキー名

−  レコード名

一意性に関するこれ以上の規則は,8.4.1(一意参照)による。

節名,段落名及びレベル番号を除き,各々の利用者定義語は,少なくとも一つの基本文字又は拡張文字

を含まなければならない。レベル番号は一意でなくてもよい。レベル番号の指定は他のレベル番号と同一

であってもよい。

次に示す利用者定義語は,操作環境へと外部公開(externalize)される。

1)

最も外側のプログラム名,クラス名,関数原型名,インタフェース名,メソッド名,プログラム原型

名,プロパティ名及び利用者関数名。

2) EXTERNAL

属性付きで記述した項目の,データ名,ファイル名及びレコード名。

操作環境へ外部公開される利用者定義語に拡張文字を指定してもよいか否かは,実装者定義とする。

外部公開される利用者定義語のうち AS 指定があるものに対しては,AS 指定中に書いた定数の内容が,

操作環境に外部公開される名前である。これらの名前の形成及び対応付けの規則は,実装者定義とする。

注記 AS 指定は,大文字と小文字との区別を意識した名前又は COBOL の語として正しくない名前を

指定するための手段を提供する。別のプログラム言語又はシステム構成要素は,そのような名

前を要求してもよい。

外部公開される利用者定義語のうち AS 指定がないものに対しては,利用者定義語と,操作環境へ外部

公開される対応する名前との間の,対応付けの規則は,実装者定義とする。

一つの実行単位内では,操作環境へ外部公開されたある特定の名前は,全てが同一の種類の実体又は対

象を識別するものでなければならない。メソッド名とプロパティ名とを除いて,複数個のソース要素が,

外部公開された同一の名前によって何かを識別する場合,それらは同一の実体を参照する。

外部公開名を参照する箇所は,ソース要素中で次の箇所だけとする。

1) REPOSITORY

段落の記述項の AS 指定中

2) EXTERNAL

句の AS 指定中

3) CALL

文中のプログラム名

4) CANCEL

文中のプログラム名

5)

プログラムアドレス一意名のプログラム名

6) INVOKE

文中又は文内メソッド呼出しのメソッド名


62

X 3002

:2011 (ISO/IEC 1989:2002)

これら以外では,外部参照になってもよい名前の参照箇所でも,外部公開名ではなく利用者定義語を用

いて名前を指定しなければならない。

AS

指定中では外部公開名だけを参照しなければならない。CALL 文,CANCEL 文,INVOKE 文,文内

メソッド呼出し及びプログラムアドレス一意名では,外部公開名と利用者定義語とのいずれを参照しても

よく,その相違は,ここ以降の条件による。

INVOKE

文又は文内メソッド呼出しが,あるメソッド名を参照するために,非限定オブジェクト参照を

用いている場合は,次による。

1) CALL-CONVENTION

翻訳指示に呼出し規約 COBOL の暗黙又は明示的な指定がある場合,メソッド

名は COBOL の語として扱われ,呼出し対象メソッドの外部公開名に対応付けられる。その場合は,

AS

指定のないメソッド名に対するのと同じ,実装者定義の対応付け規則を適用する。

2) CALL-CONVENTION

翻訳指示に呼出し規約名 1 の指定がある場合,

メソッド名が定数として扱われ,

呼出し対象メソッドの外部公開名に対応付けられる。その方式は実装者定義とする。

INVOKE

文又は文内メソッド呼出しが,あるメソッド名を参照するために,非限定でないオブジェクト

参照を用いている場合,メソッド名の命名規約及びメソッド名に用いられる対応付け規則は,そのメソッ

ドを包含するクラス又はインタフェースの入口規約によって決まる。

注記  呼出し対象メソッドの参照に非限定オブジェクト参照を用いたとき,そのメソッドを包含する

クラス又はインタフェースの定義に ENTRY-CONVENTION があっても無視する。

CALL

文,CANCEL 文又はプログラムアドレス一意名が,翻訳単位を命名するプログラム名を参照して

いる場合は,次による。

1) CALL

文,CANCEL 文又はプログラムアドレス一意名が,プログラム原型名を指定している場合は,

プログラム名に対する命名規約と用いられる対応付け規則は,呼出し対象プログラムの記述に示され

た入口規約によって決まる[12.2.7(リポジトリ段落)の一般規則 10)  参照]

2)

さもなければ,次による。

a) CALL-CONVENTION

翻訳指示中に呼出し規約 COBOL の暗黙の指定又は明示的な指定がある場合,

プログラム名は COBOL の語として扱われ,プログラムの外部公開名に対応付けられる。その場合

は,AS 指定のないプログラム名に対するのと同じ,実装者定義の対応付け規則を適用する。

b) CALL-CONVENTION

翻訳指示中に呼出し規約名 1 の指定がある場合,プログラム名は定数として

扱われ,プログラムの外部公開名へと対応付けられる。その方式は実装者定義とする。

8.3.1.1.1.1 

符号系名 

符号系名(alphabet-name)は,特定の文字集合,文字照合順序,又はその両方を識別する。この関係は,

特殊名段落で確定する。

8.3.1.1.1.2 

通信記述名 

通信記述名(cd-name)は,データ部の通信節の通信記述項に記述された,通信管理システム連絡領域を

識別する。

8.3.1.1.1.3 

クラス名 

クラス名(class-name)は,クラス,すなわち 0 個以上のオブジェクトに対する共通の振る舞い及び実装

を定義した実体を識別する。

8.3.1.1.1.4 

字類名 

字類名(class-name)は,あるデータ項目の内容がその字類名の定義に列挙した文字だけから構成されて

いるか否かで,真理値の決まる命題を識別する。


63

X 3002

:2011 (ISO/IEC 1989:2002)

8.3.1.1.1.5 

翻訳変数名 

翻訳変数名(compilation-variable-name)は,DEFINE 翻訳指示で定義した翻訳変数を識別する。

8.3.1.1.1.6 

条件名 

条件名(condition-name)は,データ部で定義された値,値の集合,又は値の範囲を識別する。又は,特

殊名段落で定義されたオン(on)又はオフ(off)の状態を識別する。

8.3.1.1.1.7 

定数名 

定数名(constant-name)は,名前付き定数を識別する。定数名はデータ部の定数記述項で定義する。

8.3.1.1.1.8 

データ名 

データ名(data-name)は,データ記述項で記述されるデータ項目を,又はレコード記述項で記述される

レコードを識別する。

8.3.1.1.1.9 

ファイル名 

ファイル名(file-name)は,データ部のファイル節におけるファイル記述項(FD)又は整列併合用ファ

イル記述項(SD)で記述されるファイル結合子を識別する。

8.3.1.1.1.10 

関数原型名 

関数原型名(function-prototype-name)は,関数原型を識別する。

8.3.1.1.1.11 

指標名 

指標名(index-name)は,特定の表に関連する指標を識別する。

8.3.1.1.1.12 

インタフェース名 

インタフェース名(interface-name)は,インタフェース,つまりメソッド原型の集まりを識別する。

8.3.1.1.1.13 

レベル番号 

レベル番号(level-number)は,1 けた又は 2 けたの数字で表現され,データ項目の階層中の位置を示す

か,又はデータ記述項が特別な性質をもつことを示す。

8.3.1.1.1.14 

現地特性名 

現地特性名(locale-name)は,文化的要素の集合を規定する現地特性を識別する。現地特性名は特殊名

段落中で定義する。

8.3.1.1.1.15 

メソッド名 

メソッド名(method-name)は,メソッドを識別する。

8.3.1.1.1.16 

呼び名 

呼び名(mnemonic-name)は,実装者が命名する装置名,機能名,又はスイッチ名を識別する。この関

係は特殊名段落で確定する。

8.3.1.1.1.17 

順序付け名 

順序付け名(ordering-name)は,STANDARD-COMPARE 組込み関数の実行のために用いる,ISO/IEC 

14651:2001

に合致した順序付け表を識別する。

8.3.1.1.1.18 

段落名 

段落名(paragraph-name)は,手続き部の段落を識別する。段落名が等しいとみなされるのは,同じ個数

の COBOL 文字を同じ順序で並べて構成した場合とする。

注記  段落名の "00123" と "123" とは異なる段落名である。

8.3.1.1.1.19 

パラメタ名 

パラメタ名(parameter-name)は,パラメタ付きクラス又はパラメタ付きインタフェースの,仮パラメタ

を識別する。


64

X 3002

:2011 (ISO/IEC 1989:2002)

8.3.1.1.1.20 

プログラム名 

プログラム名(program-name)は,プログラムを識別する。プログラム名とは,COBOL プログラムで

は,そのプログラムの見出し部のプログラム名段落に指定した名前とする。COBOL 以外のプログラムで

は,プログラム名の形成に対する規則は実装者定義とする。

8.3.1.1.1.21 

プログラム原型名 

プログラム原型名(program-prototype-name)は,プログラム原型を識別する。

8.3.1.1.1.22 

プロパティ名 

プロパティ名(property-name)は,オブジェクトの情報を出し入れするための一つの手段を識別する。

8.3.1.1.1.23 

レコードキー名 

レコードキー名(record-key-name)は,索引ファイルに関連付けられたキーを識別する。

8.3.1.1.1.24 

レコード名 

レコード名(record-name)は,レコード記述項で記述されるレコードを識別する。レコード名は,書き

方の規則が禁止しない限り,データ名を指定してもよい箇所に指定してもよい。

8.3.1.1.1.25 

報告書名 

報告書名(report-name)は,データ部の報告書節の報告書記述項で記述される報告書を識別する。

8.3.1.1.1.26 

画面名 

画面名(screen-name)は,画面節の画面記述項を識別する。

8.3.1.1.1.27 

節名 

節名(section-name)は,手続き部中の節を識別する。

8.3.1.1.1.28 

記号文字 

記号文字(symbolic-character)は,特殊名段落中で指定された値を表す,利用者定義の表意定数とする。

8.3.1.1.1.29 

型名 

型名(type-name)は,データ記述項で指定される型宣言(type declaration)を識別する。

8.3.1.1.1.30 

利用者関数名 

利用者関数名(user-function-name)は,関数を識別する。

8.3.1.1.2 

システム名 

システム名(system-name)は,操作環境との連絡のために用いられる。COBOL の語の形成規則に制約

を加えるようなシステム名の形成規則を,実装者は定義してもよい。

システム名の種類は,次による。

−  呼出し規約名 call-convention-name

−  符号名 code-name

−  計算機名 computer-name

−  装置名 device-name

−  入口規約名 entry-convention-name

−  外部現地特性名 external-locale-name

−  機能名 feature-name

−  登録集名 library-name

−  スイッチ名 switch-name

−  原文名 text-name

一つの実装系の内部で,あるシステム名が,装置名,機能名及びスイッチ名のうち 2 種類以上に属して


65

X 3002

:2011 (ISO/IEC 1989:2002)

はならない。

8.3.1.1.2.1 

呼出し規約名 

呼出し規約名(call-convention-name)は,メソッド名又はプログラム名からその外部公開名への対応付

けに関する実装者定義の規約を識別する。また,関数・メソッド・プログラムとの相互作用に用いられる

連絡機構の属性を識別することもある。

8.3.1.1.2.2 

符号名 

符号名(code-name)は,符号化文字集合及び文字照合順序を識別する。

8.3.1.1.2.3 

計算機名 

計算機名(computer-name)は,翻訳単位を翻訳する又は実行時モジュールを実行する計算機を識別する

ことがある。

8.3.1.1.2.4 

装置名 

装置名(device-name)は,入出力装置を識別する。

8.3.1.1.2.5 

入口規約名 

入口規約名(entry-convention-name)は,関数・メソッド・プログラムが制御を受け取るために用いる連

絡機構の属性を識別する。

8.3.1.1.2.6 

外部現地特性名 

外部現地特性名(external-locale-name)は,文化的要素の集合を規定している現地特性を識別する。この

現地特性は操作環境が提供するものである。

8.3.1.1.2.7 

機能名 

機能名(feature-name)は,入出力装置の機能を識別する。

8.3.1.1.2.8 

登録集名 

登録集名(library-name)は,COPY 登録集を識別する。

8.3.1.1.2.9 

スイッチ名 

スイッチ名(switch-name)は,実装者定義の外部スイッチを識別する。

8.3.1.1.2.10 

原文名 

原文名(text-name)は,登録集原文を識別する。

8.3.1.1.3 

予約語 

COBOL

語のうち 8.9(予約語)に示したものは,言語構造中でキーワード,補助語又は特殊文字語とし

ての用途が予約されている。予約語(reserved word)を,システム名又は利用者定義語に用いてはならな

い。

予約語と利用者定義語との間で衝突が起きないよう,

この規格では予約語の形成に次の規則を適用する。

注記  これらの規則は,将来の版にも適用されることを意図している。実装者は拡張仕様を定義する

に当たって,これらの規則を遵守するのが望ましい。

1)

予約語の先頭は,数字の 0,…,9,文字 X,Y,又は Z ではない。ただし,語 ZERO,ZEROES,ZEROS

はこの限りでない。

2)

予約語は,少なくとも二つの基本文字を含む。ただし,特殊文字語はこの限りでない。

3)

予約語の先頭は,一つ又は二つの基本文字にハイフンが続くものではない。ただし,語 I-O 及び

I-O-CONTROL

はこの限りでなく,"B–"で始まる語もこの限りでない。

4)

予約語は,二つ以上連続するハイフンを含まない。

予約語の種類は,次による。


66

X 3002

:2011 (ISO/IEC 1989:2002)

−  必須語 required

words

−  補助語 optional

words

8.3.1.1.3.1 

必須語 

必須語(required word)は,その語が現れる書き方を用いるとき,必要とされる語とする。

必須語は,次の 2 種類とする。

1)

キーワード(必要語,key word)

。各々の書き方の中で,下線のある大文字の語。

2)

特殊文字語(special character word)

。次による。

 

意味 

+

算術演算子  …  単項の+又は加算

算術演算子  …  単項の−又は減算

*

算術演算子  …  乗算

/

算術演算子  …  除算

**

算術演算子  …  べき乗

&

連結演算子

>

比較演算子  …  大きい

<

比較演算子  …  小さい

=

比較演算子  …  等しい,及び COMPUTE 文の代入演算子

==

COPY

文中及び REPLACE 文中の仮原文区切り記号

>=

比較演算子  …  以上

<=

比較演算子  …  以下

*>

注記標識

>>

翻訳指示標識

::

メソッド呼出し演算子

8.3.1.1.3.2 

補助語 

それぞれ書き方の中にある,下線のない大文字の語を,補助語(optional word)と呼ぶ。これを指定す

るかしないかは利用者の自由であって,書き方の意味には影響を及ぼさない。

8.3.1.1.4 

文脈依存語 

文脈依存語(context-sensitive word)は,その語が指定された一般形式中でだけ予約語となる COBOL の

語とする。文脈依存語及びそれが予約語になる文脈は,8.10(文脈依存語)に示す。

8.3.1.1.5 

組込み関数名 

組込み関数名(intrinsic-function-name)は,特定の組込み関数を識別する COBOL の語とする。組込み関

数名の一覧は,8.11(組込み関数名)に示す。

8.3.1.1.6 

例外名 

例外名(exception-name)は,例外状態を識別する COBOL の語とする。例外名の一覧は,14.5.12.1(例

外状態)に示す。

8.3.1.2 

定数 

定数(literal)とは,表意定数を指す予約語か,又はデータの値を表す文字列であってその値はその定数

を構成する順序付きの文字の集まりから導き出されるものである。各々の定数は字類及び項類をもち,そ

の種類は英数字,ブール,各国文字又は数字のいずれかとする。

英数字定数,ブール定数,及び各国文字定数の両端の区切り記号に用いる一対の引用記号(quotation


67

X 3002

:2011 (ISO/IEC 1989:2002)

symbol

)は,アポストロフィと引用符のいずれでもよい。一つのソース単位中で両方の書き方を用いても

よい。

16

進英数字形式,16 進ブール形式及び 16 進各国文字形式の定数では,定数の値を指定するために 16

進数字(hexadecimal digit)を用いる。16 進数字は,基本数字の 0∼9 及び基本英数字の A∼F とする。

8.3.1.2.1 

英数字定数 

英数字定数(alphanumeric literal)の字類及び項類は,英数字とする。

8.3.1.2.1.1 

一般形式 

書き方 1(英数字)

 "{

文字1}…"

 '{

文字1}…'

書き方 216 進英数字)

 X"{

16

進文字並び1}…"

 X'{

16

進文字並び1}…'

8.3.1.2.1.2 

構文規則 

全ての書き方

1)

英数字定数の,区切り分離符を除いた長さは,英数字文字位置で 1∼160 個でなければならない。

書き方 1

2)

文字 1 は,実装者がソースコード表現用に選択した符号化文字集合中にあり,かつ,翻訳時の英数字

符号化文字集合中の文字に指名した文字集合中にある,いずれの文字であってもよい。

注記  したがって,英数字定数中の文字をソースコード中では各国文字符号化文字集合で表現して

もよい。ただし,そうする必要はない。これによって,例えば  "ABC"  という書き方の定数

をソースコード中では UTF-16 で表現しておき,

格納する場合は ISO/IEC 646 としてもよい。

ソースコードを全て各国文字符号化文字集合で表現することを許すために,これが不可欠で

あることは,UTF-16 の場合に限ったことではない。

書き方 1 の英数字定数の中における UTF-8 又は英数字と各国文字との混在した文字列を認識する機

能は,実装者への要求でも禁止でもない。許す場合は,その機能は利用者が任意に使用でき,その実

装系が通常認識する文字群に制限を加えない方式によらなければならない。適用される構文規則は,

実装者定義とする。

3)

開始区切り記号に用いた引用記号に釣り合う引用記号が 2 文字連続して現れると,これは定数の内容

としての引用記号 1 文字を表す。

4)

引用記号 1 文字を表すために用いる 2 個連続した引用記号は,開始引用記号と同じ符号化文字集合で

表現しなければならない。

書き方 2

5) 16

進文字並び 1 は,16 進数字で構成されなければならない。

6)

各々の 16 進文字並び 1 は,実装者が英数字の 1 文字に対応する 16 進文字の個数と規定した個数の 16

進文字でなければならない。

8.3.1.2.1.3 

一般規則 

全ての書き方

1)

英数字定数を区切る分離符は,この英数字定数の値の一部ではない。

2)

英数字定数の字類及び項類は,英数字とする。


68

X 3002

:2011 (ISO/IEC 1989:2002)

書き方 1

3)

翻訳時の定数の値は,用途 DISPLAY に対して実装者が規定する翻訳時の計算機符号化文字集合に含

まれる文字 1 の出現の列とする。

定数の実行時の値は,同じ定数の翻訳時の値を等価な実行時の値へと変換した結果としての英数字

の文字列である。その変換は,8.1.1(計算機符号化文字集合)の規定による。

注記  この規則は,用途の DISPLAY を UCS などの大規模文字集合で実装している場合は,英数字

定数を各国文字表現で格納することを可能にしている。

書き方 1 の英数字定数の内容に,UTF-8 又は英数字と各国文字との混在が選択できる実装系では,

それらを選択したときに適用される一般規則は,実装者定義とする。

書き方 2

4)

定数の実行時の値は英数字の文字列であって,

各々の文字がもつビット構成は 16 進文字並び 1 の一つ

で指定される。

符号化文字集合中に対応文字が存在しない 16 進文字並び 1 が指定された結果は,

実装者定義とする。

文字の占めるビット数が 4 の倍数でない場合の,

各々の 16 進文字並び 1 から文字への対応付けもまた,

実装者定義とする。

8.3.1.2.2 

数字定数 

数字定数(numeric literal)の字類及び項類は,数字とする。

8.3.1.2.2.1 

固定小数点数字定数 

固定小数点(fixed-point)数字定数は,0∼9 の数字,正号,負号及び小数点から選んだ文字の文字列と

する。実装者は 1∼31 けたの固定小数点数字定数を許さなければならない。固定小数点数字定数の形成規

則及び値の規則は,次による。

1)

数字を少なくとも 1 けた含まなければならない。

2)

符号文字が複数あってはならない。符号を用いるとき,定数の最左端文字に書かなければならない。

符号なしのとき,その定数は負ではない。

3)

小数点が複数あってはならない。小数点は,想定小数点として扱われ,定数の中で最右端文字以外の

どこに書いてもよい。

4)

固定小数点数字定数の値は,文字列で表現される代数的な数値とする。固定小数点数字定数の大きさ

は,定数の文字列中の数字のけた数に等しい。

整数定数(integer literal)は,小数点を含まない固定小数点数字定数とする。

8.3.1.2.2.2 

浮動小数点数字定数 

浮動小数点(floating-point)数字定数の形成規則及び値の規則は,次による。

1)

浮動小数点数字定数は,二つの固定小数点数字定数を,間に空白を挟むことなく,文字"E"でつないで

形成する。

2)  "E"

の左側の定数は,仮数部(significand)を表す。これは符号付きでも符号なしでもよいが,小数点

をもたなければならない。仮数部は 1∼31 けたでなければならない。仮数部が符号付きのとき,この

浮動小数点数字定数は符号付きとみなされる。仮数部が符号なしのとき,この浮動小数点数字定数は

正値とみなされる。

3)  "E"

の右側の定数は,指数部(exponent)を表す。これは符号付きでも符号なしでもよいが,3 けたを

超えてはならず,小数点を含んでいてはならない。指数部の最大許容値及び最小許容値は,実装者定

義とする。


69

X 3002

:2011 (ISO/IEC 1989:2002)

4)

仮数部の数字が全て 0 のときは,指数の数字も 0 でなければならず,仮数部と指数部のいずれにも負

号があってはならない。

5)

浮動小数点数字定数の値は,仮数部の値と 10 の指数べき乗との代数的な積である。

8.3.1.2.3 

ブール定数 

ブール定数(boolean literal)の字類及び項類は,ブールとする。

8.3.1.2.3.1 

一般形式 

書き方 1(ブール)

 B"{

ブール文字1}…"

 B'{

ブール文字1}…'

書き方 216 進ブール)

 BX"{

16

進数字1}…"

 BX'{

16

進数字1}…'

8.3.1.2.3.2 

構文規則 

全ての書き方

1)

ブール定数の,区切り分離符を除いた長さは,ブール文字位置で 1∼160 個でなければならない。

書き方 1

2)

ブール文字 1 は,計算機文字集合のブール文字,つまり  "0"又は"1"でなければならない。

書き方 2

3) 16

進数字 1 は,16 進数字でなければならない。

8.3.1.2.3.3 

一般規則 

全ての書き方

1)

ブール定数を区切る分離符は,このブール定数の値の一部ではない。

2)

ブール定数の字類及び項類は,ブールとする。

書き方 1

3)

ブール定数の値は,繰り返し出現するブール文字 1 の並びの値とする。

書き方 2

4)

それぞれの 16 進数字 1 は,次の値と等価とする:"0"は B"0000","1"は B"0001","2"は B"0010",

"3"

は B"0011","4"は B"0100","5"は B"0101","6"は B"0110","7"は B"0111","8"は B"1000",

"9"

は B"1001","A"は B"1010","B"は B"1011","C"は B"1100","D"は B"1101","E"は B"1110",

"F"

は B"1111"。

5)

定数の実行時の値は,16 進数字をそれぞれ等価なブール値で置換して,先頭の分離符 BX"を B"で置

換して形成した,等価なブール定数の値とする。

8.3.1.2.4 

各国文字定数 

各国文字定数(national literal)の字類及び項類は,各国文字とする。

8.3.1.2.4.1 

一般形式 

書き方 1(各国文字)

 N"{

文字1}…"

 N'{

文字1}…'

書き方 216 進各国文字)


70

X 3002

:2011 (ISO/IEC 1989:2002)

 NX"{

16

進文字並び1}…"

 NX'{

16

進文字並び1}…'

8.3.1.2.4.2 

構文規則 

全ての書き方

1)

各国文字定数の,区切り分離符を除いた長さは,各国文字位置で 1∼160 個でなければならない。

2)

文字 1 は,次のいずれかであれば,いかなる文字であってもよい。

−  実装者がソースコード表現用と指名した各国文字符号化文字集合中にある文字。

−  実装者がソースコード表現用と指名した英数字符号化文字集合中にある文字であって,

その英数字と,ある各国文字との間に対応が付くもの。

注記  実装者は,ソースコードを各国文字符号化文字集合だけで表現するか,英数字と各国文

字との混在した符号化文字集合で表現するかを選択できる。各国文字定数は,いずれの

表現で書いても,内容を各国文字表現で格納できる。例えば,N"ABC"という書き方の定

数は,1 バイト文字で表現して,UTF-16 として格納できる。これは,ソースコードを

UTF-8

のような符号化文字集合で表現することを許すには不可欠であるが,UTF-8 に限

ったことではない。

書き方 1

3)

開始区切り記号に用いた引用記号に釣り合う引用記号が 2 文字連続して現れると,これは定数の内容

としての引用記号 1 文字を表す。この 2 個連続した引用記号は,開始引用記号と同じ符号化文字集合

で表現しなければならない。

書き方 2

4) 16

進文字並び 1 は,16 進数字で構成されなければならない。

5)

各々の 16 進文字並び 1 は,実装者が各国文字の 1 文字に対応する 16 進文字の個数と規定した個数の

16

進文字でなければならない。

8.3.1.2.4.3 

一般規則 

全ての書き方

1)

各国文字定数を区切る分離符は,この各国文字定数の値の一部ではない。

2)

各国文字定数の字類及び項類は,各国文字とする。

書き方 1

3)

翻訳時の定数の値は,用途 NATIONAL に対して実装者が規定する翻訳時の計算機符号化文字集合に

含まれる文字 1 の出現の列とする。文字集合の符号化表現を切り換える制御機能があっても,それは

定数の値の一部ではない。

定数の実行時の値は,同じ定数の翻訳時の値を等価な実行時の値へと変換した結果としての各国文

字の文字列である。その変換は,8.1.1(計算機符号化文字集合)の規定による。

書き方 2

4)

定数の実行時の値は,各国文字の文字列であって,各々の文字がもつビット構成は 16 進文字並び 1

の一つで指定される。

符号化文字集合中に対応文字が存在しない 16 進文字並び 1 が指定された結果は,

実装者定義とする。

文字の占めるビット数が 4 の倍数でない場合の,

各々の 16 進文字並び 1 から文字への対応付けもまた,

実装者定義とする。


71

X 3002

:2011 (ISO/IEC 1989:2002)

8.3.1.2.5 

表意定数の値 

表意定数の値は,コンパイラが生成するものであり,次に示す予約語を用いて参照する。

8.3.1.2.5.1 

一般形式 

書き方 1zero

 ALL

 ZERO

 ZEROS

 ZEROES

書き方 2space

 ALL

 SPACE

 SPACES

書き方 3high-value

 ALL

 HIGH-VALUE

 HIGH-VALUES

書き方 4low-value

 ALL

 LOW-VALUE

 LOW-VALUES

書き方 5quote

 ALL

 QUOTE

 QUOTES

書き方 6all  定数)

 ALL

定数 1

書き方 7(記号文字)

 ALL

記号文字 1

8.3.1.2.5.2 

構文規則 

全ての書き方

1)

表意定数を用いてもよいのは,書き方の中に“定数”がある場合,又は許可する規則がある場合とす

る。ただし,次に示す制限がある。

a)

定数が数字定数に制限されるとき,表意定数は ALL 指定のない ZERO(ZEROS, ZEROES)だけと

する。

b)

構文規則が禁止している箇所で,表意定数を指定してはならない。

書き方 6

2)

定数 1 は,英数字定数・ブール定数・各国文字定数でなければならない。そのうちいずれかは連結式

であってもよい。定数 1 が表意定数であってはならない。

3)

定数 1 の長さが 2 以上であるとき,これを数字項目又は数字編集項目に関連付けてはならない。

書き方 7

4)

記号文字 1 は,特殊名段落の SYMBOLIC CHARACTERS 句で指定しなければならない。

8.3.1.2.5.3 

一般規則 

全ての書き方

1)

各国文字を指定する必要がある文脈で表意定数を用いる場合,その表意定数が表現する値は各国文字

とする。そうでなく,表意定数の表す値が 1 文字であるとき,その表意定数が表現する値は英数字と


72

X 3002

:2011 (ISO/IEC 1989:2002)

する。いずれの場合も表意定数 ZERO(ZEROS, ZEROES)

,SPACE(SPACES)及び QUOTE(QUOTES)

の文字の値は,それぞれ実行時の計算機文字集合で表現した文字  "0",空白,及び引用符の値とする。

計算機の英数字符号化文字集合及び各国文字符号化文字集合において,ZERO,SPACE 及び QUOTE

の一意な表現は,実装者定義とする。

2)

表意定数が何けたかの文字列を表している場合,その文字列の長さは,次の規則をこの順に適用して

文脈から決まる。

a)

表意定数を連結式に指定した場合,文字列の長さは 1 文字とする。

b)

表意定数を VALUE 句に指定した場合,並びにデータ項目,定数又は中間結果に関連付けた場合,

文字列が 1 文字ずつ右側へと反復され,できあがった文字列の長さが,関連するデータ項目,定数

又は中間結果の中の文字位置の個数以上になる。

次に,

できあがった文字列を右側から切り捨てて,

残っている文字位置の個数を,関連するデータ項目,定数又は中間結果の中の文字位置の個数と 1

のいずれか大きいほうと等しくする。この処理は,データ項目に JUSTIFIED 句があっても,その適

用よりも優先して独立に行われる。

注記  表意定数をデータ項目又は定数に関連付けた場合とは,例えば,表意定数をそこへと転記

する場合,それと比較する場合,二項演算でそれと対にする場合などである。

c)

表意定数が“ALL  定数 1”以外である場合,文字列の長さは 1 文字とする。

注記  例えば,表意定数を DISPLAY 文,STOP 文,STRING 文又は UNSTRING 文で用いる場合,

文字列の長さは 1 文字とする。

d)

表意定数が“ALL  定数 1”である場合,文字列の長さは定数 1 の長さとする。

書き方 1

3) ZERO

用の書き方は,数値のゼロ,何けたかのブール文字  "0",実行時の計算機文字集合の何けたか

の文字  "0",のいずれかを表す。どれを表すのかは文脈によって異なる。

書き方 2

4) SPACE

用の書き方は,実行時の計算機文字集合中の何けたかの空白を表す。

書き方 3

5)

翻訳時,及び特殊名段落中で参照する場合,HIGH-VALUE 用の書き方は,翻訳時の文字照合順序で最

高の順序位置を占める文字又はその複数個の組を表す。

実行時,特殊名段落以外で参照する場合,HIGH-VALUE 用の書き方は,実行時の文字照合順序で最

高の順序位置を占める文字又はその複数個の組を表す。

プ ロ グ ラ ム 文 字 照 合 順 序 に 対 し て 現 地 特 性 カ テ ゴ リ LC_COLLATE が 有 効 で あ る 場 合 ,

HIGH-VALUE

は,その有効な現地特性が規定する文字照合順序で最高の順序位置を占める文字又はそ

の複数個の組を表す。

表意定数の文脈で各国文字の指定が必要であるとき,各国文字のプログラム文字照合順序が用いら

れ,さもなければ英数字のプログラム文字照合順序が用いられる。

書き方 4

6)

翻訳時,及び特殊名段落中で参照する場合,LOW-VALUE 用の書き方は,翻訳時の文字照合順序で最

低の順序位置を占める文字又はその複数個の組を表す。

実行時,特殊名段落以外で参照する場合,LOW-VALUE 用の書き方は,実行時の文字照合順序で最

低の順序位置を占める文字又はその複数個の組を表す。

プログラム文字照合順序に対して現地特性カテゴリ LC_COLLATE が有効である場合,

LOW-VALUE


73

X 3002

:2011 (ISO/IEC 1989:2002)

は,その有効な現地特性が規定する文字照合順序で最低の順序位置を占める文字又はその複数個の組

を表す。

表意定数の文脈で各国文字の指定が必要であるとき,各国文字のプログラム文字照合順序が用いら

れ,さもなければ英数字のプログラム文字照合順序が用いられる。

書き方 5

7) QUOTE

用の書き方は,実行時の計算機文字集合中の引用符の文字(")を表す。QUOTE 又は QUOTES

を,定数の両端を囲む引用記号の代わりに用いてはならない。

書き方 6

8) ALL

定数用の書き方は,定数 1 を構成する文字列を何回か続けて連結して生成した文字列の全部又は

一部を表す。

書き方 7

9)

記号文字用の書き方は,特殊名段落中の SYMBOLIC CHARACTERS 句において記号文字 1 の値とし

て規定した文字の何けたかを表す。

8.3.1.3 PICTURE

文字列 

PICTURE

文字列は,通貨編集用記号を構成する記号群,及び COBOL 文字レパートリ中の文字の特定の

組合せからなる。PICTURE 文字列の説明及びその使用方法に関する規則は,13.16.38(PICTURE 句)によ

る。

8.3.2 

分離符 

分離符(separator)は,次のいずれかとする,ただし,定数又は PICTURE 文字列中に現れた場合は,こ

の限りでない。

1) COBOL

文字の空白は,分離符とする。分離符の一つ又は分離符の一部として用いる場合,空白を二

つ以上続けて書いてもよい。分離符であるコンマ・セミコロン・終止符の直後に続いた空白は全て,

その分離符の一部とみなされ,分離符の空白とはみなされない。

2) COBOL

文字のコンマ又はセミコロンの直後に空白が続いたものは,分離符とする。これらは,分離

符の空白を用いてよい箇所であればどこで用いてもよい。これらを用いると読みやすくできる。

3) COBOL

文字の終止符は,直後に空白が続いた場合,分離符とする。分離符の終止符は完結文の終わ

りを示す場合,又は一般形式に示された場合にだけ書かなければならない。

4) COBOL

文字の左括弧及び右括弧は,分離符とする。仮原文の内部を除けば,括弧を用いる場合は左

右を一対とし,用いてよい使途は,添字,関数の引数並び,メソッドの引数並び,部分参照子,算術

式,ブール式又は条件式を区切るためだけとする。

5)

定数の開始区切り記号及び終了区切り記号は,

分離符とする。

両端の区切り記号では引用記号として,

アポストロフィ(')と引用符(")のいずれを用いてもよい。

開始区切り記号は,次による。

−  引用記号

−  連続した 2 文字の B",B',N",N',X",X'

−  連続した 3 文字の BX",BX',NX",NX'

終了区切り記号は,次による。

−  開始区切り記号に引用符を用いたときは,引用符

−  開始区切り記号にアポストロフィを用いたときは,アポストロフィ

開始区切り記号の直前は,空白,左括弧,開始仮原文区切り記号のいずれかでなければならない。


74

X 3002

:2011 (ISO/IEC 1989:2002)

終了区切り記号の直後は,分離符の空白・コンマ・セミコロン・終止符,右括弧,終了仮原文区切り

記号のいずれかでなければならない。開始区切り記号の直前にある分離符は,その開始区切り記号の

一部ではない。終了区切り記号の直後にある分離符は,その終了区切り記号の一部ではない。

6)

仮原文区切り記号は,分離符とする。開始仮原文区切り記号の直前は,空白でなければならない。終

了仮原文区切りの記号の直後は,分離符の空白・コンマ・セミコロン・終止符でなければならない。

仮原文区切り記号を用いる場合は左右を一対とし,用いてよい使途は仮原文を区切るためだけとする。

7) COBOL

文字のコロンは,呼出し演算子の一部である場合を除き,分離符とする。一般形式に示され

た場合には,必ず書かなければならない。

8)

あらゆる分離符の直前には,分離符の空白があってもなくてもよい。ただし,次の場合を除く。

a)

正書法の規則で規定する場合[箇条 6(正書法)参照]

b)

定数の終了区切り記号の直前。この場合,先行する空白は定数の一部であって,分離符ではないと

みなされる。

c)

開始仮原文区切り記号の直前。この場合,分離符の空白を必ず書かなければならない。

9)

あらゆる分離符の直後には,分離符の空白があってもなくてもよい。ただし,定数の開始区切り記号

の直後は除く。定数の開始区切り記号の直後にある空白は,定数の一部であって,分離符ではない。

8.4 

参照 

参照(reference)とは,ソース単位の翻訳時及び実行単位の実行時に,参照される要素を識別するもの

である。8.3(字句の要素)で規定した予約語及び何種類かの名前は,参照の形式である。さらに,一意名

及び条件名という参照の形式がある。

8.4.1 

一意参照 

ソース要素中の全ての利用者定義名は,データ処理上の問題解決に用いられる資源を命名するために,

利用者が割り当てる[8.3.1.1.1(利用者定義語)参照]

。資源を使用するには,その資源を一意に識別する

参照を,文に指定しなければならない。一意参照(uniqueness of reference)を確実にするため,利用者定義

名には,これ以降に示すとおり,修飾,添字付け又は部分参照を施してもよい。

ある種類の資源に対して同じ名前を別々のソース要素中で 2 回以上割り当てている場合,更に,これら

のソース要素のいずれかの中で同一の名前をもつ二つの資源を修飾だけでは区別して参照し得ない場合,

名前の有効範囲の限界を規定する幾つかの規約を適用する。これらの規約によって,識別される資源は,

参照を書いたソース要素中で記述した資源であることが明確になる[8.4.5(名前の有効範囲)参照]

8.4.1.1 

修飾 

修飾(qualification)は,利用者名の一意な参照を許可するために用いられる。

明示的に参照される全ての利用者定義名は,次に示す状況のいずれかによって,参照が一意に決まらな

ければならない。

1)

同一のつづりをもつ名前がほかにはない。

2) REDEFINES

句の文脈中において一意である。

3) VARYING

句の文脈中において一意である。

4)

その名前に関連するデータ記述項が TYPEDEF 句に従属し,その TYPEDEF 句が定義する型名を参照

している TYPE 句が一つもない。

注記  13.16.56.3(TYPEDEF 句)の一般規則 1)  参照。

5)

その名前はデータ記述項の句において参照されたデータ名であり,その記述項の左辺はそのデータ名

と同じ集団項目に従属している。この場合に,そのデータ名と記述項の左辺との両方が従属している


75

X 3002

:2011 (ISO/IEC 1989:2002)

集団項目の名前が,この参照に対する暗黙の修飾語として,その集団内で一意にするため必要な明示

的な修飾語とともに用いられる。

6)

上位にある幾つかの名前を付け加えると参照を一意にできるような階層系列中にある名前,又はその

ような階層系列中にあるデータ定義記述項に関連付けられた名前である。

これらの上位の名前を修飾語(qualifier)と呼び,一意にするこの手順を修飾(qualification)と呼ぶ。

一つのソース要素中に同一の利用者定義名が複数現れてもよいが,このとき規則 2)5)  の規定を除け

ば,明示的に参照される利用者定義名のそれぞれを修飾によって一意にしなければならない。一意に

なるのであれば,指定可能な修飾語を全部指定する必要はない。LINAGE-COUNTER 又は報告書カウ

ンタ一意名が一つのソース単位中に二つ以上生成されるときは,一意参照のために修飾しなければな

らない。

7)

ソース要素が他のソース要素を内包している又は他のソース要素に内包されている[8.4.5(名前の有

効範囲)参照]

これらの規定とは別に,ある外部レコードの名前と,同じ実行単位中で記述された他の外部データ項目

の名前とに,同じデータ名を用いてはならない。大域属性をもつデータ項目の名前と,そのデータ項目を

記述しているソース要素中で記述された他のデータ項目の名前とに,同じデータ名を用いてはならない。

8.4.1.1.1 

一般形式 

書き方 1(修飾付きデータ名)

データ名 1 [データ修飾語]…  [fd-cd-rd 修飾語]

書き方 2(修飾付き条件名)

条件名 1  [データ修飾語]…  [fd-cd-rd 修飾語]

書き方 3(修飾付き指標名)

指標名 1  [データ修飾語]…  [fd-cd-rd 修飾語]

書き方 4(修飾付き手続き名)

段落名 1

 IN

 OF

節名 1

書き方 5(修飾付き画面名)

画面名 1

 IN

 OF

画面名2 …

書き方 6(修飾付きレコードキー名)

レコードキー名 1

 IN

 OF

ファイル名 2

書き方 7(修飾付き行数カウンタ)

 LINAGE-COUNTER

 IN

 OF

ファイル名 3

書き方 8(修飾付き報告書カウンタ)

 PAGE-COUNTER

 LINE-COUNTER

 IN

 OF

報告書名 2

ここで,データ修飾語は,次による。

 IN

 OF

データ名 2


76

X 3002

:2011 (ISO/IEC 1989:2002)

fd-cd-rd

修飾語は,次による。

 IN

 OF

⎪⎧

⎪⎫

ファイル名1

通信記述名1

報告書名1

8.4.1.1.2 

構文規則 

1)

明示的に参照される一意ではない利用者定義名の各々に対しては,一連の修飾語によって一意にして,

参照の曖昧さを排除しなければならない。

2)

修飾する必要のない名前を修飾してもよい。一意にする修飾語の組合せが幾つもあるとき,どれを用

いてもよい。

3)

語 IN と語 OF とは,同義とする。

4)

各々のデータ名 2 は,修飾対象の項目が従属しているレベル番号に関連する名前でなければならない。

修飾語は,順に階層系列中のより上位のレベルになるように指定する。条件名の階層は,関連する条

件変数の属する階層とする。

5)

明示的に参照されているとき,段落名が一つの節の中で重複してはならない。段落名を同じ節の中で

参照する場合には修飾する必要はない。

6) LINAGE

句 を 書 い た フ ァ イ ル 記 述 項 が 一 つ の ソ ー ス 要 素 中 に 二 つ 以 上 指 定 さ れ て い る と き ,

LINAGE-COUNTER

は修飾しなければならない。

7)

報告書記述項が一つのソース要素中に二つ以上指定されているとき,手続き部中で LINE-COUNTER

を参照するたびに修飾しなければならない。修飾されていない LINE-COUNTER を報告書節中で参照

すると,その報告書名で暗黙に修飾される。別の報告書の LINE-COUNTER を参照する場合は,

LINE-COUNTER

をその別の報告書名で明示的に修飾しなければならない。

8)

報告書記述項が一つのソース要素中に二つ以上指定されているとき,手続き部中で PAGE-COUNTER

を参照するたびに修飾しなければならない。報告書節中で,修飾されていない PAGE-COUNTER を参

照すると,その報告書名で暗黙に修飾される。別の報告書の PAGE-COUNTER を参照する場合は,

PAGE-COUNTER

をその別の報告書名で明示的に修飾しなければならない。

8.4.1.2 

添字 

添字(subscript)は,同種の要素を集めた表の中の個々の要素を参照するときに使用する。

8.4.1.2.1 

一般形式 

書き方 1(添字修飾付きデータ名)

修飾付きデータ名 1 [ (添字 … ) ]

書き方 2(添字修飾付き条件名)

修飾付き条件名 1 [ (添字 … ) ]

ここで,添字は,次による。

ALL

算術式1

指標名1

 +

 –

整数1

注記  修飾付きデータ名 1 及び修飾付き条件名 1 は文脈を示しており,添字の一部ではない。

8.4.1.2.2 

構文規則 

1)

修飾付きデータ名 1 及び修飾付き条件名 1 は,8.4.1.1(修飾)による。


77

X 3002

:2011 (ISO/IEC 1989:2002)

2)

添字を指定したとき,修飾付きデータ名 1 又は修飾付き条件名 1 に関連する条件変数を記述している

データ記述項は,OCCURS 句のある記述項であるか,そのような記述項に従属しているかのいずれか

でなければならない。

3)

構文規則 5)  に示した場合を除いて,ある表要素を参照する場合,添字の個数は,参照の対象の表要

素の記述中にある OCCURS 句の個数に等しくなければならない。つまり,最高で 7 個の添字を指定で

きる。二つ以上の添字が必要なとき,添字は,その表のより上位の次元から順に指定する。

4)

指標名 1 は,参照の対象の表の階層系列中における,その指標名を書いた INDEXED BY 指定のある

データ記述項に対応していなければならない。

5)

次に示す場合を除いて,各々の表要素を参照する場合は,添字付けしなければならない。

a) SEARCH

文の主体に書く場合

b) REDEFINES

句に書く場合

c) OCCURS

句の KEY IS 指定に書く場合

d)

表を参照する SORT 文に書く場合

e) OCCURS

句のある画面記述項の FROM 句・TO 句・USING 句に書く場合

表を参照する SORT 文中では,最右端の添字を語 ALL とする添字付けを指定してもよい。

6)

添字の ALL を用いてよいのは,添字付き一意名を組込み関数の引数として用いる場合,又は表形式の

SORT

文中で表を識別するために用いる場合だけとする。

7)

修飾付き条件名 1 の指定がある場合,添字 ALL は使用できない。

8)

報告書節中では,合計カウンタも,LINE-COUNTER 及び PAGE-COUNTER の一意名も,添字として

用いてはならない。

8.4.1.2.3 

一般規則 

1)

添字は,次のとおり決まる。

a) ALL

を指定した場合,添字 ALL を指定してもよい関数の規則で規定するように,その添字は,そ

の表に対して添字が取り得る値の全てとする。

b)

算術式 1 を指定した場合,添字は算術式 1 の評価の結果である。算術式 1 の評価の結果が整数にな

らない場合,EC-BOUND-SUBSCRIPT 例外状態になる。

c)

指標名 1 を指定した場合,添字は,指標名 1 の指標の値が表す出現番号であり,整数 1 があれば,

それによる修正を加えた値である。指標名 1 の指標の値から出現番号への対応付けは,実装者定義

とする。整数 1 がある場合,添字は,指標を整数 1 の値だけ増加(演算子 + を用いるとき)又は

減少(演算子 – を用いるとき)させて導き出した出現番号である。

2)

添字の値は,正の整数でなければならない。添字によって表される最小の出現番号は 1 であって,こ

れは表のどの次元でも最初の要素を指す。表のその次元中での引き続く要素は,それぞれ出現番号 2,

3

,…  で表される。その表のどの次元も,最大の出現番号は,関連する OCCURS 句で指定された,項

目の反復回数の最大値とする。添字の値が正の整数でないか,1 より小さいか,又は最大出現番号よ

り大きい場合は,EC-BOUND-SUBSCRIPT 例外状態になる。

8.4.2 

いろいろな一意名 

8.4.2.1 

一意名 

一意名(identifier)は,データ項目を一意に参照するため使用する,文字列及び分離符の並びである。

8.4.2.1.1 

一般形式 

書き方 1(関数一意名)


78

X 3002

:2011 (ISO/IEC 1989:2002)

関数一意名 1

書き方 2(添字修飾付きデータ名)

添字修飾付きデータ名 1

書き方 3(部分参照)

一意名 1  部分参照子 1

書き方 4(文内メソッド呼出し)

文内呼出し 1

書き方 5(オブジェクトビュー)

一意名 2  オブジェクトビュー1

書き方 6(既定義オブジェクト)

 EXCEPTION-OBJECT

 NULL

 SELF

[

クラス名1 OF ] SUPER

書き方 7(オブジェクトプロパティ)

プロパティ名 1 OF 一意名 3

書き方 8(既定義アドレス)

 NULL

書き方 9(アドレス一意名)

データアドレス一意名1

プログラムアドレス一意名1

書き方 10(修飾付き行数カウンタ)

 LINAGE-COUNTER

 IN

 OF

ファイル名 1

書き方 11(修飾付き報告書カウンタ)

 PAGE-COUNTER

 LINE-COUNTER

 IN

 OF

報告書名 1

8.4.2.1.2 

構文規則 

全ての書き方

1)

一意名は,再帰的に定義される。一意名の書き方の中に別な一意名を書いてもよい場合,その“別な

一意名”は,いずれの種類の書き方であってもよい。各々の書き方の規則に従う限り,包含する側と

される側とが同じ種類の書き方であってもよい。

書き方 1

2)

関数一意名 1 は,8.4.2.2(関数一意名)による。

書き方 2

3)

添字修飾付きデータ名 1 は,8.4.1.1(修飾)による。

書き方 3

4)

部分参照子 1 は,8.4.2.3(部分参照)による。

書き方 4

5)

文内呼出し 1 は,8.4.2.4(文内メソッド呼出し)による。


79

X 3002

:2011 (ISO/IEC 1989:2002)

書き方 5

6)

オブジェクトビュー1 は,8.4.2.5(オブジェクトビュー)による。

書き方 6

7)

既定義オブジェクト参照は,8.4.2.6

(EXCEPTION-OBJECT)

8.4.2.7

(NULL)

8.4.2.8

(SELF 及び SUPER)

による。

書き方 7

8)

オブジェクトプロパティは,8.4.2.9(オブジェクトプロパティ)による。

書き方 8

9)

既定義アドレス NULL は,8.4.2.10(既定義アドレス)による。

書き方 9

10)

アドレス一意名は,8.4.2.11(データアドレス一意名)及び 8.4.2.12(プログラムアドレス一意名)に

よる。

書き方 10

11)

一意名 LINAGE-COUNTER は,8.4.2.13(行数カウンタ)による。

書き方 11

12)

一意名 PAGE-COUNTER 及び LINE-COUNTER は,8.4.2.14(報告書カウンタ)による。

8.4.2.1.3 

一般規則 

1)

一意名の様々な構成要素は,次に示す順序で適用される。

a)

添字修飾付きデータ名,既定義オブジェクト参照,引数なし関数一意名,修飾付き報告書カウンタ,

又は修飾付き行数カウンタ

b)

アドレス一意名を右側にある一意名に適用する。

c)

オブジェクトビューを左側にある一意名に適用する。

d)

オブジェクトプロパティ用の OF は,左側のプロパティ名を右側にある一意名に適用する。

e)

文内メソッド呼出し演算子は,右側にある定数のメソッド名を,括弧で囲んだ引数の指定(もしあ

れば)と一緒に,左にある一意名に適用する。

f)

パラメタ付き関数一意名は,

左側にある関数名を,

右側にある括弧で囲んだ引数の並びに適用する。

g)

部分参照子を左側にある一意名に適用する。

8.4.2.2 

関数一意名 

関数一意名(function-identifier)は,関数の評価結果であるデータ項目を一意に参照する。

8.4.2.2.1 

一般形式 

[FUNCTION]

関数原型名1

組込み関数名1

 (

引数1

 OMITTED

… )

8.4.2.2.2 

構文規則 

1)

関数一意名を受取り側作用対象に指定してはならない。

2)

リポジトリ段落に組込み関数名 1 又は ALL の指定があるとき,又は関数原型名 1 の指定があるとき,

語 FUNCTION は省略してもよい。さもなければ,語 FUNCTION は必須とする。

3)

関数原型名 1 は,この関数一意名を含んでいる関数定義の利用者関数名,又はリポジトリ段落に指定

された関数原型でなければならない。

4)

関数の定義が引数を書くことを許すような関数原型名 1 又は組込み関数名 1 の直後に左括弧があると

き,その左括弧は常にその関数の引数の左括弧として扱われる。


80

X 3002

:2011 (ISO/IEC 1989:2002)

注記 RANDOM 関数のように,引数なしで参照しても引数付きで参照してもよい関数に対して,

正しい解釈を保証するにはコーディングに注意が必要となる。例えば次では,A は RANDOM

関数の引数であるとみなされる。

     FUNCTION  MAX  (FUNCTION  RANDOM  (A)  B)

そうでなく A を MAX 関数の第 2 引数にするには,これとは異なり,次のいずれかのコー

ディングが必要になる。

     FUNCTION  MAX  ((FUNCTION  RANDOM)  (A)  B)

又は

     FUNCTION  MAX  (FUNCTION  RANDOM()  A  B)

又は

     FUNCTION  MAX  (FUNCTION  RANDOM  A  B)

5)

組込み関数名 1 の指定があるとき,語 OMITTED を書いてはならない。

6)

引数 1 は,一意名,定数,ブール式又は算術式でなければならない。引数 1 の個数,字類,項類及び

型に適用される規則は,組込み関数については箇条 15(組込み関数)によるが,利用者関数について

は 14.7(パラメタ及び返却項目の適合)による。

7)

語 OMITTED を指定するとき,対応する仮パラメタに OPTIONAL 指定がなければならない。

8)

関数原型名 1 が指定され,かつ,引数 1 に対応する仮パラメタが BY VALUE 指定付きであるとき,引

数 1 は字類が数字,オブジェクト又はポインタでなければならない。

9)

整数作用対象が必要な箇所で数字関数を引用してはならない。たとえ,そのときの関数引用が整数値

をとる場合であっても引用してはならない。

10)

整数型 ABS 関数以外の整数関数は,符号なし整数が必要な箇所に指定してはならない。

11)

関数原型名 1 があるとき,14.7(パラメタ及び返却項目の適合)に規定した適合規則を適用する。

12)

関数原型名 1 の指定があり,引数 1 に対応する仮パラメタが手続き部見出しの USING 指定中におい

て BY REFERENCE 指定付きであり,引数 1 がビットデータ項目である場合,引数 1 は次のとおりで

なければならない。

a)

引数 1 の添字付け及び部分参照は,固定小数点数字定数又は算術式だけからなる。その算術式は,

全ての作用対象が固定小数点数字定数であって,べき乗演算子の指定はない。

b)

バイト境界にけたよせされている。

8.4.2.2.3 

一般規則 

1)

関数一意名は,一時的データ項目を参照するものであり,

実行時にその関数を参照すると値が決まる。

組込み関数名 1 を指定したとき,一時的データ項目は基本データ項目であり,その記述及び字類は

箇条 15(組込み関数)による。

関数原型名 1 を指定したとき,一時的データ項目の記述,字類,及び項類は,関数原型名 1 で識別

される関数原型の手続き部見出しの RETURNING 指定に書いた項目の連絡節中での記述による。

2)

関数への参照が行われる時点で引数は個々に,引数並びに指定した順に,左から右へと評価される。

評価される引数は,それ自体が関数一意名であってもよいし,関数一意名を含む式であってもよい。

引数の評価中に参照する関数は,その引数が指定された関数と同じであってもよい。これ以上の規則

は,組込み関数に対しては箇条 15(組込み関数)によるが,利用者定義関数に対しては 14.1.3(手続

き部の構造の一般規則)及び 14.7(パラメタ及び返却項目の適合)による。

3)

関数原型名 1 があるとき,活性化対象の関数は 12.2.7(リポジトリ段落)の規則に従って関数原型名 1


81

X 3002

:2011 (ISO/IEC 1989:2002)

によって識別され,関数原型名 1 は活性化される関数の特性を決定するのに用いられる。

4)

関数原型名 1 があるとき,各々の引数の受渡し方法は,次のとおり決まる。

a) BY

REFERENCE

として受け渡されるのは,対応する仮パラメタに BY REFERENCE が明示的又は暗

黙に指定され,かつ,引数 1 が受取り側作用対象として指定できる一意名で,オブジェクトプロパ

ティ又はオブジェクトデータ項目以外の一意名のとき。

b) BY

CONTENT

として受け渡されるのは,対応する仮パラメタに BY REFERENCE が明示的又は暗黙

に指定され,かつ,引数 1 が定数,算術式,ブール式,オブジェクトプロパティ,オブジェクトデ

ータ項目,又は受取り側対象として指定できない一意名であるとき。

c) BY

VALUE

として受け渡されるのは,対応する仮パラメタに BY VALUE 指定があるとき。

5)

関数の評価は,次のとおりに進む。

a)

各々の引数 1 は,関数一意名の評価開始時点で評価する。例外が成立すると関数は活性化されず,

細則 f)  の規定に従って実行が進む。例外状態が成立しないと,活性化される関数に制御が移った時

点で,引数 1 の値が関数で使用可能になる。

b)

実行時システムは,活性化対象の関数を位置付けようとする。関数原型名 1 があるとき,規則は 8.4.5 

(名前の有効範囲)及び 8.4.5.5(関数原型名の有効範囲)による。12.2.7(リポジトリ段落)の規則

も適用する。関数が見つからないとき,EC-PROGRAM-NOT-FOUND 例外状態になり,その関数は

活性化されず,細則 f)  の規定に従って実行が続く。

c)

関 数 は 位 置 付 け さ れ た が , 関 数 を 実 行 す る の に 必 要 な 資 源 が 使 用 可 能 で は な い 場 合 ,

EC-PROGRAM-RESOURCES

例外状態になり,関数は活性化されず,細則 f)  の規定に従って実行が

続く。関数の実行可否を決めるために調べる実行時資源は,実装者定義とする。

d)

関数一意名で示される関数が実行可能になり,活性化される関数へと制御が移る。制御の移行は,

その関数に対して指定された入口規約に整合する方法で行われる。関数原型名 1 が指定され,活性

化対象の関数が COBOL 関数である場合,その実行は 14.1.3(手続き部の構造の一般規則)で記述

されている。組込み関数名 1 が指定された場合,その実行は箇条 15(組込み関数)による。関数原

型名 1 が指定されて,活性化対象の関数が COBOL 関数ではない場合,その実行は実装者定義とす

る。

e)

活性化された関数から制御が戻った後に,活性化された関数から例外状態が伝ぱ(播)された場合,

細則 f)  の規定に従って実行が続く。

f)

例外状態が成立した場合,

その例外状態に関連する宣言手続きがあればそれが実行される。

その後,

例外状態と宣言手続きに対する規定に従って実行が進む。

6)

語 OMITTED を指定するか,又は引数並びの途中から後ろ全部を省略した場合,そのパラメタに対し

ての引数省略条件が,活性化された関数の中で真と評価される[8.8.4.1.7(引数省略条件)参照]

7)

引数省略条件が真になるようなパラメタを,活性化された関数の中で参照した場合,引数としての参

照又は引数省略条件中での参照を除いて,EC-PROGRAM-ARG-OMITTED 例外状態になり,その文の

実行の結果は規定されない。

8.4.2.3 

部分参照 

部分参照(reference modification)は,一意名と最左端位置と長さとを指定することで,一意なデータ項

目を定義する。

8.4.2.3.1 

一般形式 

一意名 1 ( 最左端位置:[長さ] )


82

X 3002

:2011 (ISO/IEC 1989:2002)

8.4.2.3.2 

構文規則 

1)

一意名 1 によって参照されるデータ項目は,次のいずれかでなければならない。

−  ブールデータ項目

−  各国文字データ項目

−  項類が英数字の基本データ項目又は英数字集団項目

−  英字データ項目

−  強い型付けの集団項目に従属してはいない数字編集データ項目

−  強い型付けの集団項目に従属してはいない英数字編集データ項目

−  強い型付けの集団項目に従属してはいない各国文字編集データ項目

−  強い型付けの集団項目に従属していなくて,用途が DISPLAY 又は NATIONAL の数字データ項目

−  強い型付けではない集団項目

部分参照の規定上,ビット集団項目及び各国文字集団項目は基本データ項目と扱われる。

2)

一意名 1 が関数一意名である場合,それは英数字,ブール又は各国文字の関数でなければならない。

3)

一意名 1 が部分参照形式の一意名であってはならない。

4)

最左端位置及び長さは,算術式でなければならない。

5)

特に指定がない限り,部分参照は,字類が英数字,ブール又は各国文字のデータ項目を参照する一意

名を書いてよい箇所ならどこに書いてもよい。

8.4.2.3.3 

一般規則 

1)

一意名 1 がブールデータ項目,英数字データ項目又は各国文字データ項目を参照するとき,最左端位

置は,それぞれブール位置,英数字文字位置又は各国文字位置を表す。

2)

一意名 1 のデータ項目が明示的又は暗黙に用途が DISPLAY と記述されて,その項類が英数字以外で

ある場合,そのデータ項目には,部分参照の処理上,字類及び項類が英数字であって同じ大きさをも

つデータ項目として再定義したかのように作用する。

3)

一意名 1 のデータ項目が明示的又は暗黙に用途が NATIONAL と記述されて,その項類が各国文字以

外である場合,そのデータ項目には,部分参照の処理上,字類及び項類が各国文字であって,同じ大

きさをもつデータ項目として再定義したかのように作用する。

4)

一意名 1 のデータ項目の各々の位置には,最左端位置から最右端に向かって 1 ずつ増加する順序番号

を割り当てる。

最左端位置に割り当てる順序番号は 1 とする。

一意名 1 に対するデータ記述項中に SIGN

IS SEPARATE

句があるとき,データ項目中の順序番号はその符号の位置にも割り当てる。

5)

部分参照は,一意名 1 のデータ項目の部分集合である,一意なデータ項目を新たに定義する。ここで

“一意なデータ項目”の定義は,次による。

a)

一意名 1 の用途が BIT であるとき,評価にビット位置を用いる。さもなければ,評価に文字位置を

用いる。

b)

最左端位置の評価は,

“一意なデータ項目”の最左端ビット位置又は最左端文字位置を,一意名 1

のデータ項目中の最左端ビット又は最左端文字からの相対順序位置で指定する。最左端位置の評価

の結果は,ゼロでない正の整数でなければならず,一意名 1 のデータ項目中の位置の個数を超えて

はならない。

c)

長さの評価は,データ項目のうちで操作に用いられる部分のビット位置又は文字位置の個数を示す。

長さの評価の結果はゼロでない正の整数にならなければならない。最左端位置に長さを加えて 1 を

引いた値が,一意名 1 のデータ項目中の位置の個数を超えてはならない。長さの指定がなければ,


83

X 3002

:2011 (ISO/IEC 1989:2002)

一意なデータ項目は,最左端位置で識別される位置から一意名 1 のデータ項目の最右端位置まで広

がる。

最左端位置又は長さの評価の結果が,整数でない値になるか,又は一意名 1 の領域外の位置を指す

値になる場合,EC-BOUND-REF-MOD 例外状態になる。

注記  実行時符号化文字集合が UCS の UTF-16 形式である場合,COBOL システムは,サロゲート

ペアを 2 分割する部分参照を検出しない。

6)

部分参照によって定義される一意なデータ項目は,

JUSTIFIED

句なしの基本データ項目とみなされる。

その“一意なデータ項目”の字類,項類及び用途は,一意名 1 に対して定義されたものと同じになる。

ただし,

a)

英数字編集項類は,字類及び項類を英数字とみなす。

b)

各国文字編集項類は,字類及び項類を各国文字とみなす。

c)

数字項類及び数字編集項類は,用途が NATIONAL のとき,字類及び項類を各国文字とみなし,さ

もなければ,字類及び項類を英数字とみなす。

d)

英数字集団項目は,用途が DISPLAY であるとみなす。

8.4.2.4 

文内メソッド呼出し 

文内メソッド呼出し(inline method invocation)は,あるメソッド呼出しから返却される一時的データ項

目を参照する。

8.4.2.4.1 

一般形式 

クラス名1

一意名1

 ::

定数 1

(

⎩⎪

⎪⎧

⎭⎪

⎪⎫

算術式1

ブール式1

一意名2

定数2

 OMITTED

… )

8.4.2.4.2 

構文規則 

1)

文内メソッド呼出しを,受取り側作用対象として指定してはならない。

2)

一意名 1 は,字類がオブジェクトでなければならない。ただし,既定義オブジェクト参照 NULL 及び

非限定オブジェクト参照を指定してはならない。

3)

一般規則 1)  に示す INVOKE 文のいずれかが,14.8.22(INVOKE 文)の構文規則に従って妥当でなけ

ればならない。

4)

呼び出されるメソッドの手続き部見出しの RETURNING 指定中に書いたデータ項目は,記述に ANY

LENGTH

句があってはならない。

8.4.2.4.3 

一般規則 

1)

文内メソッド呼出しは一時的データ項目を参照するものであり,その字類,項類及び内容は次のうち

該当する INVOKE 文を実行して返される“一時的な一意名”と同じである。

INVOKE

一意名 1 定数 1 USING 引数 RETURNING 一時的な一意名

INVOKE

一意名 1 定数 1 RETURNING 一時的な一意名

INVOKE

クラス名 1 定数 1 USING 引数 RETURNING 一時的な一意名

INVOKE

クラス名 1 定数 1 RETURNING 一時的な一意名

ここで,

a)

“引数”は,この文内呼出しの括弧(もしあれば)内に指定した作用対象とする。


84

X 3002

:2011 (ISO/IEC 1989:2002)

b)

“一時的な一意名”の記述,字類及び項類は,一意名 1 又はクラス名 1 のいずれかと,定数 1 とで

決まるメソッドの,対応する RETURNING 項目と同じである。

c)

“一時的な一意名”は,ほかならぬこの方法での文内呼出しのためにだけ存在する。

2)

この書き方を含んでいる文の実行中に例外が起きた場合,再開点は,次に実行可能な文とする。

8.4.2.5 

オブジェクトビュー 

オブジェクトビュー(object view)は,オブジェクト参照を指定どおりの記述をもつかのように扱うよ

うにする。実行時には,オブジェクトに関してこの記述に対する適合検査を行う。

8.4.2.5.1 

一般形式 

一意名 1 AS

[FACTORY OF]

クラス名1 [ONLY]

インタフェース名1

 UNIVERSAL

8.4.2.5.2 

構文規則 

1)

一意名 1 は,字類がオブジェクトでなければならない。ただし,既定義オブジェクト参照 SUPER 及

び NULL を指定してはならない。

2)

オブジェクトビューは,受取り側作用対象に指定してはならない。

8.4.2.5.3 

一般規則 

1)

一意名 1 の参照は,翻訳時に AS 指定のとおりに記述されたかのように扱われる。

2)

クラス名 1 を指定して FACTORY OF も ONLY も指定しないとき,一意名 1 は

    USAGE IS OBJECT REFERENCE

クラス名 1

と記述された扱いとなる。一意名 1 の指すオブジェクトがクラス名 1 に属するオブジェクト又はその

下位クラスに属するオブジェクトではない場合,EC-OO-CONFORMANCE 例外状態になる。

3) FACTORY

指定があり ONLY 指定がないとき,一意名 1 は

    USAGE OBJECT REFERENCE FACTORY OF

クラス名 1

と記述された扱いとなる。一意名 1 の指すオブジェクトがクラス名 1 のファクトリオブジェクト又は

その下位クラスのファクトリオブジェクトでない場合,EC-OO-CONFORMANCE 例外状態になる。

4) ONLY

指定があり FACTORY 指定がないとき,一意名 1 は次のとおり記述した扱いとする。

    USAGE OBJECT REFERENCE

クラス名 1 ONLY

一 意 名 1 の 指 す オ ブ ジ ェ ク ト が , ク ラ ス 名 1 の イ ン ス タ ン ス オ ブ ジ ェ ク ト で な い 場 合 ,

EC-OO-CONFORMANCE

例外状態になる。

5) FACTORY

指定と ONLY 指定の両方があるとき,一意名 1 は次のとおり記述した扱いとする。

    USAGE OBJECT REFERENCE FACTORY OF

クラス名 1 ONLY

一 意 名 1 の 指 す オ ブ ジ ェ ク ト が , ク ラ ス 名 1 の フ ァ ク ト リ オ ブ ジ ェ ク ト で な い 場 合 ,

EC-OO-CONFORMANCE

例外状態になる。

6)

インタフェース名 1 を指定するとき,一意名 1 は次のとおり記述した扱いとする。

    USAGE IS OBJECT REFERENCE

インタフェース名 1

一意名 1 の指すオブジェクトが,

インタフェース名 1 を実装していない場合,

EC-OO-CONFORMANCE

例外状態になる。

7) UNIVERSAL

を指定するとき,一意名 1 は次のとおり選択可能指定なしで記述した扱いとする。

    USAGE IS OBJECT REFERENCE

EC-OO-CONFORMANCE

例外状態になることはない。


85

X 3002

:2011 (ISO/IEC 1989:2002)

8.4.2.6 EXCEPTION-OBJECT 

EXCEPTION-OBJECT

は,既定義オブジェクト参照であって,宣言手続き内において現時点の例外オブ

ジェクトを指すのに用いられる。

8.4.2.6.1 

一般形式 

 EXCEPTION-OBJECT

8.4.2.6.2 

構文規則 

1) EXCEPTION-OBJECT

は,受取り側作用対象として指定されてはならない。

2) EXCEPTION-OBJECT

の暗黙の記述は,字類がオブジェクト,項類がオブジェクト参照であり,外部

データ項目で,非限定オブジェクト参照とする。

8.4.2.6.3 

一般規則 

1) EXCEPTION-OBJECT

は,現在の例外オブジェクトを指す。例外オブジェクトが現在の例外と関連し

ていないとき,EXCEPTION-OBJECT はナルに設定される。

2)

ある実行単位中に存在する EXCEPTION-OBJECT の実体は,一つとする。

8.4.2.7 NULL 

NULL

は,既定義オブジェクト参照であって,その内容はオブジェクト参照値のナルとする。

8.4.2.7.1 

一般形式 

 NULL

8.4.2.7.2 

構文規則 

1) NULL

は,受取り側作用対象として指定してはならない。

2) NULL

の暗黙の記述は,字類がオブジェクト,項類がオブジェクト参照である。非限定オブジェクト

参照ではない。

8.4.2.7.3 

一般規則 

1)

既定義オブジェクト参照 NULL の内容は,オブジェクト参照値のナルとする。ナルは,実装者定義の

特異な値であり,いかなるオブジェクトを指すものでもないことが保証されている。

8.4.2.8 SELF

及び SUPER 

SELF

及び SUPER は,既定義オブジェクト参照であり,あるオブジェクトを対象として現在のメソッド

が実行中である場合に,その当該オブジェクトを指す。

8.4.2.8.1 

一般形式 

 SELF

[

クラス名1 OF ] SUPER

8.4.2.8.2 

構文規則 

1)

この一意名の書き方は,メソッド定義の中にだけ指定してもよい。

2)

この一意名の書き方は,受取り側作用対象として指定してはならない。

3) SUPER

は,オブジェクトプロパティ一意名の中のオブジェクトとして,又は INVOKE 文若しくは文

内メソッド呼出しでメソッドを呼び出すためのオブジェクトとしてだけ,指定してもよい。

4)

クラス名 1 は,この一意名の書き方を含んでいるクラス定義の INHERITS 句に指定したクラスの名前

でなければならない。

5)

この一意名の書き方を含むクラス定義の INHERITS 句にクラス名を二つ以上指定しているとき,クラ

ス名 1 を必ず指定しなければならない。

6)

この一意名の書き方を含むクラス定義の INHERITS 句にクラス名を一つだけ指定しているとき,クラ


86

X 3002

:2011 (ISO/IEC 1989:2002)

ス名 1 を指定してもしなくてもよい。

7) SELF

及び SUPER はいずれも,

暗黙の記述は字類がオブジェクトで項類がオブジェクト参照であって,

これらは非限定オブジェクト参照ではない。

8.4.2.8.3 

一般規則 

1) SELF

及び SUPER はいずれも,この SELF 又は SUPER が内部に指定されたメソッドを呼び出すため

に用いられたオブジェクトを指す。

2) SELF

をメソッド呼出しのために指定した場合,メソッドの解決は,実行時に SELF で参照されるオブ

ジェクトの属するクラスに対して定義されたメソッド群に基づいて行われる。

注記  メソッドの解決は,メソッド呼出しを含んでいるクラスに対して定義されているメソッド群

に制限されるわけではない。実行時に SELF で参照されるオブジェクトは,メソッド呼出し

を含んでいるクラスの,下位クラスに属しているかもしれない。ゆえに既定義オブジェクト

参照 SELF を介してのメソッド呼出しには,その他のオブジェクト一意名と同様に,実行時

のオブジェクトが属しているクラスに基づくメソッド束縛の機構が用いられる。

3) SUPER

をメソッド呼出しのために指定した場合,メソッドの解決では,メソッド呼出しを含んでいる

クラス及びそのあらゆる下位クラスにおいて定義されているメソッド群の全てを無視する。

注記  呼び出されるメソッドは,上位クラス中で定義されたものとなる。

4)

クラス名 1 の指定がある場合,メソッドの探索は,クラス名 1 に対して定義されたメソッドだけを包

まなければならない。

8.4.2.9 

オブジェクトプロパティ 

オブジェクトプロパティ(object property)は,情報をオブジェクトに出し入れする特殊構文を提供する。

オブジェクトプロパティを参照するための機構は,GET プロパティメソッド及び SET プロパティメソッド

である。GET プロパティメソッドは,メソッド名段落の GET PROPERTY 指定によって明白に定義される

メソッドか又は PROPERTY 句付きで記述したデータ記述項に対して暗黙に生成されるメソッドとする。

SET

プロパティメソッドは,メソッド名段落の SET PROPERTY 指定によって明白に定義されるメソッド

か又は PROPERTY 句付きで記述したデータ記述項に対して暗黙に生成されるメソッドとする。

8.4.2.9.1 

一般形式 

プロパティ名 1 OF

クラス名1

一意名1

8.4.2.9.2 

構文規則 

1)

プロパティ名 1 は,リポジトリ段落中に指定されているオブジェクトプロパティでなければならない。

2)

一意名 1 は,オブジェクト参照でなければならない。非限定オブジェクト参照も既定義オブジェクト

参照 NULL も指定してはならない。

3)

オブジェクトプロパティを送出し側項目に使用するとき,プロパティ名 1 に対する GET プロパティメ

ソッドが,一意名 1 の指すオブジェクト中に,又はクラス名 1 のクラスのファクトリオブジェクト中

に,存在しなければならない。

4)

オブジェクトプロパティを受取り側項目に使用するとき,プロパティ名 1 に対する SET プロパティメ

ソッドが,一意名 1 の指すオブジェクト中に,又はクラス名 1 のクラスのファクトリオブジェクト中

に,存在しなければならない。

5)

送出し側項目に使用するオブジェクトプロパティの記述は,その GET プロパティメソッドの返却項目

の記述と同じとする。このオブジェクトプロパティは,その記述をもつデータ項目を送出し側項目と


87

X 3002

:2011 (ISO/IEC 1989:2002)

して指定して正しい箇所であれば,どこに指定してもよい。

6)

受取り側項目に使用するオブジェクトプロパティの記述は,その SET プロパティメソッドの USING

パラメタの記述と同じとする。このオブジェクトプロパティは,その記述をもつデータ項目を受取り

側項目として指定して正しい箇所であれば,どこに指定してもよい。

7) GET

プロパティメソッドの RETURNING 指定に書いた項目のデータ記述は,SET プロパティメソッド

の USING パラメタに指定した項目のデータ記述と同じでなければならない。

8.4.2.9.3 

一般規則 

1)

オブジェクトプロパティが送出し側項目としてだけ用いられる場合,一時的仮想データ項目 temp-1 が

代わりに用いられる。このプロパティの値は,関連する GET プロパティメソッドを INVOKE 文の規

則に従って呼び出してその返却値を temp-1 に入れたかのようにして決定される。temp-1 のデータ記述

は,GET プロパティメソッドの RETURNING 指定に書いた項目のデータ記述と同じとする。

2)

オブジェクトプロパティが受取り側項目としてだけ用いられる場合,一時的仮想データ項目 temp-2 が

代わりに用いられる。このプロパティの値は,関連する SET プロパティメソッドを INVOKE 文の規

則に従って呼び出すときに引数として temp-2 を渡したかのようにして設定される。temp-2 のデータ記

述は,SET プロパティメソッドの USING パラメタに指定した項目のデータ記述と同じとする。

3)

オブジェクトプロパティが送出し側項目及び受取り側項目の両方として用いられる場合,一時的仮想

データ項目 temp-1 及び temp-2 が代わりに用いられる。temp-1 及び temp-2 は同じデータ項目であって

temp-2

が temp-1 を再定義する。送出し動作では,一般規則 1)  の送出し側項目に対する動作と同じ方

法で,プロパティの値が決まる。受取り動作では,一般規則 2)  の受取り側項目に対する動作と同じ

方法で,プロパティの値が設定される。temp-1 及び temp-2 のデータ記述は,GET プロパティメソッ

ドの RETURNING 指定に書いた項目のデータ記述項と同じとする。

8.4.2.10 

既定義アドレス 

NULL

は,字類がポインタの既定義アドレスである。

8.4.2.10.1 

一般形式 

 NULL

8.4.2.10.2 

構文規則 

1)

この書き方は,INITIALIZE 文若しくは SET 文中の送出し側作用対象として,プログラム原型形式の

CALL

文,関数原型形式の関数一意名若しくはメソッド呼出しの引数として,又はデータポインタ若

しくはプログラムポインタの比較条件の中でだけ用いてもよい。

8.4.2.10.3 

一般規則 

1)

データポインタに関連している場合,既定義アドレス NULL は,字類がデータポインタであってその

内容がアドレス値ナルであるデータ項目を指す。データアドレス値ナルは,いかなるデータ項目のア

ドレスを表すものでもないことが保証された実装者定義の値である。

2)

プログラムポインタに関連している場合,既定義アドレスの NULL は,字類がプログラムポインタで

あってその内容がアドレス値ナルであるデータ項目を指す。プログラムアドレス値ナルは,いかなる

プログラムのアドレスを表すものでもないことが保証された実装者定義の値である。

8.4.2.11 

データアドレス一意名 

データアドレス一意名は,データ項目のアドレスを含んでいる一意なデータ項目を指す。

8.4.2.11.1 

一般形式 

 ADDRESS OF

一意名 1


88

X 3002

:2011 (ISO/IEC 1989:2002)

8.4.2.11.2 

構文規則 

1)

一意名 1 は,ファイル節,作業場所節,局所記憶節又は連絡節中で定義されたデータ項目でなければ

ならない。一意名 1 が,オブジェクト又はファクトリオブジェクトの,作業場所節又はファイル節中

で定義されたものであってはならない。

2)

一意名 1 が,オブジェクト参照又は強い型付けの集団項目に従属する基本項目であってはならない。

3)

一意名 1 がビットデータ項目であるとき,一意名 1 の記述は次のとおりでなければならない。

a)

一意名 1 の添字付け及び部分参照は,固定小数点数字定数,又は全ての作用対象が固定小数点数字

定数でべき乗演算子の指定のない算術式。

b)

バイト境界にけたよせされている。

4)

一意名 1 が強い型付けの集団項目であるとき,一意名 1 は,STRONG 指定付きで記述された型宣言を

参照する TYPE 句によって定義されていなければならない。

5)

この一意名の書き方を,受取り側作用対象として指定してはならない。

8.4.2.11.3 

一般規則 

1)

データアドレス一意名は一意なデータ項目を生成する。その字類はポインタ,

項類はデータポインタ,

その内容は一意名 1 のアドレスになる。

2)

一意名 1 が強い型付けの集団項目であるか又は制限付きデータポインタであるとき,データアドレス

一意名は,一意名 1 の型に制限されたデータポインタとなる。

8.4.2.12 

プログラムアドレス一意名 

プログラムアドレス一意名は,プログラムのアドレスを含んでいる一意なデータ項目を指す。

8.4.2.12.1 

一般形式 

 ADDRESS OF PROGRAM

⎪⎧

⎪⎫

一意名1

定数1

プログラム原型名1

8.4.2.12.2 

構文規則 

1)

一意名 1 は,字類が英数字又は各国文字でなければならない。

2)

定数 1 は,英数字定数又は各国文字定数でなければならない。

3)

プログラム原型名 1 は,リポジトリ段落中に指定したプログラム原型でなければならない。

4)

この一意名の書き方を,受取り側作用対象として指定してはならない。

8.4.2.12.3 

一般規則 

1)

プログラムアドレス一意名は一意なデータ項目を生成する。その字類はポインタ,項類はプログラム

ポインタ,内容は次のいずれかで識別されるプログラムのアドレスになる。

a)

一意名 1 のデータ項目の内容

b)

定数 1 の値

c)

プログラム原型名 1

一意名 1 又は定数 1 の指定があるときに,

この値を用いて参照されるプログラムを識別する方法は,

8.3.1.1.1

(利用者定義語)による。

2)

プログラムは,COBOL で書いたものでもよく,実装者が可能であると宣言している他の言語で書い

たものでもよい。COBOL プログラムでは,プログラム名段落中の外部公開名で識別される,最も外

側のプログラムのアドレスとする。非 COBOL プログラムでは,アドレスとそれに関連するプログラ

ムとの関係は実装者定義とする。


89

X 3002

:2011 (ISO/IEC 1989:2002)

3)

プログラム原型名 1 の指定がある場合,プログラムアドレス一意名は,プログラム原型名 1 に制限さ

れたプログラムポインタ特性をもつ。

4)

実行時システムがプログラムを位置付けできないとき,EC-PROGRAM-NOT-FOUND 例外状態になり,

このアドレス一意名の値は既定義アドレスの NULL になる。

8.4.2.13 

行数カウンタ 

一意名 LINAGE-COUNTER は,ファイル記述項に LINAGE 句があると生成される。

8.4.2.13.1 

一般形式 

 LINAGE-COUNTER

{

}

 IN 
 OF

ファイル名1

8.4.2.13.2 

構文規則 

1) LINAGE-COUNTER

は,手続き部の文の中でだけ参照してもよい。

2)

一意名 LINAGE-COUNTER は,受取り側作用対象として参照してはならない。

3) LINAGE-COUNTER

の修飾に関する要件は,8.4.1.1(修飾)による。

8.4.2.13.3 

一般規則 

1) LINAGE-COUNTER

は,一時的な符号なし整数データ項目を参照するものであり,その字類及び項類

は数字であり,その大きさは LINAGE 句に指定したページの大きさと等しい。

2)

一意名 LINAGE-COUNTER の意味は,13.16.32(LINAGE 句)の一般規則 7)  による。

8.4.2.14 

報告書カウンタ 

一意名 PAGE-COUNTER 及び LINE-COUNTER は,各々の報告書に対して自動的に生成され報告書ごと

に独立して存在する。

8.4.2.14.1 

一般形式 

 PAGE-COUNTER

 LINE-COUNTER

 IN

 OF

報告書名1

8.4.2.14.2 

構文規則 

1)

報告書節の中で,PAGE-COUNTER 及び LINE-COUNTER は,SOURCE 句だけで参照してもよい。手

続き部の中で,PAGE-COUNTER 及び LINE-COUNTER は,整数データ項目を書いてもよい文脈であ

ればどこでもよい。

2) PAGE-COUNTER

及び LINE-COUNTER に対する修飾の要件は,8.4.1.1(修飾)による。

注記 PAGE-COUNTER 及び LINE-COUNTER は報告書ごとに別々に保守されるため,ページ番号

に正しい値を割り当てること,及び報告集団がページ限界中に正しく印字されることを保証

するのは,プログラマの責任である。

3) LINE-COUNTER

は,受取り側作用対象として参照してはならない。

8.4.2.14.3 

一般規則 

1) PAGE-COUNTER

及び LINE-COUNTER は,

一時的な符号なし整数データ項目を参照するものであり,

その字類及び項類は数字である。これらは報告書ごとに維持される。

2) INITIATE

文を実行すると,対応する報告書の PAGE-COUNTER の初期値に 1 が設定され,その値はペ

ージ送りのたびに 1 ずつ加算される。RESET 指定付きの NEXT GROUP 句のある報告集団が印字され

るとき,その値は 1 に戻される。

3) INITIATE

文を実行すると,対応する報告書の LINE-COUNTER の初期値に 0 が設定され,その値はペ

ージ送りのたびに 0 に戻される。


90

X 3002

:2011 (ISO/IEC 1989:2002)

4)

報告書の各行が印字される時点の LINE-COUNTER の値は,その行が印字されたページ上の行位置を

指す。報告集団を印字した後の LINE-COUNTER の値は,最後の行が印字された行位置と同じになる

が,ただし,その報告集団に NEXT GROUP 句の指定があれば,その場合の LINE-COUNTER の最終

値は,NEXT GROUP 句の一般規則によって規定される。

5) PAGE-COUNTER

及び LINE-COUNTER の値は,印字項目をもたない報告集団の処理及び SUPPRESS

文で印刷の抑制された報告集団の処理によって,影響を受けることはない。

8.4.3 

条件名 

条件名(condition-name)は 2 種類とする。一つは,関連するデータ項目がもってもよい値の集合を明ら

かにするために用いる。もう一つは,実装者定義のスイッチのオン(on)状態又はオフ(off)状態に関連

付けられる。

レベル番号 88 は,条件名と,特定の値,値の集合又は値の範囲とを結び付ける。この条件名は,それが

関連付けられているデータ項目に従属し,そのデータ項目を,条件変数(conditional variable)と呼ぶ。条

件の中でこの条件名を参照すると,8.8.4.1.4(条件名条件)の規定のとおり,関連する条件変数の値が,

条件名で識別される値の集合のいずれかに等しいことを判定する条件式の略記法となる。この種の条件名

は 13.14(データ記述項)で規定する。この種の条件名を SET 文で用いて,その条件名が真又は偽のいず

れかになるような値を,関連する条件変数へと転記することもできる。

特殊名段落中では,条件名は実装者定義のスイッチのオン(on)状態又はオフ(off)状態を識別する。

ある条件中でこの条件名を参照すると,8.8.4.1.5(スイッチ状態条件)の規定のとおり,関連するスイッ

チが,条件名に関連する“オン”状態又は“オフ”状態であることを断定する。この条件名を SET 文で用

いて,関連するスイッチを“オン”状態又は“オフ”状態に設定することもできる。

8.4.3.1 

一般形式 

書き方 1(スイッチ状態条件名)

条件名 1

書き方 2(添字修飾付き条件名)

添字修飾付き条件名 1

8.4.3.2 

構文規則 

書き方 1

1)

条件名 1 は,特殊名段落においてスイッチ名に関連付けられていなければならない。

書き方 2

2)

添字修飾付き条件名 1 は,8.4.1.1(修飾)による。

8.4.4 

明示参照及び暗黙参照 

ソース要素は,手続き部の文でデータ項目を明示的に参照しても暗黙に参照してもよい。明示参照

(explicit reference)となるのは,参照される項目の名前を手続き部の文に書いた場合とする。暗黙参照

(implicit reference)となるのは,参照される項目の名前を文には書いていないのに手続き部の文がその項

目を参照する場合とする。暗黙参照は,PERFORM 文の実行中に VARYING 指定,AFTER 指定又は UNTIL

指定中に書いた一意名又は指標名の指す指標又はデータ項目を,その PERFORM 文に関連する制御機構が

初期化したり変更したり評価したりする場合にも起きる。このように暗黙参照が起きるのは,そのデータ

項目がその文の実行に参与する場合だけとする。

8.4.5 

名前の有効範囲 

ソース要素が別のソース要素の内部に直接又は間接に含まれている場合に,各々のソース要素は対象を


91

X 3002

:2011 (ISO/IEC 1989:2002)

命名するために同じ利用者定義語を用いてもよく,これはその利用者定義語が他のソース要素で用いられ

たか否かには依存しない[8.3.1.1.1(利用者定義語)参照]

。同じ名前をもつ対象が二つ以上ある場合,そ

のような名前をあるソース要素中で参照すると,利用者定義語の種類がたとえ異なっていても,参照され

る対象はそのソース要素中で記述されたものであり,同じ名前をもつが別なソース要素中で記述されたも

のではない。

プログラム名とメソッド名とを除き,あるソース要素からそれに含まれるソース要素の中で宣言された

名前を参照してはならない。

次の種類の利用者定義語は,翻訳群全体を通じて参照してもよい。

−  登録集名 library-name

−  原文名 text-name

次の種類の利用者定義語は,宣言されたソース要素中の文でだけ参照してもよい。

注記  つまり,これらは常に局所名である。

−  段落名 paragraph-name

−  節名 section-name

次の種類の利用者定義語は,構成節で宣言された場合,その節を含んでいるソース要素又はそれに含ま

れるソース要素中の,文及び記述項でだけ参照してもよい。

注記  つまり,これらは常に大域名である。

−  符号系名 alphabet-name

−  字類名

class-name (for truth value proposition)

−  条件名(構成節で宣言)  condition-name (declared in a configuration section)

−  現地特性名 locale-name

−  呼び名 mnemonic-name

−  順序付け名 ordering-name

−  記号文字 symbolic-character

次の種類の利用者定義語に適用する,宣言及び参照に対する特別な規約は,8.4.5.1(局所名及び大域名)

8.4.5.10(プロパティ名の有効範囲)による。

−  クラス名

class-name (for object orientation)

−  翻訳変数名 compilation-variable-name

−  条件名(データ部で宣言)condition-name (not declared in a configuration section)

−  定数名 constant-name

−  データ名 data-name

−  ファイル名 file-name

−  関数原型名 function-prototype-name

−  指標名 index-name

−  インタフェース名 interface-name

−  メソッド名 method-name

−  パラメタ名 parameter-name

−  プログラム名 program-name

−  プログラム原型名 program-prototype-name

−  プロパティ名 property-name


92

X 3002

:2011 (ISO/IEC 1989:2002)

−  レコードキー名 record-key-name

−  レコード名 record-name

−  報告書名 report-name

−  画面名 screen-name

−  型名 type-name

−  利用者関数名 user-function-name

通信記述名(廃要素)は,それが宣言された通信節を含んでいるソース要素中の文又は記述項でだけ参

照してもよい。

注記  つまり,これらは常に局所名である。

8.4.5.1 

局所名及び大域名 

局所名は,それが宣言されたソース要素の中でだけ参照してもよい。

大域名は,それが宣言されたソース要素及びそれに直接又は間接に含まれているソース要素の中で参照

してもよい。

あるソース要素(ソース要素 B)が別のソース要素(ソース要素 A)中に直接に含まれている場合,両

方のソース要素が同じ利用者定義語を用いて名前を定義していてもよい。さらに,ソース要素 A が別のソ

ース要素中に含まれていてもよいし,その別のソース要素が同じ利用者定義語を用いて名前を定義してい

てもよい。そのように重複した名前をソース要素 B の中で参照した場合,参照される対象は次の規則を用

いて決まる。

1)

参照される対象の決定に用いられる名前の集合は,ソース要素 B の中で定義された全ての名前,ソー

ス要素 A の中で定義された全ての大域名,及びソース要素 A を直接又は間接に含むソース要素の中で

定義された全ての大域名からなる。この名前の集合を用いて,通常の修飾の規則及びその他の一意参

照の規則を,一つ以上の対象が識別されるまで適用する。

2)

識別された対象が唯一のとき,それが参照される対象である。

3)

識別された対象が二つ以上のとき,ソース要素 B に局所的な名前をもつ対象が二つ以上あってはなら

ない。ソース要素 B に局所的な名前をもつ対象がないとき又は一つあるとき,次の規則を適用する。

a)

その名前がソース要素 B で宣言されているとき,ソース要素 B の対象が参照される対象である。

b)

そうではなく,ソース要素 A が別のソース要素に含まれているとき,参照される対象は次のとおり

とする。

1.

その名前がソース要素 A で宣言されているとき,ソース要素 A の対象。

2.

その名前がソース要素 A では宣言されず,かつ,ソース要素 A を含むソース要素で宣言されてい

るとき,ソース要素 A を含むソース要素中の対象。この規則は,唯一の有効な名前が見つかるま

で,更にそのソース要素を含むソース要素に適用される。

8.4.5.1.1 

条件名,定数名,データ名,ファイル名,レコード名,報告書名,画面名及び型名の有効範囲 

定数名,ファイル名,レコード名,報告書名,画面名又は型名を,GLOBAL 句付きで記述すれば,それ

は大域名とする。定数名,データ名又はファイル名を,ファクトリであれインスタンスであれ,オブジェ

クト定義のソース要素中で記述すれば,それは大域名とする。大域名に従属するデータ名及び画面名は,

全て大域名とする。大域名に関連する条件名は,全て大域名とする。

条件名,定数名,データ名,ファイル名,レコード名,報告書名,画面名又は型名が大域名でない場合,

それは局所名とする。

条件名,定数名,データ名,ファイル名,レコード名,報告書名,画面名及び型名に対して単一ソース


93

X 3002

:2011 (ISO/IEC 1989:2002)

要素が割り当てる名前の一意性を管理する規則は,この規格の他の箇所で規定する[8.3.1.1.1(利用者定

義語)参照]

8.4.5.1.2 

指標名の有効範囲 

大域属性をもつデータ項目に指標名付きで記述された表が含まれているとき,その指標名も大域属性を

もつ。したがって,指標名の有効範囲は,その指標名付きで記述した表を命名しているデータ名の有効範

囲と同一である。

8.4.5.1.3 

レコードキー名の有効範囲 

索引ファイル用のファイル管理記述項の ALTERNATE RECORD KEY 句又は RECORD KEY 句の

SOURCE

指定によって定義されるレコードキー名は,そのファイル用のファイル記述項に GLOBAL 句の

指定があれば大域名であり,さもなければレコードキー名は局所名である。

8.4.5.1.4 PAGE-COUNTER

及び LINE-COUNTER の有効範囲 

PAGE-COUNTER

及び LINE-COUNTER は,関連する報告書の報告書記述(RD)項に GLOBAL 句の指

定があれば大域名であり,さもなければ局所名である。

8.4.5.1.5 LINAGE-COUNTER

の有効範囲 

LINAGE-COUNTER

は,関連するファイルのファイル記述項に GLOBAL 句の指定があれば大域名であ

り,さもなければ局所名である。

8.4.5.2 

プログラム名の有効範囲 

プログラムのプログラム名は,そのプログラムの見出し部のプログラム名段落中で宣言される。プログ

ラム名を参照してもよい箇所は,CALL 文,CANCEL 文,プログラムアドレス一意名,及びプログラム終

了標だけとする。同一の最も外側のプログラムの内部に直接又は間接に含まれている複数個のプログラム

に割り当てられるプログラム名は,最も外側のプログラムの内部で一意でなければならない。

次の規則は,CALL 文,CANCEL 文及びプログラムアドレス一意名に対してプログラム名の有効範囲を

規定する。

1)

プログラム A が共通属性をもたず,別のプログラム B に直接に含まれるとき,プログラム A の名前

を参照する文を指定してもよい箇所は,プログラム B,及び再帰属性をもつ場合のプログラム A 自体

の中だけである。

2)

プログラム A が共通属性をもって,別のプログラム B に直接に含まれるとき,プログラム A の名前

を参照する文を指定してもよい箇所は,プログラム B 及びそれに直接又は間接に含まれるプログラム

の中だけである。ただし,プログラム A が再帰属性をもつ場合に限り,プログラム A 及びそれに含ま

れるプログラムの中でも参照してもよい。

3)

プログラム A が最も外側のプログラムであるとき,その名前は実行単位のあらゆるソース要素中の文

から参照してもよい。

8.4.5.3 

クラス名及びインタフェース名の有効範囲 

ソース要素中で参照されるクラスのクラス名は,それを含んでいるクラス定義の名前であるか,又はそ

のソース要素若しくはそれを含んでいるソース要素のリポジトリ段落中で宣言されているか,いずれかで

なければならない。

翻訳群内のクラス定義は,一意なクラス名をもたなければならない。

ソース要素の中で参照されるインタフェースのインタフェース名は,それを含んでいるインタフェース

定義の名前であるか,又はそのソース要素若しくはそれを含んでいるソース要素のリポジトリ段落中で宣

言されているかのいずれかでなければならない。


94

X 3002

:2011 (ISO/IEC 1989:2002)

翻訳群内のインタフェース定義は,一意なインタフェース名をもたなければならない。

ソース要素のリポジトリ段落中で宣言されたクラス名又はインタフェース名は,そのソース要素の中,

及びそれに含まれているあらゆるソース要素の中で用いてよい。

8.4.5.4 

メソッド名の有効範囲 

メソッドのメソッド名は,メソッド名段落中で宣言される。メソッド名は,INVOKE 文,文内呼出し及

びメソッド終了標でだけ参照してもよい。

クラス定義中で宣言されたメソッドのメソッド名は,そのクラス定義の中で一意でなければならない。

下位クラス中で宣言されたメソッドは,上位クラス中のメソッドと,名前が同じであってもよくて,これ

は 11.6(メソッド名段落)の条件による。

インタフェース定義中で宣言されたメソッドのメソッド名は,そのインタフェース定義の中で一意でな

ければならない。継承する側のインタフェース中で宣言されたメソッドは,継承される側のインタフェー

ス中のメソッドと,名前が同じであってもよくて,これは 11.6(メソッド名段落)の条件による。

8.4.5.5 

関数原型名の有効範囲 

ソース要素中で参照される関数原型名は,それを含んでいる関数定義の利用者関数名であるか又はリポ

ジトリ段落中で宣言された関数原型名であるか,いずれかでなければならない。

8.4.5.6 

利用者関数名の有効範囲 

利用者関数名を参照してもよい箇所は,同じ翻訳群内でその関数定義に後続するソース要素のリポジト

リ段落中とする。また,外部リポジトリが更新される場合,それ以降に翻訳されるソース単位のうち,そ

の利用者関数名を関数原型名としてリポジトリ段落中に指定した,あらゆるソース単位中で参照してもよ

い。

8.4.5.7 

プログラム原型名の有効範囲 

ソース要素の中で参照されるプログラム原型名は,それを含んでいるプログラム定義のプログラム名で

あるか又はリポジトリ段落中で宣言されたプログラム原型名であるか,いずれかでなければならない。

8.4.5.8 

翻訳変数名の有効範囲 

翻訳変数名の有効範囲は,その定義の地点から,翻訳群の終わりまでである。翻訳変数名は,翻訳指示

中及び定数記述項中で参照してもよい。

8.4.5.9 

パラメタ名の有効範囲 

パラメタ名を参照してもよい箇所は,USING 指定中にそのパラメタ名を指定しているクラス定義又はイ

ンタフェース定義内だけとする。これは,11.2(クラス名段落)又は 11.5(インタフェース名段落)の規

則による。

8.4.5.10 

プロパティ名の有効範囲 

あるソース要素中で参照されるプロパティのプロパティ名は,そのソース要素の又はそれを含んでいる

ソース要素のリポジトリ段落中で宣言されていなければならない。

8.5 

データ記述及び表現形式 

8.5.1 

機種によらないデータ記述 

データをできるだけ機種によらないものにするため,データの特性又は性質をデータ部において記述す

るのに用いられる形式は,計算機内部又は特定外部媒体上でのデータの格納方法から十分に独立したもの

となっている。実装系の用意しているデータの格納方法が複数種類ある場合は,データ記述項に書いた句

によって記憶域内でのデータの表現形式が決まる。実装者は,COBOL を実装した計算機上で使用可能な

表現形式の完全な仕様を準備しておく。


95

X 3002

:2011 (ISO/IEC 1989:2002)

16

進形式である場合を除き,定数の内容は翻訳時に分かっている計算機符号化文字集合で記述される。

実行時に計算機上で別な符号化文字集合が有効になる場合,定数の内容が実行時の計算機符号化文字集合

へと変換される[8.1.1(計算機符号化文字集合)参照]

。16 進定数形式は,実行時に用いられるビットパ

ターンを指定する。

8.5.1.1 

ファイル及びレコード 

COBOL

には,ファイルの物理的な側面を記述するための言語要素が幾つかある。論理ファイルを物理

ファイルに関連付けるのに用いられる外部名,及びファイル媒体の物理的な制限に沿った論理レコードの

ブロック化指定などである。

大部分の箇所で COBOL が取り扱うのは,論理ファイルである。COBOL の入出力文は,論理レコード

を参照する。それぞれの論理レコードは,あるレコードの特性を記述する一組のデータ記述項からなる。

それぞれのデータ記述項は,レベル番号に,必要なときに指定するデータ名が続き,必要に応じた一連の

独立な句が続く。

作業場所節,局所記憶節又は連絡節中に記述したデータ項目群もまた,レコード記述項を用いて,論理

レコードへと集団化することができる。

ファイルに関しては,物理的な側面,物理ファイルと論理ファイルとの関係,及び論理ファイルの特性

も含めて,9.1(ファイル)において規定する。

8.5.1.2 

レベル 

レベルの概念は,レコードの構造の中に本質的に備わっている。この概念は,データを参照するために

レコードを細分する必要から生じる。いったん細分してから,もっと詳細なデータ参照を許すようにする

ため,更に細分してもよい。

レコードの最も基本的な細分,つまりそれ以上は細分できない部分を,基本項目と呼ぶ。したがって,

レコードは基本項目の並びから構成されているといえる。また,レコードそれ自体が基本項目であること

もある。

一群の基本項目を参照するために,これらの基本項目は集団へとまとめられる。それぞれの集団は,複

数の基本項目からなる並びに名前を付けたものである。幾つかの集団を更にまとめて複数の集団からなる

集団を作ってもよい。ある基本項目は,集団の階層の中で複数の集団に属していてもよい。

8.5.1.2.1 

レベル番号 

レベル番号の体系は,基本項目及び集団項目の構成を示すものである。レコードは最も包括的なデータ

項目であるから,レコードのレベル番号は 1 から始まる。データ項目の包括度が低くなるのに従い,デー

タ項目に割り当てられるレベル番号は大きくなる(連続番号とは限らない)が,49 より大きくはならない。

特別なレベル番号として 66,77 及び 88 があり,これらに前述の規則は当てはまらない。

ある集団項目は,それ以下のレベル番号が現れるまでの,全ての集団項目及び基本項目を包括する。集

団項目に直接に従属する項目の記述に用いるレベル番号は,全て数値の等しいレベル番号であって,その

集団項目の記述に用いたレベル番号より大でなければならない。

レベルの概念が実際には適用されない記述項があり,それは次の 3 種類とする。

1) RENAMES

句によって導入される基本項目又は集団項目を指定する記述項。

2)

作業場所節,局所記憶節,及び連絡節の独立データ項目を指定する記述項。

3)

条件名を指定する記述項。

データ項目を再編成するために,RENAMES 句によって項目を記述している記述項には,特別なレベル

番号 66 が割り当てられる。


96

X 3002

:2011 (ISO/IEC 1989:2002)

独立データ項目であって,他の項目の細分ではなく,それ自体が細分されもしない項目を指定している

記述項には,特別なレベル番号 77 が割り当てられる。

条件変数の特定な値に関連付けられた条件名を指定している記述項には,

特別なレベル番号 88 が割り当

てられる。

8.5.1.3 

文字処理の制限 

実装系で使える文字集合の各符号化文字は,実行中に 1 個の文字位置として処理される。計算機文字集

合として JIS X 0221 が選定された場合は,次に示す処理上の制限が適用される。

1)  JIS X 0221

に規定される合成列の基底文字及び後続する結合文字は,それぞれが単一の文字位置とし

て扱われる。

2)  JIS X 0221

の UTF-16 形式に規定される 4 オクテット列の R オクテット(前半の 2 オクテット)及び

C

オクテット(後半の 2 オクテット)は,それぞれが単一の文字位置として扱われる。

注記  JIS X 0221 の UTF-16 形式は符号化文字集合の一つであって,そこでは各コード要素(つま

り“コード値”

)が 2 オクテットからなる。基本文字,拡張文字及び記号のうち,全てではな

いが多くの部分は 1 個のコード要素で表現される。2 オクテットの符号化文字集合で定義で

きる実体群よりも多数の実体群を収容するため,JIS X 0221 では,次に示す技法を用いてい

る。

−  抽象文字又はテキスト実体の幾つかを,複数個のコード要素の“結合列”として定義す

る。これは,一つの 2 オクテット基底文字と幾つかの 2 オクテット結合文字とで一つの

完全な実体を形成するものであり,まとめて“合成列”と呼ぶ。

−  抽象文字又はテキスト実体の幾つかを,コード要素 2 個からなる“サロゲートペア”と

して定義する。これは,抽象文字又はテキスト実体の前半と後半を形成するものである。

これらの技法は,固定幅 2 オクテットのコード要素群であるデータの処理効率を高める一

方で,不適正に操作するとデータが破壊される危険性を含んでいる。更に理解を深めるには,

JIS X 0221

を参照する。

COBOL

は UTF-16 を,JIS X 0221 が規定する“UCS-2 の実装 (U)”として実装・提供する。

つまり,

COBOL

はサロゲートペアを操作したり認識したりする特殊な方法を提供しないし,

合成列を認識する方法も提供しない。UTF-16 の 2 オクテットコード要素の各々は,COBOL

では,それ自体が 1 個の文字であるかのように取り扱われる。それによって発生する切捨て

又は置換が,応用プログラムの要請に整合していることを保証するのは,利用者の責任であ

る。

8.5.1.4 

算術符号 

算術符号(algebraic sign)は,二つの部類に分かれる。一つは演算符号(operational sign)であって,こ

れは符号付き数字データ項目及び符号付き数字定数に関連付けられ,その代数的な特性を示す。もう一つ

は編集用符号(editing sign)であって,編集データ項目中で項目の符号を表示する。

SIGN

句を用いてプログラマは明示的に演算符号の位置を記述してもよい。この句は書いても書かなく

てもよいが,SIGN 句を書かないときの演算符号の表現は,実装者定義とする。

編集用符号は,PICTURE 句の符号編集用記号を用いて,データ項目に挿入される。

8.5.1.5 

記憶域内でのデータのけたよせ 

8.5.1.5.1 

英数字集団及び用途 DISPLAY のデータ項目のけたよせ 

英数字集団及び用途 DISPLAY のデータ項目は,自然な英数字文字境界にけたよせされる。これは処理


97

X 3002

:2011 (ISO/IEC 1989:2002)

系のアーキテクチャにおいてバイト境界に一致する。

英数字集団項目の先頭のけたよせと,その集団内の先頭項目との相対位置関係は,実装者定義とする。

ただし例外として,先頭項目が各国文字データ項目である場合か,字類がブール,オブジェクト又はポイ

ンタのデータ項目である場合は,集団のけたよせがその先頭項目と一致する。

8.5.1.5.2 

用途 NATIONAL のデータ項目のけたよせ 

用途 NATIONAL のデータ項目は,自然な各国文字境界にけたよせされる。

集団項目の先頭のけたよせ及びその集団内の先頭項目のけたよせは,先頭項目の用途が NATIONAL の

場合,記憶域中での同じ位置となる。

8.5.1.5.3 

用途 BIT のデータ項目のけたよせ 

基本ビットデータ項目及びビット集団項目のレコード内でのけたよせは,SYNCHRONIZED 句 も

ALIGNED

句も指定がない場合,次に示す項目については,記憶域中の次のビット位置となる。

−  同じレベルの基本ビットデータ項目又はビット集団項目の直後にある基本ビットデータ項目

−  同じレベルの基本ビットデータ項目又はビット集団項目の直後にあるビット集団項目

これ以外の全てのビットデータ項目についてはレコード内でのけたよせは,SYNCHRONIZED 句の指定

がない場合,使用可能な先頭バイトの先頭ビット位置となる。

レベル 1 又はレベル 77 の基本ビットデータ項目及びレベル 1 のビット集団項目のけたよせは,

バイトの

先頭ビット位置となる。

暗黙の FILLER ビット位置が,次の場合に生成される。

− SYNCHRONIZED 句付きで記述したビットデータ項目に対しての実装者定義とする場合。FILLER ビ

ット位置に関する位置付け規則は,実装者定義とする。

−  英数字集団項目の中,強い型付けの集団項目の中,又はビット集団項目の中で,ビットデータ項目の

後に,その集団内の次の項目に要求される自然境界まで,先に進めてけたよせする必要がある場合。

この FILLER ビット位置の暗黙の記述は,無名の基本ビットデータ項目で,必要なビット数をもち,

その集団内の次の項目と同じレベルをもつものである。

−  英数字集団項目又は強い型付けの集団項目であるレコード内の最終データ項目であるビットデータ項

目より後,その文字数を整数倍にするためにビット数を増やす必要がある場合。この FILLER ビット

位置の暗黙の記述は,無名の基本ビットデータ項目で,必要なビット数をもち,そのレベル番号は最

終項目が従属するビットデータ項目の階層系列中での最高レベルである。そのような上位項目がない

とき,レコード中の最終データ項目と同じレベルである。

注記  レコードの全体がビット集団である場合の末尾,レベル 77 項目の末尾,それにレベル 1 の基

本項目の末尾には,FILLER が生成されない。

集団項目の先頭のけたよせ及びその集団項目内の先頭項目のけたよせは,先頭項目がビットデータ項目

である場合,記憶域中での同じ位置となる。

8.5.1.5.4 

実行用コードの効率を高めるための項目のけたづめ 

計算機の記憶装置には,語境界,半語境界,バイト境界のように,自然な番地付け境界が記憶装置中に

ある構成のものがある。データの格納方法は,実行時モジュールが決定し,記憶装置中の自然な番地付け

境界に合わせる必要はない。

しかしながら,データが自然な番地付け境界に合わせて格納されていると,算術演算,添字付けなどで

データを用いるときの助けになる場合がある。特に,二つ以上のデータ項目の部分が隣接する二つの自然

境界の間に現れたり,一つのデータ項目が自然境界をまたいでいたりすると,実行時のデータのアクセス


98

X 3002

:2011 (ISO/IEC 1989:2002)

及び格納に余分な機械命令が必要になることがある。

余分な機械命令の実行を回避するように,これらの自然境界に合わせてデータ項目を配置することを,

けたづめ(synchronization)と呼ぶ。

けたづめは,次の二つの方法で行うことができる。

1) SYNCHRONIZED

句を使用する。

2) SYNCHRONIZED

句を使用せず,適切な自然境界を認識して,それに合わせてデータを並べる。

特殊なけたよせ方法を用意している実装者は,解釈の仕方を厳密に規定しなければならない。そのよう

な項目が集団項目の中にある場合,

その集団項目を作用対象に用いている文の結果に影響することがある。

特殊なけたよせ方法を用意している実装者は,暗黙の FILLER の効果及びこれらの集団項目を参照してい

る文の意味を記述しなければならない。

8.5.1.5.5 

強い型付けの集団項目のけたよせ 

強い型付けの集団項目は,自然な英数字文字境界にけたよせされる。これは処理系のアーキテクチャに

おいてバイト境界に一致する。

強い型付けの集団項目の先頭の,その集団内の先頭の項目に対する相対的なけたよせは実装者定義とす

るが,次の例外がある。

−  先頭項目が各国文字集団項目であるか,

先頭項目の字類がブール,

オブジェクト又はポインタの場合,

集団のけたよせは先頭項目と一致しなければならない。

−  集団内部に含まれる基本項目のけたよせは,8.5.3(型)が規定する本質的な特徴を損なわないもので

なければならない。

8.5.2 

データ項目及び定数の字類及び項類 

データ項目及び定数は,それぞれ字類及び項類をもつ。

強い型付けの集団項目の字類及び項類は両方とも,その集団項目のデータ記述にある TYPE 句に指定し

た型名とする。強い型付けでない集団項目の字類及び項類は,次による。

−  英数字集団項目のもつ字類及び項類は,英数字(alphanumeric)である。

−  ビット集団項目のもつ字類及び項類は,ブール(boolean)である。

−  各国文字集団項目のもつ字類及び項類は,各国文字(national)である。

英数字集団項目は,用途が DISPLAY であるかのように扱われる。

基本データ項目の項類は,その記述に依存して異なる。基本データ項目の字類は,その項類に関係する

表 3(データ項目に対する字類及び項類の関係)参照]。


99

X 3002

:2011 (ISO/IEC 1989:2002)

表 3−データ項目に対する字類及び項類の関係 

字類  (Class)

項類  (Category)

英字

(Alphabetic)

英字

(Alphabetic)

英数字

(Alphanumeric)

英数字

(Alphanumeric)

英数字編集

(Alphanumeric-edited)

数字編集

(Numeric-edited)

(用途が DISPLAY の場合)

ブール

(Boolean)

ブール

(Boolean)

指標

(Index)

指標

(Index)

各国文字

(National)

各国文字

(National)

各国文字編集

(National-edited)

数字編集

(Numeric-edited)(用途が NATIONAL の場

合)

数字

(Numeric)

数字

(Numeric)

オブジェクト (Object)

オブジェクト参照

(Object-reference)

ポインタ

(Pointer)

データポインタ

(Data-pointer)

プログラムポインタ  (Program-pointer)

定数の字類及び項類は,8.3.1.2(定数)で規定する。

データの字類又はデータの項類の名前が COBOL の規則中に現れた場合,字類であると特に断らない限

り,その名前は項類を指す。

8.5.2.1 

英字項類 

基本データ項目の記述に英字を規定する PICTURE 文字列があるとき,項類は英字(alphabetic)である。

このような項目を,英字データ項目と呼ぶ。

英字データ項目は,作用対象として英数字データ項目を指定してもよい箇所には,どこに指定してもよ

い。明示的に英字データ項目の指定が許されていない箇所でも,英字データ項目は英数字データ項目であ

るかのように取り扱われる。

8.5.2.2 

英数字項類 

次のいずれかであるとき,項類は英数字(alphanumeric)である。

1)

基本データ項目の記述に,英数字を規定する PICTURE 文字列がある。

2)

基本データ項目の記述に,英数字定数を指定した VALUE 句があり PICTURE 句がない。

3)

英数字集団項目である。

4)

英数字関数である。

このような項目を,英数字データ項目と呼ぶ。

8.5.2.3 

英数字編集項類 

基本データ項目の記述に英数字編集を規定する PICTURE 文字列があるとき,その項類は英数字編集

(alphanumeric-edited)である。

このような項目を,英数字編集データ項目と呼ぶ。

8.5.2.4 

ブール項類 

次のいずれかであるとき,項類はブール(boolean)である。

1)

基本データ項目の記述に,ブールを規定する PICTURE 文字列がある。

2)

基本データ項目の記述に,ブール定数を指定した VALUE 句があり PICTURE 句がない。

3)

集団項目の記述に,明示的な又は暗黙の GROUP-USAGE IS BIT 句がある。


100

X 3002

:2011 (ISO/IEC 1989:2002)

4)

ブール関数である。

このような項目を,ブールデータ項目と呼ぶ。

8.5.2.5 

データポインタ項類 

基本データ項目の記述が明示的又は暗黙に用途がデータポインタと定めているとき,その項類はデータ

ポインタ(data-pointer)である。

このような項目を,データポインタデータ項目と呼び,単にデータポインタとも呼ぶ。

8.5.2.6 

指標項類 

次のいずれかであるとき,項類は指標(index)である。

1)

基本データ項目の記述が,明示的又は暗黙に用途は指標と定めている。

2)

指標関数である。

このような項目を,指標データ項目と呼ぶ。

8.5.2.7 

各国文字項類 

次のいずれかであるとき,項類は各国文字(national)である。

1)

基本データ項目の記述に,各国文字を規定する PICTURE 文字列がある。

2)

基本データ項目の記述に,各国文字定数を指定した VALUE 句があり PICTURE 句がない。

3)

基本データ項目の記述が,明示的又は暗黙に用途は各国文字と定めている。

4)

集団項目の記述に明示的な又は暗黙の GROUP-USAGE IS NATIONAL 句がある。

5)

各国文字関数である。

このような項目を,各国文字データ項目と呼ぶ。

8.5.2.8 

各国文字編集項類 

基本データ項目の記述に,各国文字編集を定める PICTURE 文字列があるとき,その項類は各国文字編

集(national-edited)である。

このような項目を,各国文字編集データ項目と呼ぶ。

8.5.2.9 

数字項類 

次のいずれかであるとき,項類は数字(numeric)である。

1)

基本データ項目の記述中に,数字を規定する PICTURE 句があり,BLANK WHEN ZERO 句がない。

2)

基本データ項目の記述中に,

次の用途の指定がある:  2 進文字

(binary-char)

,2 進短精度

(binary-short)

2

進長精度(binary-long)

,2 進倍精度(binary-double)

,浮動短精度(float-short)

,浮動長精度(float-long)

又は浮動拡張精度(float-extended)

3) LINE-COUNTER

である。

4) LINAGE-COUNTER

である。

5) PAGE-COUNTER

である。

6)

数字関数である。

7)

整数関数である。

このような項目を,数字データ項目と呼ぶ。

8.5.2.10 

数字編集項類 

次のいずれかであるとき,項類は数字編集(numeric-edited)である。

1)

基本データ項目の記述に,数字編集を規定する PICTURE 文字列がある。

2)

基本データ項目の記述に,数字を規定する PICTURE 文字列と BLANK WHEN ZERO 句がある。

このような項目を,数字編集データ項目と呼ぶ。


101

X 3002

:2011 (ISO/IEC 1989:2002)

8.5.2.11 

オブジェクト参照項類 

基本データ項目の記述が,明示的又は暗黙に用途はオブジェクト参照と定めているとき,その項類は,

オブジェクト参照(object-reference)である。

このような項目を,オブジェクト参照と呼ぶ。

8.5.2.12 

プログラムポインタ項類 

基本データ項目の記述が,明示的又は暗黙に用途はプログラムポインタと定めているとき,その項類は

プログラムポインタ(program-pointer)である。

このような項目を,プログラムポインタデータ項目と呼ぶ。単にプログラムポインタとも呼ぶ。

8.5.3 

 

型(type)とは,あるデータ項目及びその従属項目の特徴を全て内包しているひな型である。型の宣言

及び命名は,TYPEDEF 句を指定することでなされる。ある型の参照は,データ記述項に TYPE 句を指定

することでなされる。型名によって識別される,型の本質的な特徴は,型宣言中で定義された基本項目群

の相対位置及び長さ,並びにこれらの基本項目のそれぞれに対して指定された BLANK WHEN ZERO 句,

JUSTIFIED

句,PICTURE 句,SIGN 句,SYNCHRONIZED 句及び USAGE 句である。

型の参照は,データ記述項に TYPE 句を指定することでなされる。この指定方法によって定義される型

付き項目には,参照された型の特徴が全て備わる。

集団項目は,強い型付けにも弱い型付けにもできる。次に示す場合はいずれも型付き集団項目は強い型

付けになる。

− STRONG 指定のある型宣言を参照している TYPE 句付きで記述されている。

− STRONG 指定のある型宣言を参照している TYPE 句付きで記述された集団項目に従属している。

基本項目は,強い型付けになることができない。

二つの型付き項目が“同じ型である”のは,次に示すいずれかの場合とする。

−  等価な型宣言を参照している TYPE 句付きで記述されている。

−  等価な型宣言の中の従属項目であり,開始の相対バイト位置及びバイト長が同じである。

二つの型宣言が等価(equivalent)とみなされるのは,型名が同じであり,一方の型宣言の中にある各々

の基本項目に対して他方の型宣言の中にも対応する基本項目があって,開始の相対バイト位置及びバイト

長が同じである場合とする。対応し合う基本項目の各々の対に指定された BLANK WHEN ZERO 句,

JUSTIFIED

句,PICTURE 句,SIGN 句,SYNCHRONIZED 句及び USAGE 句は全て同じでなければならな

いが,次の点は例外とする。

1)

通貨編集用記号どうしが一致するのは,対応し合う通貨文字列が同じである場合であり,かつ,その

場合だけとする。

2) PICTURE

記号のピリオドどうしが一致するのは,DECIMAL-POINT IS COMMA 句がこれらの型宣言

の両方で有効又は両方で無効な場合であり,かつ,その場合だけとする。PICTURE 記号のコンマどう

しが一致するのは,DECIMAL-POINT IS COMMA 句がこれらの型宣言の両方で有効又は両方で無効な

場合であり,かつ,その場合だけとする。

さらに,PICTURE 句の LOCALE 指定が一致するのは,次の両方が成立する場合,かつ,その場合だけ

とする。

−  両方とも PICTURE 句の LOCALE 指定の SIZE に同じ指定をしている。

−  両方とも LOCALE 指定の現地特性名を省略しているか,又は両方とも LOCALE 指定に同じ外部識別


102

X 3002

:2011 (ISO/IEC 1989:2002)

を指定している。ここでいう外部識別とは,特殊名段落の LOCALE 句において現地特性名と関連付け

られた外部現地特性名又は定数値のことである。

注記  二つの型付き項目が同一のソース要素内で定義されている場合,これらの規則は,両方の項

目が同じ TYPE 句付きで記述されているか,又は両方の項目が同じ型宣言中の同じ従属項目

として記述されているかの,いずれかであることを意味している。

8.5.3.1 

弱い型付けの項目 

弱い型付けの項目は,対応する型宣言の特徴をもつ。これらの特徴を,この型付き項目の従属している

集団に関する指定によって上書きすることはできない。

弱い型付けの項目は,型付けされていない項目と同じように使用することができる。

注記  型宣言は,一つ以上のデータ記述項を“短縮記述”したものとみなし得る。

8.5.3.2 

強い型付けの集団項目 

弱い型付けの項目と同様に,強い型付けの集団項目は,それに対応する型宣言の特徴をもつ。さらに,

強い型付けの集団項目の使用は,データの整合性を保護するための制限に従う。

強い型付けにできる項目の種類は,集団項目だけとする。

8.5.4 

長さゼロの項目 

長さゼロの項目(zero-length item)とは,長さの最小値がゼロであり実行時の長さがゼロの項目である。

長さゼロの項目は,次に示すいずれかとする。

1)

集団データ項目であって,中身は可変反復データ項目だけでありその反復回数はゼロであるもの。

2)

集団データ項目であって,中身は長さゼロの従属項目だけであるもの。

3) ANY

LENGTH

句付きで定義されたデータ項目であって,対応する引数又は返却項目が長さゼロの項

目であるもの。

4)

論理レコードであって,可変長形式か又は“固定長又は可変長”形式の RECORD 句を用いて規定さ

れ,文字位置の個数はゼロであるもの。

5)

長さゼロの値を返す組込み関数。

8.6 

データの有効範囲及び生存期間 

ソース単位は,別のソース単位を内包してもよく,内側のソース単位は,その外側のソース単位の資源

の幾つかを参照してもよい[構造の完全な詳細は,10.5(COBOL 翻訳群)参照]

8.6.1 

大域名及び局所名 

大域名及び局所名の有効範囲は,8.4.5(名前の有効範囲)による。

8.6.2 

外部項目及び内部項目 

アクセス可能なデータ項目には,データの何らかの表現が格納されていなければならない。ファイル結

合子には,ファイルに関する何らかの情報が格納されていなければならない。データ項目又はファイル結

合子に関連する記憶域は,外部又は内部のいずれかとする。

作業場所節中に記述されるレコードには,そのデータ記述項に EXTERNAL 句を書くことで外部属性が

与えられる。外部レコードを記述する記述項に従属しているデータ記述項によって記述されるデータ項目

もまた,外部属性をもつ。レコード又はデータ項目は,外部属性をもたない場合,内部データとする。

ファイル結合子には,関連するファイル記述項に EXTERNAL 句を書くことで外部属性が与えられる。

ファイル結合子は,外部属性をもたない場合,内部とする。

EXTERNAL

句のないファイル記述項に又は整列併合用ファイル記述項に従属して記述されるレコード

は,このようなレコードに対するデータ記述項に従属して記述されるデータ項目と同様に,常に内部とす


103

X 3002

:2011 (ISO/IEC 1989:2002)

る。ファイル記述項に EXTERNAL 句を書くと,そのレコード群及びこれらに従属するデータ項目は外部

属性をもつ。

局所記憶節,連絡節,通信節,報告書節及び画面節中に記述されたレコード,従属データ項目及び種々

の関連する制御情報は,常に内部とする。連絡節中に記述されたデータに対しては特別な配慮がなされ,

それによって,記述されたレコードと,他の実行時要素がアクセス可能な他のデータ項目との間で,関連

付けを行う。

外部又は内部であるデータ項目又はファイル結合子の名前は,大域名又は局所名のいずれかとする。

データ項目又はファイル結合子が外部(external)であるとき,この項目に関連する記憶域は,その実行

単位中の特定の実行時要素とではなく,その実行単位と関連している。外部項目は,それを記述している

実行単位中の,任意の実行時要素からアクセスされてもよい。データ項目又はファイル結合子を別々に記

述している異なる実行時要素から外部項目を参照すると,常に同一項目への参照となる。実行単位中で一

つの外部項目を表すものは一つしかない。

データ項目又はファイル結合子が内部(internal)であるとき,この項目に関連する記憶域は,それを記

述している実行時モジュールにだけ関連している。内部項目は,8.6.3(自動項目,初期化項目及び静的項

目)による。

8.6.3 

自動項目,初期化項目及び静的項目 

内部項目のそれぞれは,永続性に関して,自動(automatic)

,初期化(initial)

,静的(static)の 3 属性の

いずれか一つをもつ。自動項目,初期化項目及び静的項目の意味付けは,実行単位の実行中での,それら

の項目の永続性とそれらの内容の永続性に関係している。

データ項目,ファイル結合子及び画面項目の属性には,初期(initial)状態,及び直前使用(last-used)

状態の 2 種類の状態がある。データ項目の初期状態は,データ記述項の VALUE 句の有無に依存するほか,

データ項目が記述された節及びデータ項目の記述それ自体にも依存する。ファイル結合子の初期状態は,

入力・出力・入出力両用・拡張のいずれでもない。画面項目属性の初期状態は,その画面項目の記述に依

存する。

直前使用状態(last-used state)とは,データ項目,ファイル結合子又は画面項目属性の内容が,直前に

変更された時点のままであることを意味する。

局所記憶節中で定義されたデータ項目は,自動項目である。これらは,実行時要素が活性化されるたび

に記憶域が割り付けられ初期状態に設定される。実行時要素の活性化で生じる個体(instance)は,それぞ

れが自分専用の自動項目の複製をもち,実行時要素のその個体が活性状態の間中,その複製は存続する。

初期化プログラムのファイル節,作業場所節又は通信節中で定義されたデータ項目及びファイル結合子

は,初期化項目である。また,初期化プログラム中の画面項目属性も初期化項目と扱われる。これらは,

初期化プログラムが活性化されるたびに,初期状態に設定される。プログラムが活性状態の間中,初期化

項目は存続する。初期化プログラムの活性化のたびに自分専用の初期化項目の複製が生じるのか否かは,

規定されない。

初期化プログラムでないソース要素のファイル節,作業場所節又は通信節中で定義されたデータ項目及

びファイル結合子は,静的項目である。また,初期化プログラムでないソース要素中の画面項目属性も,

静的項目と扱われる。これらは,実行時要素又はオブジェクトが初期状態になるたびに,初期状態に設定

される[14.5.2.1.2.1(初期状態)及び 14.5.2.2(オブジェクトデータの初期状態)参照]

。これらは,遅く

とも初期化処理の直前には割り付けられ,次に示すいずれかが最初に起きるまで存続する。

−  実行単位の終了


104

X 3002

:2011 (ISO/IEC 1989:2002)

−  静的項目を直接又は間接に内包するプログラムに対しての CANCEL 文の実行

−  オブジェクトデータの場合はオブジェクトの生存期間の終了

オブジェクトデータでない静的項目に対しては,実行単位中に唯一の実体が存在する。

オブジェクトデータである静的項目に対しては,

−  あるクラスのファクトリオブジェクト中には,そのクラスのファクトリ定義によって記述又は継承さ

れる静的項目の実体が,それぞれ一つずつ存在する。

−  あるクラスの各インスタンスオブジェクト中には,そのクラスのインスタンス定義によって記述又は

継承される静的項目の実体が,それぞれ一つずつ存在する。

これ以上の詳細は,9.3.1(オブジェクト及びクラス)

9.3.9(クラス継承)

9.3.14(オブジェクトの生存

期間)による。

連絡節中で記述されたデータ項目は,活性化される側のソース要素中の仮パラメタ又は返却項目として

指定された場合,永続性に関して,活性化する側のソース要素中での対応する引数又は対応する返却項目

と同じ属性をもつ。これらは,実行時要素が活性化されたときに直前使用状態であって,引数が存続して

その定義を内包するソース要素が活性状態である間中,存続する。

表の指標は,関連する表が静的であるとき,静的項目として扱い,関連する表が自動であるとき,自動

項目として扱う。

8.6.4 

基底付き記述項及び基底付きデータ項目 

基底付き記述項(based entry)とは,作業場所節,局所記憶節又は連絡節中のデータ記述項のうち BASED

句を用いて記述したものである。基底付き記述項は最初は実データ項目との関連付けがない。基底付き記

述項を実データに連結する関連付けが確立するのは,その記述項の暗黙のデータアドレスポインタに,既

存データ項目のアドレスが代入された時点又は ALLOCATE 文で獲得された記憶域のアドレスが代入され

た時点である。この関連付けが,基底付きデータ項目(based data item)を確立する。この関連付けは暗黙

のデータアドレスポインタで維持されるが,そのポインタを参照するのには ADDRESS OF データ名とい

う形式の一意名を用いればよく,ここでいうデータ名とはその基底付き記述項の名前である。

この関連付けは,打ち切られることがある。原因としては,実データが存在しなくなる場合[8.6.3(自

動項目,初期化項目及び静的項目)及び 14.8.3(ALLOCATE 文)参照]と,暗黙のデータアドレスポイン

タが実データを参照しなくなる場合とがある。

この関連付けが終わるのは,次の場合である。

−  暗黙のデータアドレスポインタが今までと異なる値に設定された場合。

−  基底付き記述項の定義箇所が作業場所節中又は局所記憶節中の場合,その節で定義されたデータ項目

の生存期間の終わり。

−  基底付き記述項の定義箇所が連絡節中にある場合,実行時要素の実行の終わり。

8.6.5 

共通属性,初期化属性及び再帰属性 

プログラムを記述する場合,その初期状態に影響を及ぼす属性又は呼び出され方を規定する属性をもた

せることができる。

共通プログラムは,別のプログラムに直接含まれているが,その“別のプログラム”に直接又は間接に

含まれている全てのプログラムから,呼び出してもよいプログラムである[8.4.5.2(プログラム名の有効

範囲)参照]。共通属性は,プログラムの見出し部に COMMON 句を指定することによって得られる。

COMMON

句を指定しない場合に,別のプログラムに含まれる非再帰プログラムを呼び出してもよいのは,

それを直接に含んでいるプログラムだけである。COMMON 句は,あるプログラム中に含まれる全てのプ


105

X 3002

:2011 (ISO/IEC 1989:2002)

ログラムから使用できる副プログラムを書くための手段を提供する。

初期化プログラムは,呼び出された時点でプログラムの状態が初期化されるプログラムである。初期化

プログラムでは初期化処理中に,プログラムの内部データが初期化される[14.5.2(関数・メソッド・オ

ブジェクト・プログラムの状態)参照]

。初期化属性は,プログラムの見出し部に INITIAL 句を指定する

ことによって得られる。

再帰プログラムは,自分自身を直接又は間接に呼び出してもよい。プログラムの内部データは初期化さ

れる[14.5.2(関数・メソッド・オブジェクト・プログラムの状態)参照]

。再帰属性は,プログラムの見

出し部に RECURSIVE 句を指定することによって得られる。

関数及びメソッドは常に再帰的である。

これらのデータは,

再帰プログラムと同じ方法で初期化される。

プログラムの見出し部に INITIAL 句も RECURSIVE 句も指定しないとき,プログラムのデータは,その

プログラムが最初に初期化された時点以外では,全て直前使用状態になる[14.5.2(関数・メソッド・オ

ブジェクト・プログラムの状態)参照]

。プログラムは,RECURSIVE の指定がない限り,それが活性状態

である間に再帰的に活性化されることはできない。

8.6.6 

データ項目の共用 

実行単位中の二つの実行時要素では,次の環境において共通なデータを参照してもよい。

1)

外部データレコードのデータの内容は,そのレコードを記述している実行時要素であれば,どの実行

時要素から参照されてもよい。

2)

プログラムが別のプログラム中に含まれているとき,外側のプログラム中又はそれを直接又は間接に

含むプログラム中で宣言された,大域属性をもつデータを,両方のプログラムから参照してもよい。

3)

活性化する側の実行時要素から活性化される側の実行時要素へ,引数の値が参照渡し(passed by

reference

)される機構によって,共通なデータ項目が確立される。活性化される側の要素と活性化す

る側の要素とが,その共通データ項目を参照するために,異なる名前を用いていてもよい。

8.7 

演算子 

8.7.1 

算術演算子 

算術式中で用いてもよい算術演算子(arithmetic operator)は,5 種類の二項演算子(binary operator)及

び 2 種類の単項演算子(unary operator)とする。これらは特定の COBOL 文字によって表され,その前後

には空白を書かなければならない。ただし例外として,左括弧と単項演算子との間又は単項演算子と左括

弧との間には空白がなくてもよい。算術演算子を次に示す。

二項演算子 

意味 

+

加算

減算

*

乗算

/

除算

**

べき乗

単項演算子 

意味 

+

数字定数の +1 を乗じることと同じ

数字定数の –1 を乗じることと同じ

8.7.2 

ブール演算子 

ブール演算子(boolean operator)は,単項演算子又は二項演算子によって,それぞれ一つ又は二つの作

用対象に作用するブール演算の種類を指定する。


106

X 3002

:2011 (ISO/IEC 1989:2002)

二項演算子 

意味 

B-AND AND

演算(ブール積)

B-OR OR

演算(ブール和)

B-XOR

排他的 OR 演算(ブール排他的和)

単項演算子 

意味 

B-NOT

否定演算

8.7.3 

連結演算子 

連結演算子(concatenation operator)は,COBOL 文字の  "&"  とする。この前後には分離符の空白を書か

なければならない。

8.7.4 

呼出し演算子 

呼出し演算子(invocation operator)は,2 個連続した COBOL 文字の  "::"  とする。この前後には分離符

の空白を書かなければならない。呼出し演算子の使用方法は,8.4.2.4(文内メソッド呼出し)で規定する。

8.7.5 

比較演算子 

比較演算子(relation operator)は,比較条件中で行われる比較の種類を示す。

8.7.5.1 

一般形式 

書き方 1(単純比較演算子)

 IS  [NOT] GREATER THAN

 IS  [NOT] >

 IS  [NOT] LESS THAN

 IS  [NOT] <

 IS  [NOT] EQUAL TO

 IS  [NOT] =

書き方 2(拡張比較演算子)

⎩⎪

⎪⎧

⎭⎪

⎪⎫

 IS  GREATER THAN OR EQUAL TO

 IS  >=

 IS  LESS THAN OR EQUAL TO

 IS  <=

8.7.5.2 

構文規則 

1)  NOT

を指定すると,NOT を含めて一つの比較演算子となり,真理値を求めるための比較方法を定義す

る。

2)

書き方 1 は,単純比較演算子を指定する。

3)

書き方 2 は,拡張比較演算子を指定する。

4) >

は,GREATER THAN の略記である。

5) <

は,LESS THAN の略記である。

6) =

は,EQUAL TO の略記である。

7) >=

は,GREATER THAN OR EQUAL TO の略記である。

8) <=

は,LESS THAN OR EQUAL TO の略記である。

8.7.6 

論理演算子 

論理演算子(logical operator)は,語 AND,NOT 及び OR である。論理演算子の使用方法は,8.8.4.2(複

合条件)で規定する。


107

X 3002

:2011 (ISO/IEC 1989:2002)

8.8 

いろいろな式 

8.8.1 

算術式 

算術式(arithmetic expression)は,次のいずれかとする。

−  数字データ項目を指す一意名

−  数字定数,表意定数の ZERO(ZEROS,ZEROES)

−  数字基本データ項目の一意名,表意定数及び定数を算術演算子でつないだもの

−  二つの算術式を算術演算子でつないだもの

−  算術式を括弧で囲んだもの

算術式の前には単項演算子が付いてもよい。算術式中に書いてもよい一意名,数字定数,算術式及び括

弧の組合せを

表 に示す。

算術式の評価の規則は,有効な算術モードが固有か標準かに依存する。

8.8.1.1 

固有算術及び標準算術 

次の規則は,有効な算術モードがいずれであるかに関係なく適用される。

1)

算術式中で括弧を用いて,算術演算の順序を指定してもよい。括弧の中の演算が,その括弧で囲まれ

た式を対象とする演算よりも先に実行され,その結果は以降の演算において単一の作用対象とみなさ

れる。括弧が入れ子で指定されているときは,最も内側の括弧の中の算術式を先に評価し,順次外側

を評価する。

2)

同じ入れ子の水準に複数個の作用対象がある場合,実行の順序は次に示す順位のとおりとする。

1

番目:単項演算子  +及び-

2

番目:べき乗  **

3

番目:乗算  *  及び除算  /

4

番目:加算  +  及び減算  -

3)

括弧による実行順序の指定なしに同じ順位の演算が連続している場合,これらの演算は左から右への

順序で実行される。

注記  括弧を使用する理由は,同じ順位の演算が連続している場合の論理的な曖昧さを排除するた

め,通常の実行の順序から逸脱する必要がある場合に式の中で通常の実行の順位を修正する

ため,又は通常の順序を強調して明白にするためである。

4)

算術式中に書いてもよい一意名,定数,演算子及び括弧の組合せを,

表 4(算術式中の記号の組合せ)

に要約して示す。

表 4−算術式中の記号の組合せ 

後続記号

先行記号

一意名又は定数

+

  –  *  /  **

単項の  +  –

(

)

一意名又は定数

+

  –  *  /  **

単項の  +  –

(

)

○は,記号の組合せが指定できることを表す。

−は,その組合せが誤っていることを表す。


108

X 3002

:2011 (ISO/IEC 1989:2002)

5)

算術式は,"(","+","-",一意名,定数のいずれかで始まり,")",一意名,定数のいずれかで終わ

る。ある算術式中の左括弧と右括弧とは 1 対 1 に対応し,左括弧は対応する右括弧より左になければ

ならない。算術式中の最初の演算子が単項演算子で,その算術式が一意名又は他の算術式の直後に続

くとき,その単項演算子の直前は左括弧でなければならない。

注記  例えば,"1"と"+ 2"を用いて 2 次元の表 A に対する添字とする場合,算術式"+ 2"は括弧で

囲んで,A (1 (+ 2))  とする必要がある。

6)

算術式中のべき乗の評価には,次の規則を適用する。

a)

べき乗の底の値がゼロであるとき,その指数はゼロより大きい値でなければならない。さもなけれ

ば,EC-SIZE-EXPONENTIATION 例外状態になり,けたあふれ条件が発生する。

b)

べき乗の評価の結果,正と負との両方の実数が生じたとき,結果として返される値はその正の数の

ほうとする。

c)

べき乗の底がゼロより小さい値のとき,指数の評価の結果は整数でなければならない。さもなけれ

ば,EC-SIZE-EXPONENTIATION 例外状態になり,けたあふれ条件が発生する。

7)

算術式によって利用者は,作用対象及び受取り側データ項目の合成に関する制限を受けずに算術演算

を組み合わせることができる。

8.8.1.2 

固有算術 

固有算術(native arithmetic)は,算術式,算術文,SUM 句並びに全ての整数関数及び数字関数を評価す

る場合の実装者定義の方法である。固有算術が有効になるのは,選択肢段落に ARITHMETIC IS NATIVE

句の指定があるか又は ARITHMETIC 句の指定がない場合である。ARITHMETIC IS STANDARD 句の指定

がある場合でも,特定のデータ項目を使用する演算では,固有算術が有効になる[8.8.1.3(標準算術)参

照]

。固有算術に対して用いられる技法は,実装者定義とする。

8.8.1.3 

標準算術 

標準算術(standard arithmetic)は,算術式,算術文,SUM 句並びに特定の整数関数及び数字関数を評価

する場合の標準的な方法である[15.3.1(数字関数及び整数関数)参照]

。標準算術の規則は,8.8.1.3.1

8.8.1.3.8

による。標準算術が有効になるのは,選択肢段落中に ARITHMETIC IS STANDARD 句がある場合

とする。ただし,算術式,算術文,SUM 句又は特定の整数関数及び数字関数の作用対象のいずれかがデー

タ項目で,その記述に,用途が 2 進文字(binary-char)

,2 進短精度(binary-short)

,2 進長精度(binary-long)

2

進 倍 精 度( binary-double ), 浮 動 短 精 度( float-short ), 浮 動 長 精度 ( float-long) 又 は 浮 動 拡 張 精 度

(float-extended)のいずれかの指定がある場合,用いられる算術演算の技法は,固有算術に対して規定さ

れた技法とする。

ソース単位に対して標準算術が明示的又は暗黙に指定され,FLAG-NATIVE-ARITHMETIC 指示が有効で

ある場合,固有算術を使用するあらゆる算術演算に対してフラグが立つ。

8.8.1.3.1 

標準中間データ項目 

標準中間データ項目(standard intermediate data item)の字類及び項類は,数字とする。これは特異な値

のゼロであるか,又は抽象的な符号付き正規化 10 進浮動小数点形式の一時データ項目である。その内部表

現形式は,実装者定義とする。実装者は,標準中間データ項目の規則に結果が合致する限り,どのような

処理方法を用いてもよい。

注記  標準中間データ項目の内部表現形式は変更しても差し支えないので,実装者は状況に応じて最

も効果的な実装方法を選択できる。

標準算術が有効であるとき,次の規則を適用する。


109

X 3002

:2011 (ISO/IEC 1989:2002)

1)

算術式中の作用対象に標準中間データ項目に格納済みではないものがあれば,全て標準中間データ項

目に変換される。

注記  この規則は,算術式中にある作用対象が唯一で演算子がない場合なども包含している。例え

ば,IF (A = 1) 又は  COMPUTE A = B のような場合である。

2)

値が大きすぎて又は小さすぎて標準中間データ項目に納まらないとき,けたあふれ条件が発生して,

EC-SIZE-OVERFLOW

例外状態又は EC-SIZE-UNDERFLOW 例外状態になる[14.6.4(SIZE ERROR 指

定及びけたあふれ条件)参照]

注記  下位けたあふれは,丸められてゼロになるのではなく SIZE ERROR として扱われる。

8.8.1.3.1.1 

精度及び許容値の大きさ 

標準中間データ項目の取り得る値は,特異な値のゼロであるか,又は大きさ(magnitude)が

 10

–999

(1.000 000 000 000 000 000 000 000 000 000 0 E–999)

から

 10

1000

 – 10

968

(9.999 999 999 999 999 999 999 999 999 999 9 E+999)

までの,両端を含めた範囲内にある,精度が 10 進 32 けたの値とする。中間標準データ項目に切捨て又

は四捨五入が行われ 32 けた未満になるのは,明示的に指定された場合だけである。

8.8.1.3.1.2 

正規化値 

標準中間データ項目の値がゼロでない場合,その仮数部は,小数点の左にゼロ以外の数字を 1 けただけ

もつ。

8.8.1.3.1.3 

四捨五入の規則 

標準中間データ項目は,次の状況では 31 けたへと四捨五入されなければならず,その四捨五入は

ROUNDED

指定に対する記述のとおりに行われる。

1)

標準中間データ項目を比較する場合。ただし,一つの組込み関数の引数並びの間で比較を行う場合は

例外で,その場合は四捨五入されない 32 けた全てが用いられる。

注記  例えば,組込み関数の MAX,MIN,RANGE,MIDRANGE,ORD-MAX,ORD-MIN などが,

例外の場合に該当する。

2)

標準中間データ項目が関数の引数であり,その関数の結果に対する等価な算術式の規定がない場合。

ただし,関数の規則中に別な指定が特にある場合又は 1)  の状況では,この限りでない。

3)

標準中間データ項目を,ROUNDED 指定のない結果の一意名へ転記する場合。標準中間データ項目の

四捨五入は,けたあふれ条件を引き起こすか EC-SIZE-OVERFLOW 例外状態にすることもある。

注記  これらの規則は,必要以上に四捨五入が起こることを排除するほか,入れ子になった算術式

の評価では最後に一度だけ四捨五入が起こることを保証する。

標準中間データ項目が ROUNDED 指定のある結果一意名へと転記される場合,四捨五入されるけた数は

14.6.3

(ROUNDED 指定)による。

8.8.1.3.2 

加算 

加算に対しての作用対象及び演算子は,作用対象 1 + 作用対象 2 とする。その結果は,厳密な和を 32

けたに四捨五入し,正規化し,標準中間データ項目に格納したものになる。

8.8.1.3.3 

減算 

減算に対しての作用対象及び演算子は,作用対象 1 – 作用対象 2 とする。その結果は,次の算術式の

評価と等価とする。

(

作用対象 1 + ( – 作用対象 2))


110

X 3002

:2011 (ISO/IEC 1989:2002)

8.8.1.3.4 

乗算 

乗算に対しての作用対象及び演算子は,作用対象 1 * 作用対象 2 とする。その結果は,厳密な積を 32

けたに四捨五入し,正規化し,標準中間データ項目に格納したものになる。

8.8.1.3.5 

除算 

除算に対しての作用対象及び演算子は,作用対象 1 / 作用対象 2 とする。その結果は,厳密な商を 32

けたに四捨五入し,正規化し,標準中間データ項目に格納したものになる。

8.8.1.3.6 

べき乗 

べき乗に対しての作用対象及び演算子は,作用対象 1 ** 作用対象 2 とする。

1)

作用対象 2 がゼロで作用対象 1 がゼロ以外である場合,

その結果は,次の算術式の評価と等価になる。

(1)

2)

作用対象 2 がゼロより大きい場合,その結果は次のとおり決まる。

a)

作用対象 2 が整数で,条件  (作用対象 2 = 1)  が真の場合,等価な算術式は,次のとおりとする。

(

作用対象 1)

b)

作用対象 2 が整数で,条件  (作用対象 2 = 2)  が真の場合,等価な算術式は,次のとおりとする。

(

作用対象 1 * 作用対象 1)

c)

作用対象 2 が整数で,条件  (作用対象 2 = 3)  が真の場合,等価な算術式は,次のとおりとする。

((

作用対象 1 * 作用対象 1) * 作用対象 1)

d)

作用対象 2 が整数で,条件  (作用対象 2 = 4)  が真の場合,等価な算術式は,次のとおりとする。

((

作用対象 1 * 作用対象 1) * (作用対象 1 * 作用対象 1))

e)

さもなければ,実装者定義の値を正規化して標準中間データ項目に格納したものを結果の値とする。

3)

作用対象 2 がゼロより小さい場合,その結果は次の算術式の評価と等価とする。

(1 / (

作用対象 1 **  FUNCTION ABS(作用対象 2)))

4)

作用対象 1 と作用対象 2 との両方がゼロに等しい場合,

EC-SIZE-EXPONENTIATION

例外状態になる。

8.8.1.3.7 

単項の+ 

単項演算子 + に対しての作用対象及び演算子は,+ 作用対象  とする。その結果は,次の算術式の評価

と等価とする。

(

作用対象)

8.8.1.3.8 

単項の− 

単項演算子 – に対しての作用対象及び演算子は,– 作用対象  とする。その結果は,次の算術式の評価

と等価とする。

(–1 *

作用対象)

8.8.2 

ブール式 

ブール式(boolean expression)は,次のいずれかとする。

−  ブールデータ項目を指す一意名

−  ブール定数,表意定数の ZERO(ZEROS,ZEROES)

,表意定数の ALL ブール定数

−  ブール式の前に単項ブール演算子が付いたもの

−  二つのブール式を二項ブール演算子でつないだもの

−  ブール式を括弧で囲んだもの

ブール式の書き方及び評価の規則は,次による。

1)

ブール式は,次のいずれかで始まる。


111

X 3002

:2011 (ISO/IEC 1989:2002)

−  記号“(”

−  ブールデータ項目を指す一意名

−  ブール定数

−  単項演算子の B-NOT

2)

ブール式は,次のいずれかで終わる。

−  記号“)”

−  ブールデータ項目を指す一意名

−  ブール定数

3)

左と右の括弧は 1 対 1 に対応し,かつ,左括弧は対応する右括弧より左になければならない。

4)

二項ブール演算の二つの作用対象が両方とも表意定数の ALL  定数であってはならない。

5)

ブール式中に書いてもよい作用対象,演算子及び括弧の組合せを,

表 5(ブール式中の記号の組合せ)

に示す。

表 5−ブール式中の記号の組合せ 

後続記号

先行記号

一意名又は定数

B-AND

,B-OR,B-XOR

B-NOT (

)

一意名又は定数

B-AND

,B-OR,B-XOR

B-NOT

(

)

○は,指定してもよい組合せを表す。 
−は,無効な組合せを表す。

6)

ブール式の評価は,次のとおりに進む。

a)

括弧の中のブール式が,その括弧で囲まれた式を演算対象とするブール式よりも先に評価される。

括弧が入れ子で指定されているときは,最も内側の括弧の中のブール式を先に評価し,順次外側を

評価する。

b)

同じ入れ子の水準に複数個のブール式がある場合,演算の優先順位は次に示すとおりとする。

1

番目:論理否定(B-NOT)

2

番目:論理積(B-AND)

3

番目:排他的論理和(B-XOR)

4

番目:包括的論理和(B-OR)

c)

括弧による評価順序の指定がない場合,同じ順位の演算の評価は左から右へ進む。

注記  括弧を使用する理由は,同じ順位の演算が連続している場合の論理を明確化するため,又

は通常の順序から逸脱する必要がある場合に優先順位を修正するためである。

7)

二項ブール演算の実行は,作用対象の用途には無関係とする。二つの作用対象の長さが等しい場合,

指定された論理積,包括的論理和,又は排他的論理和の演算は,最左端ブール位置から始まり最右端

ブール位置までの,対応し合うブール位置の中のブール値を演算しながら進む。作用対象の長さが等

しくない場合は,作用対象の長さを等しくするために十分な個数のブール値のゼロによって短いほう

の作用対象の右側を拡張したのと同様にして,演算が進む。


112

X 3002

:2011 (ISO/IEC 1989:2002)

注記  長さの確定は,単項演算も含めたブール演算の各々に対して,演算評価の順に行われる。

8)

各々のブール演算を評価した結果はブール値であって,その長さは,その演算中で参照される大きい

ほうの項目のブール位置の個数と同じになる。

8.8.3 

連結式 

連結式(concatenation expression)は,二つの作用対象を連結演算子でつないだものからなる。

8.8.3.1 

一般形式 

定数1

連結式1

 &

定数 2

8.8.3.2 

構文規則 

1)

両方の作用対象の字類は同じで,英数字,ブール又は各国文字のいずれかでなければならない。ただ

し,片方又は両方の作用対象に表意定数を指定してもよい。定数 1 と定数 2 のいずれも,語 ALL で始

まる表意定数であってはならない。

2)

字類が英数字の作用対象では,連結した結果の値の長さが英数字 160 文字位置を超えてはならない。

3)

字類がブールの作用対象では,連結した結果の値の長さがブール 160 文字位置を超えてはならない。

4)

字類が各国文字の作用対象では,連結した結果の値の長さが各国文字 160 文字位置を超えてはならな

い。

8.8.3.3 

一般規則 

1)

連結演算の結果の連結式の字類は,次による。

a)

一方の作用対象が表意定数である場合,この連結演算式を構成するもう一方の作用対象である定数

又は連結式の字類。

b)

両方の作用対象が表意定数である場合,字類は英数字。

c)

さもなければ,両作用対象と同じ字類。

2)

連結式の値は,この連結式を構成する定数,表意定数及び連結式の値の連結したものになる。

3)

連結式は,字類及び値が同じである定数と等価であり,その字類の定数を用いてよい箇所であればど

こで用いてもよい。

8.8.4 

条件式 

条件式(condition expression)は,条件を指すものであり,その条件を検査してその真理値によって複数

の処理の選択肢のうち一つを選択することができる。条件式のもつ真理値(truth value)は,真又は偽を表

す。条件式に関連する条件には,単純条件と複合条件の 2 種類がある。これらはいずれも,幾つかの対を

なす左括弧と右括弧で囲んでもよい。括弧を付けても条件の種類は変わらない。

8.8.4.1 

単純条件 

単純条件(simple condition)には,比較条件,ブール条件,字類条件,条件名条件,スイッチ状態条件,

正負条件及び引数省略条件がある。単純条件は“真(true)

”又は“偽(false)

”のいずれかの真理値をとる。

単純条件に括弧を付けてもその真理値は変わらない。

8.8.4.1.1 

比較条件 

比較条件(relation condition)は,二つの作用対象の比較を示す。比較の種類は,二つの作用対象を連結

する比較演算子で表される。比較条件は,二つの作用対象の間の比較が成立する場合に真理値が“真”と

なり,成立しない場合に真理値が“偽”となる。

字類がブールの作用対象に関する比較条件はブール比較条件,字類がポインタ又はオブジェクトの作用

対象に関する比較条件はポインタ又はオブジェクト参照の比較条件,それ以外は一般比較条件とする。


113

X 3002

:2011 (ISO/IEC 1989:2002)

比較は,次の組合せに対して定義される。

1)

二つの作用対象の字類が数字である場合

2)

二つの作用対象の字類が英字である場合

3)

二つの作用対象の字類が英数字である場合

4)

二つの作用対象の字類がブールである場合

5)

二つの作用対象の字類が各国文字である場合

6)

二つの作用対象の一方が整数で,もう一方の字類が英数字又は各国文字である場合

7)

二つの作用対象の字類が異なり,それぞれ英数字,英字,各国文字のいずれかである場合

8)

指標又は指標データ項目に関する比較

9)

二つの作用対象の字類がオブジェクトである場合

10)

二つの作用対象の字類がポインタであり項類が同じである場合

11)

二つの強い型付けの作用対象の型が同じである場合

比較の処理上,英数字集団項目は基本英数字データ項目として扱う。字類が英字の作用対象は,字類が

英数字の作用対象として扱う。各国文字集団項目又はビット集団項目は,それぞれを基本各国文字データ

項目又は基本ビットデータ項目として扱う。

先行する作用対象を条件の左辺(subject)と呼び,後続する作用対象を条件の右辺(object)と呼ぶ。比

較条件中は,定数ではない作用対象を指す参照を少なくとも一つ含まなければならない。

8.8.4.1.1.1 

一般形式 

書き方 1(一般比較)

⎪⎫

一意名1

定数1

算術式1

指標名1

⎪⎧

⎪⎫

 IS  [NOT] GREATER THAN

 IS  [NOT] >

 IS  [NOT] LESS THAN

 IS  [NOT] <

 IS  [NOT] EQUAL TO

 IS  [NOT] =

 IS  GREATER THAN OR EQUAL TO

 IS  >=

 IS  LESS THAN OR EQUAL TO

 IS  <=

⎪⎫

一意名2

定数2

算術式2

指標名2

書き方 2(ブール比較)

ブール式 1

 IS  [NOT] EQUAL TO

 IS  [NOT] =

ブール式 2

書き方 3(ポインタ又はオブジェクト参照)

一意名 3

 IS  [NOT] EQUAL TO

 IS  [NOT] =

一意名 4

8.8.4.1.1.2 

構文規則 

書き方 1

1)

一意名 1 又は一意名 2 の一方が強い型付けの集団である場合,作用対象は両方とも同じ型でなければ

ならない。

2)

全ての一意名は,字類が英字,英数字,各国文字,数字のいずれかでなければならない,又は強い型

付けの集団項目でなければならない。

3)

全ての定数は,字類が英数字,各国文字,数字のいずれかでなければならない。


114

X 3002

:2011 (ISO/IEC 1989:2002)

4)

字類がブール,ポインタ,オブジェクトのいずれかである基本項目を含む強い型付けの集団項目の比

較は,等しいか否かだけとする。

書き方 3

5)

一意名 3 及び一意名 4 は,字類がポインタ又はオブジェクトのデータ項目でなければならず,両方と

も項類が同じでなければならない。

8.8.4.1.1.3 

数字作用対象どうしの比較 

両方の作用対象の項類が数字である場合に,比較は代数的な値に基づいて行われるのであり,これらの

用途の記述には影響を受けない。定数又は算術式である作用対象の長さをけた数で表したものは,あまり

意味がない。ゼロは,符号の有無によらず,特異な値とみなされる。ゼロ値をもつ作用対象は,ゼロ値を

もつどの作用対象と比較しても,正符号付き,負符号付き又は符号なしに関係なく等しい。作用対象の一

方又は両方が固有算術の適用対象である場合,有効な算術モードには関係なく,固有算術の規則に従って

比較を行う。標準算術を用いるとき,用いられる標準中間データのけた数及び四捨五入が起きるか否かの

判定は,標準算術に対する 8.8.1.3.1.3(四捨五入の規則)の規定による。

8.8.4.1.1.4 

整数作用対象と字類が英数字又は各国文字の作用対象との比較 

整数作用対象は,整数定数であるか,用途が DISPLAY 又は NATIONAL の整数データ項目でなければな

らない。他方の作用対象は,字類が英数字又は各国文字である定数又はデータ項目であってもよい。

整数は,MOVE 文の規則に従って,その整数のけた数と長さが等しく字類及び用途が他方の比較対象と

等しい基本データ項目に転記したものとみなす。そして,他方の比較対象と等しい字類をもつ二つの作用

対象の比較の規則に従って比較を行う。

8.8.4.1.1.5 

英数字作用対象と各国文字作用対象との比較 

二つの作用対象のうち,一方の字類が英数字で他方の字類が各国文字であるとき,これらを比較しても

よい。英数字作用対象は,MOVE 文の規則に従って,文字位置の個数で表した長さがその作用対象と等し

く字類が各国文字である基本データ項目に変換,転記したものとみなす。そして,字類が各国文字である

二つの作用対象の比較の規則に従って比較を行う。

8.8.4.1.1.6 

英数字作用対象どうしの比較 

字類が英数字である作用対象と比較してもよいのは,字類が英数字である作用対象,又は比較では字類

が英数字であるとみなす作用対象とする。

この比較は,

現在の英数字プログラム照合順序に基づいて行う。

作用対象の長さは,その作用対象中の英数字文字位置の個数とする。

2

種類の比較,つまり標準の比較と現地特性に基づく比較とを定義する。現地特性に基づく比較が用い

られるのは,有効な英数字プログラム照合順序が現地特性に基づく場合であり,さもなければ標準の比較

が用いられる。

8.8.4.1.1.6.1 

標準の比較 

比較には,作用対象の長さが等しい場合と異なる場合の二通りが考えられる。

1)

作用対象の長さが等しい場合。対応し合う英数字文字位置にある文字を最左端から一組ずつ比較しな

がら,等しくない文字の組が現れるか,又は最右端に達するまで,比較を行う。対応し合う英数字文

字の組が全て等しいとき,これら二つの作用対象は等しい。長さがゼロである二つの作用対象は等し

い。

等しくない文字の組のうち最初に現れた組を比較して,英数字照合順序での上下関係を判定する。

英数字照合順序中で,より上位の文字をもつほうを,より大きい作用対象とする。

2)

作用対象の長さが異なる場合。作用対象の長さを等しくするのに十分な個数の英数字の空白によって


115

X 3002

:2011 (ISO/IEC 1989:2002)

短いほうの作用対象の右側が拡張されたかのように,比較を行う。このとき前述の,作用対象の長さ

が等しい場合の規則を適用する。

8.8.4.1.1.6.2 

現地特性に基づく比較 

比較の処理上,末尾にある空白列は比較対象から切り捨てる。ただし,空白列だけからなる作用対象の

切捨ての結果は,単一の空白とする。

注記  現地特性に基づく比較は,必ずしも文字単位の比較とは限らない。現地特性に基づかない比較

に対するのと同様に,短いほうの作用対象に空白列で拡張を施すと,文化的に期待される結果

とは変わってしまう可能性がある。

現地特性に英数字のプログラム文字照合順序が明確に規定されていなければ,字類が英数字又は英字の

作用対象は,比較の処理上,各国文字の文字集合中の対応する表現へと対応付けされる。この英数字と各

国文字との間の対応付けは,実装者定義とする。

そして,現在有効現地特性の LC_COLLATE カテゴリ中で定義された文字照合順序に関連するアルゴリ

ズムによって,比較を行う。これは,文化的条件を意識した比較になることがあり,必ずしも文字単位に

行われるとは限らない。比較条件が成立するか否かの決定は,現地特性の指定内容に基づく。長さがゼロ

である二つの作用対象は等しい。

現地特性に,作用対象の全ての文字に対する文字照合順序が定義されているわけではない場合,

EC-LOCALE-INCOMPATIBLE

例外状態になる。

8.8.4.1.1.7 

ブール作用対象どうしの比較 

字類がブールの作用対象は,字類がブールの別な作用対象と比較してもよい。字類がブールである作用

対象の比較は,ブール値に基づいた比較とし,これらの用途の記述には影響を受けない。作用対象の長さ

とは,その作用対象中のブール位置の個数とする。比較には,作用対象の長さが等しい場合と異なる場合

の二通りが考えられる。

1)

作用対象の長さが等しい場合。対応し合うブール位置にあるブール値を最左端から一組ずつ比較しな

がら,等しくないブール値の組が現れるか,又は最右端に達するまで,比較を行う。対応し合うブー

ル値の組が全て等しいとき,これら二つの作用対象は等しい。長さがゼロである二つの作用対象は等

しい。

2)

作用対象の長さが異なる場合。作用対象の長さを等しくするのに十分な数のブールのゼロ値によって

短いほうの作用対象の右側が拡張されたかのように,比較を行う。このとき前述の,作用対象の長さ

が等しい場合の規則を適用する。

8.8.4.1.1.8 

各国文字作用対象どうしの比較 

字類が各国文字である作用対象は,

字類が各国文字である別な作用対象と比較してもよい。

この比較は,

現在の各国文字プログラム照合順序に基づいて行う。作用対象の長さは,作用対象中の各国文字位置の個

数とする。

2

種類の比較,つまり標準の比較と現地特性に基づく比較とを定義する。現地特性に基づく比較が用い

られるのは,有効な各国文字プログラム照合順序が現地特性に基づく場合であり,さもなければ標準の比

較が用いられる。

注記  英数字の項目と各国文字の項目とを比較してもよい。英数字と各国文字の作用対象の比較の規

則では,英数字作用対象を各国文字に変換する。そして二つの各国文字項目どうしの比較の規

則に従って比較を行うと規定している。


116

X 3002

:2011 (ISO/IEC 1989:2002)

8.8.4.1.1.8.1 

標準の比較 

比較には,作用対象の長さが等しい場合と異なる場合の二通りが考えられる。

1)

作用対象の長さが等しい場合。対応し合う各国文字位置にある文字を最左端から一組ずつ比較しなが

ら,等しくない文字の組が現れるか,又は最右端に達するまで,比較を行う。対応し合う各国文字の

組が全て等しいときは,

これら二つの作用対象は等しい。

長さがゼロである二つの作用対象は等しい。

等しくない文字の組のうち最初に現れた組を比較して,各国文字照合順序中での上下関係を判定す

る。各国文字照合順序中で,より上位の文字をもつほうを,より大きい作用対象とする。

2)

作用対象の長さが異なる場合。作用対象の長さを等しくするために十分な個数の各国文字の空白によ

って短いほうの作用対象の右側が拡張されたかのように,比較を行う。このとき前述の,作用対象の

長さが等しい場合の規則を適用する。

8.8.4.1.1.8.2 

現地特性に基づく比較 

比較の処理上,末尾にある空白列は比較対象から切り捨てる。ただし,空白列だけからなる作用対象の

切捨ての結果は,単一の空白とする。

注記  現地特性に基づく比較は,必ずしも文字単位の比較とは限らない。現地特性に基づかない比較

に対するのと同様に,短いほうの作用対象に空白列で拡張を施すと,文化的に期待される結果

とは変わってしまう可能性がある。

そして,現在有効現地特性の LC_COLLATE カテゴリ中で定義された文字照合順序に関連するアルゴリ

ズムによって,比較を行う。これは,文化的条件を意識した比較になることがあり,必ずしも文字単位に

行われるとは限らない。比較条件が成立するか否かの決定は,現地特性の指定内容に基づく。長さがゼロ

である二つの作用対象は等しい。

現地特性に,作用対象の全ての文字に対する文字照合順序が定義されているわけではない場合,

EC-LOCALE-INCOMPATIBLE

例外状態になる。

8.8.4.1.1.9 

強い型付けの集団項目どうしの比較 

強い型付けの集団項目二つを比較する場合,第一作用対象に属する基本項目はそれぞれ,第二作用対象

に属する対応する基本項目と比較される。このとき基本項目比較の規則に従う。比較を行う順序は,強い

型付けの集団項目中に基本項目を指定した順序とする。

この比較を,ある基本項目の組が等しくないか又は基本項目の最後の組を比較し終えるまで反復する。

対応する基本項目よりも大きい基本項目を含んでいるほうの作用対象を,より大きい作用対象とする。

8.8.4.1.1.10 

指標名又は指標データ項目に関する比較 

次に示す組合せに限って比較検査してもよい。

1)

二つの指標名の間。その結果は,対応する出現番号どうしの比較と同等とする。

2)

指標名と,数字データ項目又は数字定数との間。指標名の値に対応する出現番号が,データ項目又は

定数と比較される。

3)

指標データ項目と,指標名又は別な指標データ項目との間。実際の値が変換なしに比較される。

8.8.4.1.1.11 

字類がオブジェクトの作用対象どうしの比較 

字類がオブジェクトの作用対象は,字類がオブジェクトである別の作用対象と比較してもよい。

注記  あまり意味はないが,既定義オブジェクト参照どうしで比較してもよい。

“一意名 3 = 一意名 4”という関係が真になるのは,一意名 3 の指すオブジェクトと,一意名 4 の指す

オブジェクトとが同じ場合とする。さもなければ,この関係は偽とする。


117

X 3002

:2011 (ISO/IEC 1989:2002)

8.8.4.1.1.12 

ポインタ作用対象どうしの比較 

二つの作用対象は,同一のアドレスを指していれば等しい。

8.8.4.1.2 

ブール条件 

ブール条件(boolean condition)は,ブール式が真か偽かを判定する。

8.8.4.1.2.1 

一般形式 

[NOT]

ブール式 1

8.8.4.1.2.2 

構文規則 

1)

ブール式 1 は,長さが 1 のブール項目だけでなければならない。

8.8.4.1.2.3 

一般規則 

1)

ブール式 1 の結果が 1 であるとき,式の評価は真になり,0 であるとき,偽になる。

2) NOT

ブール式 1 の評価は,ブール式 1 の真理値の逆になる。

8.8.4.1.3 

字類条件 

字類条件(class condition)は,作用対象が数字,英字,小文字,大文字,ブールであるか否か,又は環

境部の特殊名段落の ALPHABET 句若しくは CLASS 句で指定された文字集合に属する文字だけを含むか否

かを判定する。

8.8.4.1.3.1 

一般形式 

一意名 1 IS [NOT]

⎩⎪

⎪⎧

⎭⎪

⎪⎫

 NUMERIC

 ALPHABETIC

 ALPHABETIC-LOWER

 ALPHABETIC-UPPER

 BOOLEAN

符号系名1

字類名1

8.8.4.1.3.2 

構文規則 

1)

一意名 1 は,字類が指標,オブジェクト又はポインタのデータ項目であってはならない。

2) NUMERIC

指定があるとき,一意名 1 はデータ項目で,用途が DISPLAY 又は NATIONAL であるか,

又は項類が数字でなければならない。

3) NUMERIC

指定がないとき,一意名 1 はデータ項目で,用途が DISPLAY 又は NATIONAL でなければ

ならない。一意名 1 が関数一意名のとき,英数字関数又は各国文字関数でなければならない。

4) BOOLEAN

を,一意名 1 のデータ項目の項類が数字又は数字編集であるとき,指定してはならない。

5) ALPHABETIC

,ALPHABETIC-LOWER,ALPHABETIC-UPPER,又は字類名 1 を,一意名 1 のデータ

項目の項類がブール,数字又は数字編集であるとき,指定してはならない。

6)

符号系名 1 が,現地特性に関連する符号系であってはならない。

8.8.4.1.3.3 

一般規則 

1)

一意名 1 のデータ項目が長さゼロの項目である場合,語 NOT がない字類条件の真理値は偽とする。

2)

一意名 1 のデータ項目が長さゼロの項目でない場合,語 NOT がない字類条件の真理値は,次のとお

り判定される。

a) NUMERIC

を指定した場合,

1.

一意名 1 のデータ項目の項類が数字である場合,

a.

一意名 1 のデータ項目の用途が暗黙又は明示的に DISPLAY 又は NATIONAL であるとき,この

条件が真になるのは,演算符号の有無が一意名 1 のデータ項目の内容とデータ記述とで合致し,


118

X 3002

:2011 (ISO/IEC 1989:2002)

演算符号を除いた内容が全て文字 0,1,2,3,…,9 から構成されているときとする。正しい

演算符号が何であるかは,13.16.50(SIGN 句)で規定する。

b.

一意名 1 のデータ項目の用途が DISPLAY でも NATIONAL でもないとき,この条件が真になる

のは,一意名 1 のデータ項目の内容が全てその用途に対する正しい表現で構成され,PICTURE

句(もしあれば)から想定される値の範囲内にその数値が収まるときとする。

2.

一意名 1 のデータ項目の項類が数字でない場合,この条件が真になるのは,一意名 1 の内容が全

て文字 0,1,2,3,…,9 から構成されているときとする。

b) ALPHABETIC

を指定した場合,この条件は次の状況で真になる。

1.

ある現地特性が字類分けに対して有効であるとき,この条件が真になるのは,一意名 1 の指すデ

ータ項目の内容が,現在有効現地特性のカテゴリ LC_CTYPE 中で英字だと識別される文字だけか

ら構成されているときとする。

2.

どの現地特性も字類分けに対して有効でないとき,この条件が真になるのは,一意名 1 の指すデ

ータ項目の内容が,大文字の A,B,C,…,Z と空白との組合せ,小文字の a,b,c,…,z と空

白との組合せ,又は大文字と小文字と空白との組合せだけから構成されているときとする。

c) ALPHABETIC–LOWER

を指定した場合,この条件は次の状況で真になる。

1.

ある現地特性が字類分けに対して有効であるとき,この条件が真になるのは,一意名 1 の指すデ

ータ項目の内容が,現在有効現地特性のカテゴリ LC_CTYPE で小文字だと識別される文字だけか

ら構成されているときとする。

2.

どの現地特性も字類分けに対して有効でないとき,この条件が真になるのは,一意名 1 の指すデ

ータ項目の内容が,小文字の a,b,c,…,z と空白との組合せだけから構成されているときとす

る。

d) ALPHABETIC–UPPER

を指定した場合,この条件は次の状況で真になる。

1.

ある現地特性が字類分けに対して有効であるとき,この条件が真になるのは,一意名 1 の指すデ

ータ項目の内容が,現在有効現地特性のカテゴリ LC_CTYPE で大文字だと識別される文字だけか

ら構成されているときである。

2.

どの現地特性も字類分けに対して有効でないとき,この条件が真になるのは,一意名 1 の指すデ

ータ項目の内容が,大文字の A,B,C,…,Z と空白との組合せだけから構成されているときと

する。

e) BOOLEAN

を指定した場合,この条件が真になるのは,一意名 1 の指すデータ項目の内容が全てブ

ール値の"0"と"1"から構成されているときとする。

f)

符号系名 1 を指定した場合,この条件が真になるのは,一意名 1 の指すデータ項目の内容が全て特

殊名段落中の符号系名 1 で識別される符号化文字集合の文字から構成されているときとする。

g)

字類名 1 を指定した場合,この条件が真になるのは,一意名 1 の指すデータ項目の内容が全て特殊

名段落中の字類名 1 の定義に列挙した文字から構成されているときとする。

3)

語 NOT を指定した場合,真理値は逆転する。

8.8.4.1.4 

条件名条件(条件変数) 

条件名条件(condition-name condition)では,条件変数が検査され,条件名 1 に関連付けられた値のいず

れかと条件変数の値が等しいか否かが判定される。条件件数は,8.4.3(条件名)による。

8.8.4.1.4.1 

一般形式 

条件名 1


119

X 3002

:2011 (ISO/IEC 1989:2002)

8.8.4.1.4.2 

規則 

1)

条件名 1 が値の範囲又は範囲の組に関連付けられているとき,条件変数の検査は,両端も含めたこれ

らの範囲内にあるか否かが判定される。

2)

条件変数を条件名の値と比較する規則は,比較条件に対して規定された規則と同じとする。

3)

検査の結果が真になるのは,条件名 1 に対応する値のいずれかが,関連する条件変数と等しいときと

する。

8.8.4.1.5 

スイッチ状態条件 

スイッチ状態条件は,実装者定義の外部スイッチのオン状態又はオフ状態を判定する。この条件に関連

するスイッチのオン/オフ状態は,環境部の特殊名段落で命名しておかなければならない。

8.8.4.1.5.1 

一般形式 

条件名 1

8.8.4.1.5.2 

規則 

検査の結果が真になるのは,スイッチが条件名 1 に対応する位置に設定されているときとする。

8.8.4.1.6 

正負条件 

正負条件は,算術式の代数値がゼロより大きいか小さいか又は等しいかを判定する。

8.8.4.1.6.1 

一般形式 

算術式 1 IS [NOT]

 POSITIVE

 NEGATIVE

 ZERO

8.8.4.1.6.2 

規則 

1) NOT

を使うとき,NOT 及び次のキーワードで一つの正負条件となり,真理値を求めるために実行さ

れる代数的な検査を規定する。作用対象は,値がゼロより大のとき正(positive)とし,値がゼロより

小のとき負(negative)とし,値がゼロに等しいときゼロ(zero)とする。

注記 NOT

ZERO

は,ゼロでない(正又は負の)値に対する真理値検査である。

8.8.4.1.7 

引数省略条件 

引数省略条件(omitted-argument condition)は,関数・メソッド・プログラムへの引数が提供されたか否

かを判定する。

8.8.4.1.7.1 

一般形式 

データ名 1 IS [NOT] OMITTED

8.8.4.1.7.2 

構文規則 

1)

データ名 1 は仮パラメタで,この条件の指定されたソース要素中で定義されなければならない。

8.8.4.1.7.3 

一般規則 

1) OMITTED

検査の結果が真になるのは,次のときである。

a)

このプログラム,関数又はメソッドを活性化した文において,データ名 1 に対応する引数として,

一意名でも定数でもなく OMITTED 指定を書いたとき。

b)

データ名 1 に対応する引数は,引数並びの中の後のほうにある引数であり,活性化する側の文では

省略されていたとき。

c)

データ名 1 に対応する引数それ自体が,活性化する側の文においても引数省略条件を成立させるで

あろう仮パラメタだったとき。

2) NOT

を使うとき,NOT 及び次のキーワード OMITTED で一つの条件となり,真理値を求めるために


120

X 3002

:2011 (ISO/IEC 1989:2002)

実行される。

8.8.4.2 

複合条件 

複合条件(complex condition)は,複数の単純条件及び/又は複合条件を論理連結語(論理演算子 AND

又は OR)で結合して形成するか,又はこれらの条件に論理否定(論理演算子 NOT)を付けて否定して形

成する。複合条件の真理値は,括弧の有無には関係なく,構成成分である幾つかの条件に前述の論理演算

子を相互作用させた結果できあがる真理値とする。

論理演算子及びその意味は,次による。

論理演算子 

意味 

AND

論理積。その真理値が真になるのは左右の条件の両方が真のとき,

偽になるのは左右の条件の一方又は両方が偽のときとする。

OR

論理和。その真理値が真になるのは左右の条件の一方又は両方が真

のとき,偽になるのは左右の条件の両方が偽のときとする。

NOT

論理否定。その真理値が真になるのは NOT の後の条件が偽のとき,

偽になるのはその条件が真のときとする。

8.8.4.2.1 

否定条件 

否定条件(negated condition)は,条件の真理値を逆転させる論理演算子 NOT を用いて条件を否定する。

否定条件に括弧に入れても,その真理値は変わらない。

注記  否定条件の真理値は,否定される条件の真理値が偽のとき真となり,否定される条件の真理値

が真のとき偽となる。

8.8.4.2.1.1 

一般形式 

 NOT

条件 1

8.8.4.2.2 

組合せ条件 

組合せ条件(combined condition)は,論理演算子 AND 又は OR で幾つかの条件を組み合わせてできる。

8.8.4.2.2.1 

一般形式 

条件 1

 AND

 OR

条件2   …

8.8.4.2.3 

論理演算子の優先順位及び括弧の用法 

論理演算子の優先順位は,論理演算子の適用対象となる条件を決定する。ただし,明示的な括弧で優先

順位が変われば,この限りでない。論理演算子の優先順位は,NOT,AND,OR の順とする。複合条件中

に明示的な括弧があると,条件の評価順序が変わる[8.8.4.3(条件の評価順序)参照]

注記  “条件 1 OR NOT  条件 2 AND  条件 3”の意味は,“条件 1 OR ( (NOT  条件 2) AND  条件 3)”と

する。括弧を用いた意味の変更もできる。例えば“(条件 1 OR (NOT  条件 2) ) AND  条件 3”は

“条件 1 OR NOT  条件 2 AND  条件 3”とは違った評価になる。

表 6(条件,論理演算子及び括弧の組合せ)は,条件と論理演算子について,使用してもよい組合せ及

び括弧付けの方法を示す。左括弧と右括弧とは 1 対 1 に対応し,左括弧は対応する右括弧より左になけれ

ばならない。


121

X 3002

:2011 (ISO/IEC 1989:2002)

表 6−条件,論理演算子及び括弧の組合せ 

条件式中の

要素を左から右へ並べた中で,左欄の要素の

次の要素を

指定したとき

先頭に可

末尾に可

直前にあってもよい要素

先頭は除く

直後にあってもよい要素

末尾は除く

単純条件

○ OR,NOT,AND,( OR,AND,)

OR

又は AND

単純条件,)

単純条件,NOT,(

NOT

− OR,AND,(

単純条件,(

(

− OR,NOT,AND,(

単純条件,NOT,(

)

単純条件,) OR,AND,)

注記  “OR NOT”の組合せは使用してもよいが“NOT OR”の組合せは使用してはならない。また,

“NOT (”の組合せは使用してもよいが“NOT NOT”の組合せは使用してはならない。

8.8.4.2.4 

略記組合せ比較条件 

単純比較条件又は否定単純比較条件を幾つか論理結合子で組み合わせて一続きに並べて書く場合,先頭

以外の比較条件は,略記(abbreviate)してもよい。つまり,後続比較条件の左辺又は左辺と比較演算子の

対が先行比較条件と共通しており,そのような条件の並びの中では括弧を用いていないとき,次のとおり

略記してもよい。

1)

比較条件の左辺を省略可能

2)

比較条件の左辺と比較演算子との対を省略可能

一連の比較条件の中で両方の略記法を併せて用いてもよい。

8.8.4.2.4.1 

一般形式 

比較条件 1

 AND

 OR

⎪⎧

⎪⎫

 NOT

[NOT]

単純比較演算子

拡張比較演算子

右辺1   …

ここで,

“単純比較演算子”及び“拡張比較演算子”は,8.7.5(比較演算子)による。

8.8.4.2.4.2 

構文規則 

1)

比較条件 1 がブール比較条件であってはならない。

2)

暗黙に挿入がなされた結果は,

表 6(条件,論理演算子及び括弧の組合せ)の規則に従う。

3)

語 NOT が別の語 NOT 又は語列 IS NOT の直後に続いてはならない。

8.8.4.2.4.3 

一般規則 

1)

略記を用いた場合の効果は,省略された左辺の位置に直前の左辺が挿入され,省略された比較演算子

の位置に直前の比較演算子が挿入されるのと同じとする。省略された左辺及び/又は比較演算子の挿

入は,複合条件中で完全な単純条件が見つかると直ちに終わる。

2)

略記組合せ比較条件の中で語 NOT を使用した場合の解釈は,次による。

a)

語 NOT の直後に拡張比較演算子が続くとき,NOT は論理演算子と解釈される。

b)

語 NOT の直後に単純比較演算子が続くとき,NOT はその比較条件の一部となる。

c)

これ以外の NOT は論理演算子として解釈される。したがって,左辺又は論理演算子が暗黙に挿入

された結果は否定比較条件になる。

注記 NOT を用いると,往々にして直観とは異なる結果が導かれるので,用いないことが望まし

い。そのような使用方法の例を幾つか,展開形とともに次に示す。


122

X 3002

:2011 (ISO/IEC 1989:2002)

略記組合せ比較条件 

展開された等価な比較条件 

a > b AND NOT < c OR d

((a > b) AND (a NOT < c)) OR (a NOT < d)

a NOT EQUAL b OR c

(a NOT EQUAL b) OR (a NOT EQUAL c)

NOT a = b OR c

(NOT (a = b)) OR (a = c)

NOT (a GREATER b OR < c)

NOT ((a GREATER b) OR (a < c))

NOT  (a  NOT  >  b  AND  c  AND  NOT  d)  NOT (((a NOT > b) AND (a NOT > c)) AND (NOT (a NOT > d)))

8.8.4.3 

条件の評価順序 

明示的な括弧及び暗黙の括弧は,複合条件中の入れ子の水準を表す。同じ入れ子の水準にある複数個の

条件を論理演算子 AND だけで又は論理演算子 OR だけで連結したものは,複合条件中での一つの階層を

なす。複合条件全体は,その複合条件全体自体を最も外側の階層とする階層の入れ子構造と考えることが

できる。これに関連して,複合条件全体中での条件の評価は,その複合条件全体の左から比較を始め,次

の規則に従って必要なだけ繰り返し続けられる。

1)

ある階層中での連結された各条件は左から右へと順に評価され,その階層の評価は真理値が決まると

すぐに終了して,その階層中での連結された条件の全てが評価済みか否かには関係しない。

2)

算術式及び関数の値は,それらを含んでいる条件が評価されるときに確定する。同様に否定条件は,

それが表す複合条件の評価に必要なときに評価される[8.8.1(算術式)参照]


123

X 3002

:2011 (ISO/IEC 1989:2002)

8.9 

予約語 

予約語の一覧は,次による。

ACCEPT

ACCESS

ACTIVE-CLASS

ADD

ADDRESS

ADVANCING

AFTER

ALIGNED

ALL

ALLOCATE

ALPHABET

ALPHABETIC

ALPHABETIC-LOWER

ALPHABETIC-UPPER

ALPHANUMERIC

ALPHANUMERIC-EDITED

ALSO

ALTERNATE

AND

ANY

ANYCASE

ARE

AREA

AREAS

AS

ASCENDING

ASSIGN

AT

B-AND

B-NOT

B-OR

B-XOR

BASED

BEFORE

BINARY

BINARY-CHAR

BINARY-DOUBLE

BINARY-LONG

BINARY-SHORT

BIT

BLANK

BLOCK

BOOLEAN

BOTTOM

BY

CALL

CANCEL

CD

CF

CH

CHARACTER

CHARACTERS

CLASS

CLASS-ID

CLOSE

CODE

CODE-SET

COL

COLLATING

COLS

COLUMN

COLUMNS

COMMA

COMMON

COMMUNICATION

COMP

COMPUTATIONAL

COMPUTE

CONDITION

CONFIGURATION

CONSTANT

CONTAINS

CONTENT

CONTINUE

CONTROL

CONTROLS

CONVERTING

COPY

CORR

CORRESPONDING

COUNT

CRT

CURRENCY

CURSOR

DATA

DATA-POINTER

DATE

DAY

DAY-OF-WEEK

DE

DEBUGGING

DECIMAL-POINT

DECLARATIVES

DEFAULT

DELETE

DELIMITED

DELIMITER

DEPENDING

DESCENDING

DESTINATION

DETAIL

DISABLE

DISPLAY

DIVIDE

DIVISION

DOWN

DUPLICATES

DYNAMIC

EC

EGI

ELSE

EMI

ENABLE

END

END-ACCEPT

END-ADD

END-CALL

END-COMPUTE

END-DELETE

END-DISPLAY

END-DIVIDE

END-EVALUATE

END-IF

END-MULTIPLY

END-OF-PAGE

END-PERFORM

END-READ

END-RECEIVE

END-RETURN

END-REWRITE

END-SEARCH

END-START

END-STRING

END-SUBTRACT

END-UNSTRING

END-WRITE

ENVIRONMENT

EO

EOP

EQUAL

ERROR

ESI

EVALUATE


124

X 3002

:2011 (ISO/IEC 1989:2002)

EXCEPTION

EXCEPTION-OBJECT

EXIT

EXTEND

EXTERNAL

FACTORY

FALSE

FD

FILE

FILE-CONTROL

FILLER

FINAL

FIRST

FLOAT-EXTENDED

FLOAT-LONG

FLOAT-SHORT

FOOTING

FOR

FORMAT

FREE

FROM

FUNCTION

FUNCTION-ID

GENERATE

GET

GIVING

GLOBAL

GO

GOBACK

GREATER

GROUP

GROUP-USAGE

HEADING

HIGH-VALUE

HIGH-VALUES

I-O

I-O-CONTROL

IDENTIFICATION

IF

IN

INDEX

INDEXED

INDICATE

INHERITS

INITIAL

INITIALIZE

INITIATE

INPUT

INPUT-OUTPUT

INSPECT

INTERFACE

INTERFACE-ID

INTO

INVALID

INVOKE

IS

JUST

JUSTIFIED

KEY

LAST

LEADING

LEFT

LENGTH

LESS

LIMIT

LIMITS

LINAGE

LINAGE-COUNTER

LINE

LINE-COUNTER

LINES

LINKAGE

LOCAL-STORAGE

LOCALE

LOCK

LOW-VALUE

LOW-VALUES

MERGE

MESSAGE

METHOD

METHOD-ID

MINUS

MODE

MOVE

MULTIPLY

NATIONAL

NATIONAL-EDITED

NATIVE

NEGATIVE

NESTED

NEXT

NO

NOT

NULL

NUMBER

NUMERIC

NUMERIC-EDITED

OBJECT

OBJECT-COMPUTER

OBJECT-REFERENCE

OCCURS

OF

OFF

OMITTED

ON

OPEN

OPTIONAL

OPTIONS

OR

ORDER

ORGANIZATION

OTHER

OUTPUT

OVERFLOW

OVERRIDE

PACKED-DECIMAL

PADDING

PAGE

PAGE-COUNTER

PERFORM

PF

PH

PIC

PICTURE

PLUS

POINTER

POSITION

POSITIVE

PRESENT

PRINTING

PROCEDURE

PROGRAM

PROGRAM-ID

PROGRAM-POINTER

PROPERTY

PROTOTYPE

PURGE

QUEUE

QUOTE

QUOTES

RAISE

RAISING

RANDOM


125

X 3002

:2011 (ISO/IEC 1989:2002)

RD

READ

RECEIVE

RECORD

RECORDS

REDEFINES

REEL

REFERENCE

RELATIVE

RELEASE

REMAINDER

REMOVAL

RENAMES

REPLACE

REPLACING

REPORT

REPORTING

REPORTS

REPOSITORY

RESERVE

RESET

RESUME

RETRY

RETURN

RETURNING

REWIND

REWRITE

RF

RH

RIGHT

ROUNDED

RUN

SAME

SCREEN

SD

SEARCH

SECTION

SEGMENT

SELECT

SELF

SEND

SENTENCE

SEPARATE

SEQUENCE

SEQUENTIAL

SET

SHARING

SIGN

SIZE

SORT

SORT-MERGE

SOURCE

SOURCE-COMPUTER

SOURCES

SPACE

SPACES

SPECIAL-NAMES

STANDARD

STANDARD-1

STANDARD-2

START

STATUS

STOP

STRING

SUB-QUEUE-1

SUB-QUEUE-2

SUB-QUEUE-3

SUBTRACT

SUM

SUPER

SUPPRESS

SYMBOLIC

SYNC

SYNCHRONIZED

SYSTEM-DEFAULT

TABLE

TALLYING

TERMINAL

TERMINATE

TEST

TEXT

THAN

THEN

THROUGH

THRU

TIME

TIMES

TO

TOP

TRAILING

TRUE

TYPE

TYPEDEF

UNIT

UNIVERSAL

UNLOCK

UNSTRING

UNTIL

UP

UPON

USAGE

USE

USER-DEFAULT

USING

VAL-STATUS

VALID

VALIDATE

VALIDATE-STATUS

VALUE

VALUES

VARYING

WHEN

WITH

WORKING-STORAGE

WRITE

ZERO

ZEROES

ZEROS

+

*

/

**

>

<

=

>=

<=

&

*>

::

>>


126

X 3002

:2011 (ISO/IEC 1989:2002)

8.10 

文脈依存語 

文脈依存語は,次による。これらは,特定の構文構造,すなわち文脈の中で予約されている。一般形式

で文脈依存語を書いてもよいとしている箇所にその文脈依存語が使われるとき,その語はキーワードとし

て扱われる。さもなければ,その語は利用者定義語とみなされる。

文脈依存語 

構文構造又は文脈 

ARITHMETIC

OPTIONS

段落

ATTRIBUTE

SET

AUTO

画面記述項

AUTOMATIC

LOCK MODE

BACKGROUND-COLOR

画面記述項

BELL

画面記述項及び SET 属性文

BLINK

画面記述項及び SET 属性文

BYTE-LENGTH

定数記述項

CENTER

COLUMN

CLASSIFICATION

実行用計算機段落

CYCLE

EXIT

ENTRY-CONVENTION

選択肢段落

EOL

画面記述項の ERASE 句

EOS

画面記述項の ERASE 句

ERASE

画面記述項

EXPANDS

リポジトリ段落のクラス指定子及びインタフェース指定子

FOREGROUND-COLOR

画面記述項

FOREVER

RETRY

指定

FULL

画面記述項

HIGHLIGHT

画面記述項及び SET 属性文

IGNORING

READ

IMPLEMENTS

ファクトリ段落及びオブジェクト段落

INITIALIZED

ALLOCATE

INTRINSIC

リポジトリ段落の関数記述項

LC_ALL

SET

LC_COLLATE

SET

LC_CTYPE

SET

LC_MESSAGES

SET

LC_MONETARY

SET

LC_NUMERIC

SET

LC_TIME

SET

LOWLIGHT

画面記述項及び SET 属性文


127

X 3002

:2011 (ISO/IEC 1989:2002)

文脈依存語 

構文構造又は文脈 

MANUAL

LOCK MODE

MULTIPLE

LOCK ON

指定

NONE

DEFAULT

NORMAL

STOP

NUMBERS

COLUMN

句及び LINE 句

ONLY

SHARING

句,SHARING 指定,オブジェクトビュー及び

USAGE

PARAGRAPH

EXIT

PREVIOUS

READ

RECURSIVE

プログラム名段落

RELATION

ERROR

REQUIRED

画面記述項

REVERSE-VIDEO

画面記述項及び SET 属性文

SECONDS

RETRY

指定

SECURE

画面記述項

SIGNED

USAGE

STATEMENT

RESUME

STEP

OCCURS

STRONG

TYPEDEF

SYMBOL

CURRENCY

UCS-4

ALPHABET

UNDERLINE

画面記述項及び SET 属性文

UNSIGNED

USAGE

UTF-8

ALPHABET

UTF-16

ALPHABET

YYYYDDD

ACCEPT

YYYYMMDD

ACCEPT

全ての例外名は,文脈依存語とする。例外名が現れてよい箇所は,RAISE 文,GOBACK 文及び EXIT 文

の RAISING 指定,USE EXCEPTION 文並びに TURN 翻訳指示の直後に限られるからである。例外名の一

覧は,14.5.12.1(例外状態)による。


128

X 3002

:2011 (ISO/IEC 1989:2002)

8.11 

組込み関数名 

組込み関数名は,次による。

ABS

ACOS

ANNUITY

ASIN

ATAN

BOOLEAN-OF-INTEGER

BYTE-LENGTH

CHAR

CHAR-NATIONAL

COS

CURRENT-DATE

DATE-OF-INTEGER

DATE-TO-YYYYMMDD

DAY-OF-INTEGER

DAY-TO-YYYYDDD

DISPLAY-OF

E

EXCEPTION-FILE

EXCEPTION-FILE-N

EXCEPTION-LOCATION

EXCEPTION-LOCATION-

N

EXCEPTION-STATEMENT

EXCEPTION-STATUS

EXP

EXP10

FACTORIAL

FRACTION-PART

HIGHEST-ALGEBRAIC

INTEGER

INTEGER-OF-BOOLEAN

INTEGER-OF-DATE

INTEGER-OF-DAY

INTEGER-PART

LENGTH

LOCALE-COMPARE

LOCALE-DATE

LOCALE-TIME

LOG

LOG10

LOWER-CASE

LOWEST-ALGEBRAIC

MAX

MEAN

MEDIAN

MIDRANGE

MIN

MOD

NATIONAL-OF

NUMVAL

NUMVAL-C

NUMVAL-F

ORD

ORD-MAX

ORD-MIN

PI

PRESENT-VALUE

RANDOM

RANGE

REM

REVERSE

SIGN

SIN

SQRT

STANDARD-COMPARE

STANDARD-DEVIATION

SUM

TAN

TEST-DATE-YYYYMMDD

TEST-DAY-YYYYDDD

TEST-NUMVAL

TEST-NUMVAL-C

TEST-NUMVAL-F

UPPER-CASE

VARIANCE

WHEN-COMPILED

YEAR-TO-YYYY


129

X 3002

:2011 (ISO/IEC 1989:2002)

8.12 

翻訳指示語 

次に示す語を,翻訳指示の中では予約語とする。

ALL

AND

AS

B-AND

B-NOT

B-OR

B-XOR

CALL-CONVENTION

CHECKING

COBOL

CORRESPONDING

DE-EDITING

DEFINE

DEFINED

DIVIDE

ELSE

END-IF

END-EVALUATE

EQUAL

EVALUATE

FIXED

FLAG-85

FLAG-NATIVE-ARITHMETIC

FORMAT

FREE

FUNCTION-ARGUMENT

GREATER

IF

IMP

IS

LEAP-SECOND

LESS

LISTING

LOCATION

MOVE

NOT

NUMVAL

OFF

ON

OR

OTHER

OVERRIDE

PAGE

PARAMETER

PROPAGATE

SET

SIZE

SOURCE

STANDARD-1

STANDARD-2

THAN

THROUGH

THRU

TO

TRUE

TURN

WHEN

WITH

ZERO-LENGTH

+

*

/

<=

>=

<

>

=

(

)

これらに加えて,14.5.12.1(例外状態)に規定する全ての例外名も,翻訳指示の予約語とする。


130

X 3002

:2011 (ISO/IEC 1989:2002)

8.13 

外部リポジトリ 

外部リポジトリ(external repository)は,プログラム原型,関数原型,プログラム定義,関数定義,ク

ラス定義及びインタフェース定義の中で規定された情報を保管する機構とする。

これらのソース単位に由来して保管される情報は,プログラム,関数,又はメソッドの活性化,及び適

合検査のために必要となる全ての情報からなる。この情報には,次のものが含まれる。

−  ソース単位の外部公開名。

−  ソース単位の種類(プログラム,関数,クラス,インタフェースのいずれか)

−  ソース単位にパラメタの指定があるとき,パラメタの記述,渡しかた(参照渡し又は値渡し)及び省

略の可否。

−  ソース単位に返却項目の指定があるとき,返却項目の記述。

−  実行時要素が引き起こしてもよい例外の指定があるとき,その例外。

−  ソース単位に入口規約の指定があるとき,その入口規約。

−  ソース単位にオブジェクトプロパティの指定があるとき,そのプロパティ。

−  ソース単位にメソッドが含まれるとき,そのメソッド,並びにその外部公開名,パラメタ,返却項目

及び入口規約の詳細。

−  パラメタ及び返却項目の記述用に必要な型宣言。

−  ソース単位での DECIMAL-POINT IS COMMA 句の指定の有無。

−  ソース単位中に定義された通貨編集用記号とそれに対応する通貨文字列。

−  ソース単位の仮パラメタ又は返却項目に関連する現地特性の外部識別。

−  そのほか実装者が必要とするあらゆる情報。

ソース単位に関するこれらの情報(外部公開名以外)を,呼出し情報(signature)と呼ぶ。情報が原型

と定義のいずれに由来するものであっても,プログラム又は関数の呼出し情報に関して外部リポジトリに

保管される情報は同じである。

実装系には,翻訳単位を翻訳する場合に外部リポジトリを更新するか否かの指定を利用者に許可する機

構が提供されていなければならない。

実装系には,翻訳群中の原型及び定義と外部リポジトリ中の情報との相違に対してフラグを立てるか否

かの指定を利用者に許可する機構が提供されていなければならない。

ソース単位の名前と外部リポジトリ中の情報との関連付けについては,12.2.7(リポジトリ段落)におい

て詳細を規定する。

入出力,オブジェクト及び利用者定義関数 

9.1 

ファイル 

9.1.1 

物理ファイル及び論理ファイル 

ファイルの物理的事項は,入出力媒体上の表現に合わせてデータを記述するものであり,次に示す仕様

を含んでいる。

1)

ファイル媒体の物理的制限に合わせた論理レコードのブロック化。

2)

ファイルを識別する方法。

ファイルの概念的つまり論理的な特性は,ファイル自体の中の論理的実体をそれぞれ定義することで明

らかになる。COBOL の入出力文は,1 回に一つの論理レコードを参照する。

物理レコードと論理レコードの区別は重要である。COBOL の論理レコードは,関連ある情報の集まり


131

X 3002

:2011 (ISO/IEC 1989:2002)

であり,一意に識別可能であり,単位として扱われる。

物理レコードは,出力装置へ転送され記録される情報又は入力装置から転送される情報の物理的な単位

である。物理レコードの大きさはハードウェアに依存するものであり,装置上にある情報ファイルの大き

さと直接の関係はない。

一つの論理レコードが単一の物理的単位に収まることもあり,複数の論理レコードが単一の物理的単位

に収まることもあり,一つの論理レコードを収めるのに複数の物理的単位が必要なこともある。原始言語

には,論理レコードと物理的単位との関係を記述するために幾つかの書き方がある。この関係が確立した

場合,物理的単位に関連付けられた論理レコードの呼出し方法の制御は,実行時モジュールが処理系と相

互に作用して行う。この規格においては,特に“物理レコード”という用語を用いない限り,単にレコー

ドといえば論理レコードを指す。また,同様に“物理ファイル”を用いない限り,単にファイルといえば

ファイルの論理的な特性を指す。各々のファイル結合子には関連する論理ファイルが一つ存在して,その

ファイル結合子を指すファイル名によって参照される。一つの物理ファイルに関連する論理ファイルが複

数あってもよい。

論理レコードと物理的単位との間で転記を行う場合,CODE-SET 句又は FORMAT 句を指定することに

よって必要となる変換を行う。必要に応じて埋め草文字が追加又は削除される。

9.1.2 

レコード領域 

レコード領域(record area)とは,ファイルに関連付けられた記憶領域であって,その内部においてファ

イルの論理レコードを実行時要素が呼出し可能となる。レコード領域を実行時要素が呼出し可能になるの

は OPEN 文が成功完了してからである。入力ファイルでは,READ 文の実行が成功してから論理レコード

がレコード領域内で使用可能となる。出力ファイル又は拡張ファイルでは,WRITE 文又は REWRITE 文の

実行が成功するまで論理レコードが使用可能とする。入出力両用ファイルでは,READ 文の実行が成功し

てから別の READ 文を実行するまで又は REWRITE 文の実行が成功するまで,論理レコードは使用可能と

する。

9.1.3 

ファイル結合子 

ファイル結合子は,ファイル名で参照され,利用者には参照不能な記憶領域であり,実行単位が入出力

操作の状態及び物理ファイルとの連絡状態を確定するために使用する情報をもつ。

ファイル結合子は幾つかの属性をもち,関連するファイル名に対するファイル記述項及びファイル管理

記述項に句及び指定を書くことによって,及び入出力文を実行することによって指定される。属性には,

ファイル編成(順・索引・相対)

,呼出し法(順・乱・動的)

,施錠モード(自動・手動・なし)

,施錠処理

モード(単一レコード施錠・複数レコード施錠・なし)

,オープンモード(入力・出力・入出力両用・拡張)

共用モード(排他的・読取り専用・他全てと共用・実装者定義・共用なし)

,及び報告書ファイル結合子か

否かがある。さらに,ファイル位置指示子,参照キー,入出力状態の値,現在ボリュームポインタ,ファ

イル錠,及びレコード錠の情報もある。

ファイル結合子は,内部又は外部のいずれかである[8.6.2(外部項目及び内部項目)参照]

。内部ファイ

ル結合子では,各々のファイル記述項に一つずつファイル結合子が関連付けられる。外部ファイル結合子

では,同じファイル名を記述するファイル記述項がどれだけあろうと,実行単位に関連付けられるファイ

ル結合子は唯一となる。

9.1.4 

オープンモード 

ファイル結合子が開いているとは,そのオープンモードが入力・出力・入出力両用・拡張のいずれかで

ある時点をいう。ファイル結合子が開いている場合,それは論理ファイルと物理ファイルの間を連結する


132

X 3002

:2011 (ISO/IEC 1989:2002)

機構となる。

ファイル結合子のオープンモードは,関連ファイル名を参照している OPEN 文の実行が成功することに

よって,設定される。OPEN 文は,ファイル結合子を物理ファイルと関連付ける処理も行う。関連ファイ

ル名を CLOSE 文が参照していると,ファイル結合子はそれ以上は物理ファイルと関連付けられた状態で

も開かれた状態でもなくなる。次の場合,COBOL 実行時システムは,開かれた状態のファイル結合子に

対して,選択可能指定のない暗黙の CLOSE 文を実行する。

−  実行単位が終了したとき。

−  プログラム中に記述された初期化ファイル結合子に対しては,呼び出される側のプログラム中で

GOBACK

文又は EXIT PROGRAM 文が実行されたとき。

−  プログラム中のファイル結合子に対しては,そのプログラム又はその外側のプログラムに対して

CANCEL

文が実行されたとき。

−  オブジェクト中のファイル結合子に対しては,そのオブジェクトが削除されたとき。

9.1.5 

ファイル結合子の共用 

実行単位中の二つの実行時要素は,次の環境において共通なファイル結合子を参照してもよい。

1)

外部ファイル結合子は,

そのファイル結合子を記述しているあらゆる実行時要素から参照してもよい。

2)

プログラムが別のプログラムに内包されている場合,両方のプログラムは,外側のプログラム中,又

はその外側のプログラムを直接又は間接に内包するプログラム中の大域ファイル名の参照によって,

共通のファイル結合子を参照してもよい。

9.1.6 

ファイル固有属性 

物理ファイルには,ファイルの作成時に適用され,ファイルの生存期間を通じて変えられない様々な属

性がある。主な属性はファイル編成(organization)であり,ファイルの論理構造を記述するものである。

編成には,順編成,相対編成,及び索引編成の 3 種類がある。COBOL を通して提供される,これ以外の

ファイル固有属性には,主レコードキー,副レコードキー,符号系,論理レコードのバイト長の最小値及

び最大値,レコード形式(固定長又は可変長)

,索引ファイルのキーの文字照合順序,物理レコードのバイ

ト長の最小値及び最大値,埋め草文字,並びにレコード区切り記号がある。物理ファイルを共用する機能

がファイル固有属性か否かは,実装者定義とする。

9.1.7 

編成 

ファイル編成には,順編成,相対編成,及び索引編成の 3 種類がある。

9.1.7.1 

順編成 

順ファイルは,最後以外の各レコードに対してその直後のレコードが一意に決まり,先頭以外の各レコ

ードに対してその直前のレコードが一意に決まるように編成され