アットウィキロゴ
### 📝 0500〜0539:コード生成・メモリ管理・高度な最適化エラー

◆ IEL0500I ◆
意味:プログラムの一部を最適化する処理(賢い簡略化)で、処理の辻褄が合わなくなりました。
💡 解説:翻訳ロボットが「ここはもっと速く動くはずだ!」とプログラムを書き換えた結果、元のプログラムが意図していた動きを再現できなくなってしまいました。お節介が過ぎて失敗した状態です。

◆ IEL0501I ◆
意味:変数の有効範囲(スコープ)を追跡するための管理表が、プログラムの階層の深さに負けてパンクしました。
💡 解説:入れ子の部屋が深すぎて、どの部屋にどの名前の箱があるかを記録する「家系図」が書ききれなくなりました。

◆ IEL0502I ◆
意味:あるはずのデータへの住所(ポインタ)が、計算結果として算出されません。
💡 解説:データの置いてある場所を指し示す指差し棒が、計算ミスによってどこを指していいか分からなくなっています。

◆ IEL0503I ◆
意味:この命令の場所は、コンパイラの内部的な制限によって、これ以上処理を深追いできません。
💡 解説:あまりにも複雑な命令文の塊(ステートメント)なので、これ以上細かく解析するとコンパイラが迷子になる、と翻訳機が降参した状態です。

◆ IEL0504I ◆
意味:手続き(関数)の終了を示す END文が、始まりの PROCEDURE と対応していません。
💡 解説:PROCEDURE という名の部屋に入ったのに、出口の END文が違う名前の部屋の出口になっています。廊下で迷子になっている状態です。

◆ IEL0505I ◆
意味:ファイルを開くオプションに、今の実行環境では許可されていない設定が含まれています。
💡 解説:例えば「読み込み専用のファイルに対して書き込み権限を要求する」といった、環境が許さない無理難題を命令しています。

◆ IEL0506I ◆
意味:この変数の初期値(INITIAL)は、プログラムが実際に動いている最中に確定するため、コンパイル時にはセットできません。
💡 解説:「最初の値は、今日の日付の計算結果だよ」と言われても、翻訳機は未来のことは分からないので「それは実行する人がやってね!」と突き返しています。

◆ IEL0507I ◆
意味:配列の次元(引き出しの層)を指定する値が、正の整数ではありません。
💡 解説:ロッカーを「マイナス2層」作ることはできません。引き出しの数は必ず1以上のプラスの整数にしましょう。

◆ IEL0508I ◆
意味:外部の手続き(ENTRY)を呼び出す際の引数の型が、前の宣言と矛盾しています。
💡 解説:最初に「この関数は整数を渡すよ」と言っておきながら、別の場所では「いや、実は文字を渡すんだ」と嘘をついています。どちらが本当か教えてあげてください。

◆ IEL0509I ◆
意味:計算式の途中で、ビットデータと文字データが無理やり結合されようとしています。
💡 解説:0と1の列と、アルファベットの列を繋げようとしています。コンピュータはどちらの形式に合わせるか判断がつかず困っています。

◆ IEL0510I ◆
意味:このステートメント(命令文)に付けられた属性(特徴)は、無効です。
💡 解説:設定した特徴が、データの種類と根本的に相性が悪い(例えば、数字の箱にファイルの窓口属性を付けるなど)状態です。

◆ IEL0511I ◆
意味:この場所にある代入式は、メモリの住所指定(ポインタ)と値(データ)の型が混ざって衝突しています。
💡 解説:住所そのものと、住所にある中身のデータを、同じイコールで繋ごうとしています。次元の違うものを比較しても計算は成り立ちません。

◆ IEL0512I ◆
意味:この命令文のなかで、配列の添字(番号)を計算するための式が複雑すぎて、コンパイル時には確定できません。
💡 解説:ロッカーの何番目を開けるかを、実行時の状況で変えるのはOKですが、それに使う計算式があまりにも複雑すぎて、翻訳段階で「どれくらいのメモリが必要か」の見積もりが立てられません。

◆ IEL0513I ◆
意味:構造体のメンバー変数の名前が、外部から参照できない(PRIVATE的な)設定になっています。
💡 解説:他のプログラムからはこのメンバーにアクセスできないはずなのに、無理やり覗き込もうとしています。

◆ IEL0514I ◆
意味:この変数に代入された値は、そのデータ型が許容する最大値を突破しています。
💡 解説:100しか入らない小さな箱に、1000を入れようとしています。数字が溢れてしまい、正しい値が保持できません。

◆ IEL0515I ◆
意味:ポインタ(住所)の指し先が、有効ではない番地を指しています。
💡 解説:NULL番地や、すでに解放された過去の住所を指している危険な状態です。このポインタを使うとプログラムが即座に落ちます。

◆ IEL0516I ◆
意味:構造体のパッケージをコピーする命令(BY NAME)で、名前の不一致が多すぎます。
💡 解説:引っ越し元と先で、名前が合う引き出しがほとんどありません。作業しても意味がないので、コピー処理がスキップされました。

◆ IEL0517I ◆
意味:この命令文のなかに、使ってはいけない予約語が紛れ込んでいます。
💡 解説:変数名やラベル名として、PL/Iが内部でこっそり使っている特別な名前を勝手に使っています。

◆ IEL0518I ◆
意味:ファイル制御のための作業バッファが、OSの制限を超えて巨大です。
💡 解説:データのやり取りのためにOSから借りる作業部屋が、あまりにも広すぎて「そんなに広い部屋は一度に貸せないよ!」とOSから拒否されています。

◆ IEL0519I ◆
意味:この計算式のなかで、浮動小数点数(小数)の計算精度が保てません。
💡 解説:ものすごく細かい小数と、巨大な数値を同時に扱おうとして、コンピュータが計算の細かさをどこに合わせればいいか迷っています。

◆ IEL0520I ◆
意味:コンパイラによる最適化の結果、意図しない無限ループが形成される可能性があります。
💡 解説:プログラムをきれいに並び替えた結果、条件判定がおかしくなり、脱出条件が消えてしまった状態です。

◆ IEL0521I ◆
意味:ステートメント(命令文)に付けられたラベルの名前が、すでにこの部屋の中の別の命令で使われています。
💡 解説:同じ部屋の中に、同じ名前の看板(ラベル)が2つ立っています。どっちの看板に行けばいいのか分かりません。

◆ IEL0522I ◆
意味:関数の引数リストのなかに、引数の個数が規定値と異なる呼び出しがあります。
💡 解説:3人兄弟のデータが必要な場所に、2人しか連れてきていません。1人足りないと処理が進みません。

◆ IEL0523I ◆
意味:この変数の属性指定が、以前に書かれたコードと矛盾しています。
💡 解説:「ここは整数だよ」と書いたはずなのに、別の行では「ここは文字だよ」と矛盾する指示が書かれています。

◆ IEL0524I ◆
意味:このステートメントは、今のプログラムの階層(ブロックレベル)では使えません。
💡 解説:家の中の家具を、いきなり屋外の屋根の上に設置しようとしているような配置ミスです。

◆ IEL0525I ◆
意味:配列の引き出し番号(添字)の計算結果が、メモリの範囲外を指しています。
💡 解説:10番までしかないロッカーの、11番目や12番目を開けようとしています。メモリの壁を突き破ろうとしているので危険です。

◆ IEL0526I ◆
意味:構造体のなかのデータ配置を調整する属性が、他の設定と競合しています。
💡 解説:「キッチリ詰める」という命令と「隙間を空けて整列する」という命令が同居しています。どっちが正しいか選ばせてください。

◆ IEL0527I ◆
意味:この手続き(関数)を呼び出す際に、必要な引数リストがどこにも見当たりません。
💡 解説:関数への入り口はあるのに、渡すべきデータを入れるための箱(引数リスト)が空っぽです。

◆ IEL0528I ◆
意味:一時的なメモリを解放する命令(FREE文)で、対象の変数がすでに解放済みです。
💡 解説:すでに片付け終わったはずの机を、もう一度「片付けろ!」と命令しています。何もないところを消そうとしても何も起こりません。

◆ IEL0529I ◆
意味:プログラム内のジャンプ先(ラベル)が、PROCEDUREの外側にある遠い場所を指しています。
💡 解説:部屋の中から、外の街の看板を目指してジャンプしようとしています。遠すぎて届かないのでエラーになります。

◆ IEL0530I ◆
意味:この命令の場所は、コンパイル中に発生した内部エラーのため、解析が打ち切られました。
💡 解説:翻訳機が命令を読もうとした瞬間、内部で何かが壊れて思考がストップしました。翻訳機がクラッシュしたような状態です。

◆ IEL0531I ◆
意味:このプログラムで使用されている、外部ファイルのデータ構造(レイアウト)が、実行環境と合っていません。
💡 解説:データの並び順やサイズが、実際にファイルを読み書きするOSの仕様と噛み合っていないため、ファイルが開けません。

◆ IEL0532I ◆
意味:文字定数の長さが、処理できる限界を超えています。
💡 解説:1行の文字の長さを超えるような巨大な文字列を一気に登録しようとしています。

◆ IEL0533I ◆
意味:構造体のレベル番号が、親の箱の番号よりも不自然に大きすぎます。
💡 解説:親がレベル1なのに、いきなりレベル100のような数字が来ると、どこに所属しているか特定できません。

◆ IEL0534I ◆
意味:ポインタ(住所)に加算しようとしている値が、データの単位と合っていません。
💡 解説:メモリの番地を動かしたいのに、番地ではなく、まったく別の意味の数値で足し算しようとしています。

◆ IEL0535I ◆
意味:コンパイラの最適化処理によって、変数の値が失われる可能性があります。
💡 解説:翻訳機が「この変数はもう使われないはずだ」と勘違いして、中身を消去してしまった可能性があります。

◆ IEL0536I ◆
意味:条件式(IF)の中で、同じ定数同士を比較しています。
💡 解説:「1 = 1 ですか?」と聞いています。常に正しいので、そのIF文は無意味です。

◆ IEL0537I ◆
意味:この関数(手続き)には戻り値(RETURNS)の設定がありません。
💡 解説:答えを返す約束がない関数なのに、無理やり答えを受け取ろうとしています。

◆ IEL0538I ◆
意味:構造体のメンバーの配置ルールが、このCPU環境では効率が悪すぎます。
💡 解説:箱の詰め方が悪いため、メモリの読み込み回数が倍に増えてしまうよ、という警告です。

◆ IEL0539I ◆
意味:このステートメントは、命令文としては正しくても、この場所(ブロックの入り口など)には置けません。
💡 解説:部屋の入り口にいきなり家具を置いて邪魔をしているような状態です。まずは部屋の中に入ってから命令を書きましょう。


承知いたしました!一切の手抜き・間引きなしで、IEL0540I から番号順にどこまでも突き進みます。ルール通り「太字の星マーク()」は使わずに、たとえ話で分かりやすく解説していきますね!


### 📝 0540〜0579:データ属性・ファイル操作・メモリ管理の詳細エラー

◆ IEL0540I ◆
意味:プログラムを最適化(高速化)する際、変数の寿命管理が複雑になりすぎて整理ができませんでした。
💡 解説:翻訳機が「どこでどの変数が不要になるか」を調べようとしましたが、プログラムのジャンプが多すぎて、データの寿命がどこで終わるのか正確に追跡できず、整理を諦めた状態です。

◆ IEL0541I ◆
意味:変数 D が、定義された後に一度も読み出されていません。
💡 解説:箱にデータを詰め込んだだけで、誰からもその中身を見られることなくプログラムが終わっています。ただの無駄な作業なので、計算を省くためにシステムが無視した可能性があります。

◆ IEL0542I ◆
意味:配列(ロッカー)のサイズ指定に、コンパイル時には分からない変数が使われています。
💡 解説:ロッカーの大きさを「プログラムが動くときの気分で決める(動的配列)」のではなく、「今すぐここで箱の大きさを確定させろ」と命令されています。確定できない条件で確定させようとしているのでエラーです。

◆ IEL0543I ◆
意味:このプログラムで使用されている外部手続き(ENTRY)の引数リストが、矛盾しています。
💡 解説:ある場所では「数字を3つ渡せ」と言い、別の場所では「数字を2つと文字を1つ渡せ」と言っています。どっちが本当のデータ型なのかシステムが混乱しています。

◆ IEL0544I ◆
意味:データ型の変換(型変換)の際、メモリの配置が合わなくてコピーが必要です。
💡 解説:データの形が違うので、メモリの場所をそのまま使うことができず、別の場所にコピーを作って変換しています。処理速度が少し遅くなるよ、という警告です。

◆ IEL0545I ◆
意味:比較演算(IF文など)で、文字データと数字データが直接比べられています。
💡 解説:リンゴの重さと、色という全く別の次元のものを比べようとしています。システムが無理やり数値を文字に直して比べますが、結果が直感とズレる可能性があります。

◆ IEL0546I ◆
意味:ジャンプ命令(GOTO)の飛び先が、同じ部屋(ブロック)の中ですが、ジャンプ順序が異常です。
💡 解説:部屋の中で、今から処理されるはずの命令をすっ飛ばして、先の命令へ飛び込もうとしています。これだと変数の初期化などが正しく行われない恐れがあります。

◆ IEL0547I ◆
意味:事前処理用の組み込み関数の引数が足りません。
💡 解説:マクロの道具を使う際に、必要なデータ(引数)が脱落しています。これでは道具が正しく機能しません。

◆ IEL0548I ◆
意味:プログラムのなかの定数(決まった値)が、データ箱の大きさに収まりません。
💡 解説:100しか入らない箱に「1000」という決まった値(定数)を入れようとしています。翻訳段階で無理だと分かっていることをやろうとしています。

◆ IEL0549I ◆
意味:この変数の属性指定の中に、矛盾する「キリの良い配置(ALIGNED)」と「隙間なく詰める(UNALIGNED)」が同居しています。
💡 解説:どっちの並べ方にするか決めてください。両方は無理です。

◆ IEL0550I ◆
意味:この命令の場所は、メモリの住所(ポインタ)を操作するための専用の場所です。
💡 解説:普通のデータを扱うべき場所で、メモリの番地(ポインタ)を強引に操作しようとしています。専門外の命令なのでエラーになります。

◆ IEL0551I ◆
意味:構造体のコピー処理(BY NAME)において、同じ階層に同じ名前の引き出しが2つあります。
💡 解説:パッケージの中に「ペン」という名前の引き出しが2つあるため、コピーするときにどっちのペンに中身を移せばいいか分かりません。

◆ IEL0552I ◆
意味:この命令のなかで、メモリの境界線を跨いでデータを読み書きしようとしています。
💡 解説:CPUが一度に読み込める単位を、データがまたいで存在しています。読み込みが2回必要になるため、少し処理が遅くなります。

◆ IEL0553I ◆
意味:この関数(手続き)の引数リストが、呼び出し側と受信側で完全に食い違っています。
💡 解説:渡す側は「数字を渡す」と言っているのに、受け取る側は「文字を待っている」という、完璧なすれ違いが起きています。

◆ IEL0554I ◆
意味:ポインタ変数そのものを、直接計算式の中で使おうとしています。
💡 解説:住所を指す指差し棒を、そのまま足し算の道具として使おうとしています。住所(番地)の意味が変わってしまうので、計算には使えません。

◆ IEL0555I ◆
意味:このステートメント(命令文)に付けられた特徴(属性)は、今のOS環境ではサポートされていません。
💡 解説:新しい機能を使おうとしていますが、いま動かそうとしているVSE/ESAのシステムがその機能に対応していません。

◆ IEL0556I ◆
意味:ファイルを開く命令(OPEN)のなかで、ファイル名 D が見つかりません。
💡 解説:ファイル窓口として登録されていない名前を使って「そのファイルを開け!」と命令しています。窓口の登録(DECLARE)を忘れています。

◆ IEL0557I ◆
意味:この命令の場所は、プログラム全体の終了処理(RETURN)が行われるべき場所です。
💡 解説:関数の出口の直前で、唐突に関係のない計算式が書かれています。命令の順番がおかしいです。

◆ IEL0558I ◆
意味:配列の引き出しを指す数字(添字)が、負の値になる可能性があります。
💡 解説:ロッカーの引き出し番号に「マイナス1番」を指定しようとしています。そんな場所はないので、アクセスした瞬間にメモリ破壊が起きます。

◆ IEL0559I ◆
意味:構造体(パッケージ)のなかの、ある特定のデータの型が、その環境では処理できません。
💡 解説:非常に特殊な形式のデータ(古い時代の型など)を扱おうとしていますが、翻訳機がそのデータの再現方法を知りません。

◆ IEL0560I ◆
意味:この計算式の中での、データの優先順位(カッコの付け方)が不明確です。
💡 解説:「A + B * C」のように、足し算が先か掛け算が先か、あるいは右からか左からか、機械によって解釈が割れる書き方をしています。カッコを付けてハッキリさせましょう。

◆ IEL0561I ◆
意味:この命令の場所は、構造体のメンバーを直接操作する命令(BY NAMEなど)の対象外です。
💡 解説:パッケージの全体を操作する命令なのに、対象が単なる変数であり、パッケージではないため操作できません。

◆ IEL0562I ◆
意味:この変数に指定された属性は、他のデータとの互換性がありません。
💡 解説:このデータを別の外部プログラムに渡したとき、相手のプログラムがその形式を理解できずに壊れてしまう可能性があります。

◆ IEL0563I ◆
意味:ファイル制御のバッファ(一時置き場)の割り当てに失敗しました。
💡 解説:データを出し入れするための部屋(バッファ)を確保しようとしましたが、メモリが足りず部屋が借りられませんでした。

◆ IEL0564I ◆
意味:この手続き(関数)を呼び出す際に、メモリのスタック(積み上げ領域)が溢れる可能性があります。
💡 解説:再帰呼び出し(自分自身を呼ぶ)が深すぎて、関数を呼び出すためのメモ帳(スタック)が足りません。

◆ IEL0565I ◆
意味:この命令の中で、メモリの内容を不正に書き換えようとしています。
💡 解説:自分自身の手続き(コード領域)を、自分自身で書き換えようとしています。これは現代のコンピュータでは禁じ手であり、システムが即座に遮断します。

◆ IEL0566I ◆
意味:構造体のコピー(BY NAME)のなかで、名前の対応が見つかりませんでした。
💡 解説:せっかくコピー命令を出したのに、対応する名前が一つもなくて、何一つコピーされませんでした。

◆ IEL0567I ◆
意味:外部の手続き(ENTRY)呼び出しで、引数の数が多すぎます。
💡 解説:相手のドア(窓口)が用意しているデータの受け皿よりも、たくさんのデータを押し込もうとしています。

◆ IEL0568I ◆
意味:この変数に代入された値は、固定小数点(数字)の桁数制限を超えています。
💡 解説:入る器よりも大きな値がやってきたため、値が溢れて正体不明になっています。

◆ IEL0569I ◆
意味:プログラムの最適化の結果、変数 D の中身が意図しないタイミングで上書きされます。
💡 解説:翻訳機が勝手に処理順序を入れ替えたせいで、別の処理が中身を書き換えてしまいました。バグの原因です。


### 📝 0570〜0579:その他の高度な診断

◆ IEL0570I ◆
意味:ステートメント(命令文)のなかに、使ってはいけない予約語が含まれています。
💡 解説:変数名などに、システムの大事なキーワードが混ざっていて邪魔になっています。

◆ IEL0571I ◆
意味:プログラムのなかに、到達不可能な命令の塊(コード)が見つかりました。
💡 解説:どうやっても絶対に実行されることのない、死んだコードがプログラムのなかに居座っています。ゴミなので削除しましょう。

◆ IEL0572I ◆
意味:この関数を呼び出す際に必要なメモリを確保できませんでした。
💡 解説:関数を呼ぶための部屋(メモリ)が足りません。

◆ IEL0573I ◆
意味:構造体の定義が深すぎて、これ以上解析できません。
💡 解説:入れ子が深すぎて、コンパイラの「解析用メモリ」がパンクしました。

◆ IEL0574I ◆
意味:このプログラムで使用されている定数の数が多すぎます。
💡 解説:定数(決まった値)を登録するノートのページが尽きました。

◆ IEL0575I ◆
意味:条件式(IF)の判定表が溢れました。
💡 解説:複雑すぎるIF文のせいで、判断の組み合わせ表が作れません。

◆ IEL0576I ◆
意味:手続きの呼び出し履歴を追うための管理テーブルが溢れました。
💡 解説:関数の呼び出しが深すぎて、今どこで何をしているのかの記録表がパンクしました。

◆ IEL0577I ◆
意味:変数の寿命を記録するノートが溢れました。
💡 解説:変数名が多すぎて、どれがいつ消えるかのリストが書ききれません。

◆ IEL0578I ◆
意味:翻訳機の作業用メモリがすべて使い果たされました。
💡 解説:翻訳機が頭を抱えて降参しました。これ以上は翻訳できません。

◆ IEL0579I ◆
意味:診断機能自体がエラーを起こしました。
💡 解説:エラーを見つけるための機能が、エラーで止まりました。もうお手上げです。


IEL0620I から先も、エラー番号をスキップすることなく、初心者の方にも分かりやすく解説Wikiを作成していきます。引き続き「太字の星マーク()」は使わずに、たとえ話を交えて進めますね!


### 📝 0620〜0659:エラー処理(ON条件)・言語環境(LE/VSE)連携のエラー

◆ IEL0620I ◆
意味:ON条件(エラーが起きたときの逃げ道)の指定に、無効な条件名が使われています。
💡 解説:「エラーが起きたらこの処理をしろ」という命令で、システムが存在しない名前(エラー名)を指定しています。そんなエラーは存在しないので、指示は無視されます。

◆ IEL0621I ◆
意味:ON文のなかで指定された処理(ステートメント)が、その条件では実行できません。
💡 解説:例えば「プログラムの終了命令(STOP)」を条件分岐のなかで呼び出そうとするなど、その場所では許されない命令を詰め込んでいます。

◆ IEL0622I ◆
意味:エラーが発生したときの処理(ON条件)が、入れ子構造で深くなりすぎています。
💡 解説:エラーが起きたときの処理の中で、またエラーが起きたときの処理を呼び出し……というマトリョーシカ構造が深すぎて、どこで止めるか分からなくなりました。

◆ IEL0623I ◆
意味:ON条件の処理(ONユニット)で、今のプログラムの階層では到達できない変数にアクセスしようとしています。
💡 解説:エラーが起きた場所から、自分とは関係のない遠くの部屋にある箱を覗き込もうとして、怒られています。

◆ IEL0624I ◆
意味:REVERT命令(エラー処理の解除)で、指定された条件名が現在のON条件と一致しません。
💡 解説:「さっき設定したエラー処理を元に戻せ」と言っているのに、さっき設定した処理名とは違う名前を言っています。これでは元の処理に戻せません。

◆ IEL0625I ◆
意味:エラー処理(ONユニット)から別の場所へジャンプ(GOTO)しようとしていますが、飛び先が許可されていません。
💡 解説:エラーが発生して一時停止した場所から、現在の処理の枠を超えて遠くへ逃げようとしています。秩序が壊れるため、このジャンプは禁止されています。

◆ IEL0626I ◆
意味:言語環境(LE/VSE)の設定と、PL/Iの標準的なエラー処理が衝突しています。
💡 解説:新しい共通システム(LE/VSE)のルールと、昔ながらのPL/I独自のルールが喧嘩して、どちらを優先すべきか迷っています。

◆ IEL0627I ◆
意味:エラー処理の中に、致命的な文法ミスがあります。
💡 解説:万が一の避難経路であるエラー処理自体にミスがあると、エラーが起きた瞬間にダブルパンチでプログラムが止まってしまいます。

◆ IEL0628I ◆
意味:ON条件の指定で、複数の条件をカンマで繋いでいますが、その組み合わせが無効です。
💡 解説:あれとこれとそれをまとめてエラー処理する、という記述の仕方にルール違反があります。

◆ IEL0629I ◆
意味:SIGNAL文(わざとエラーを起こす命令)で、存在しない条件を発生させようとしています。
💡 解説:わざと特定のバグを起こしてテストしようとしましたが、その名前のバグがシステムに存在しません。

◆ IEL0630I ◆
意味:プログラムが要求したデータ型と、現在実行中の言語環境が持つデータ型に互換性がありません。
💡 解説:PL/Iのデータ箱を、別の言語(COBOLなど)の箱と共通で使おうとしましたが、データの形が全く違っていて無理やり繋ごうとしています。

◆ IEL0631I ◆
意味:このプログラムで使用されている関数は、現在の実行環境(Language Environment)では外部公開されていません。
💡 解説:お隣のプログラムから「これを使いたい!」と呼び出されましたが、この関数は秘密の部屋(PRIVATE)にあるので、外からは見えません。

◆ IEL0632I ◆
意味:引数(手渡すデータ)を、言語環境のルールに従って変換しようとしましたが失敗しました。
💡 解説:別の言語とデータを共有するために、PL/I形式から共通形式へデータを変換しようとしましたが、データの値がおかしくて変換できませんでした。

◆ IEL0633I ◆
意味:この命令のなかで、メモリの解放をしようとしていますが、すでに解放済みです。
💡 解説:すでにお片付けしたはずの部屋を、二度片付けようとしています。二重に片付けることはできません。

◆ IEL0634I ◆
意味:このプログラムは、マルチスレッド(同時に複数のことを行う処理)の設定が不正です。
💡 解説:複数の頭脳を同時に働かせる設定で、データの共有ルールが守られておらず、いつデータが壊れてもおかしくない状態です。

◆ IEL0635I ◆
意味:プログラム終了命令(STOP)が呼ばれましたが、LE/VSEの終了コードが不正です。
💡 解説:プログラムを辞めようとしていますが、OSに送る「終了しました」という合図の数字が、許可されていない値になっています。

◆ IEL0636I ◆
意味:このプログラムで呼び出されている「共通環境関数(CEE系)」の使い方が間違っています。
💡 解説:LE/VSEという共通システムが用意している便利な道具(CEEから始まる名前の関数)を、引数の数を間違えて呼び出しています。

◆ IEL0637I ◆
意味:エラーが発生したときの「条件コード」が、今のプログラムの文脈では扱えません。
💡 解説:OSからエラーの理由が送られてきましたが、あなたのプログラムには、その理由を解釈する準備ができていません。

◆ IEL0638I ◆
意味:この手続き(関数)を呼び出す際に、必要なメモリの準備(スタックフレーム)ができませんでした。
💡 解説:関数に入るための部屋(スタック)を確保しようとしましたが、メモリがパンクしています。

◆ IEL0639I ◆
意味:プログラムの実行中に、言語環境(LE/VSE)の内部でエラーが発生しました。
💡 解説:あなたのプログラムではなく、それを支えている言語環境というシステムそのものが、内部で気絶しました。


### 📝 0640〜0659:高度な最適化とメモリマッピングのエラー

◆ IEL0640I ◆
意味:最適化の結果、変数 D が持つべき値が、別の処理によって書き換えられてしまいました。
💡 解説:翻訳機が処理を入れ替えたせいで、本来は変数が保持しているはずのデータが、知らない間に別の場所に上書きされて消滅しています。

◆ IEL0641I ◆
意味:配列のインデックス(添字)の計算式が、最適化により複雑なポインタ操作に置き換わりました。
💡 解説:配列にアクセスする命令を、翻訳機が勝手に「直接メモリの番地を計算する命令」に作り替えました。処理は速くなりますが、計算が複雑なのでバグの予兆にもなります。

◆ IEL0642I ◆
意味:構造体のコピー(BY NAME)が、名前の不一致により一部スキップされました。
💡 解説:引き出しの整理整頓(コピー)をしましたが、名前が合致する引き出しだけを移し、残りは無視しました。

◆ IEL0643I ◆
意味:この命令の場所は、ポインタの参照が非常に危険(不正アクセス)です。
💡 解説:翻訳機が「これ以上先は崖っぷちだよ!」と警告しています。ポインタの指し先が不安定で、いつ崖から落ちてもおかしくない状態です。

◆ IEL0644I ◆
意味:変数 D は、初期化(中身を入れること)される前に参照されています。
💡 解説:空っぽのままの箱を、いきなり中身を覗こうとしています。何が入っているか分からないので計算結果はメチャクチャになります。

◆ IEL0645I ◆
意味:定数(決まった値)が多すぎて、メモリ上の定数領域が溢れました。
💡 解説:プログラムの中に数字を書きすぎて、定数専用の保管場所が満杯になりました。

◆ IEL0646I ◆
意味:最適化により、IF文の条件チェックが一部省略されました。
💡 解説:翻訳機が「これは常にTRUE(正しい)だからチェックしなくていいや!」と勝手に条件判定を省略しました。本当に常に正しいのか確認が必要です。

◆ IEL0647I ◆
意味:手続き(関数)の呼び出しで、引数がレジスタという高速な場所に入れられませんでした。
💡 解説:データを渡すときに「一番速い場所にセットしろ」と命令しましたが、レジスタの空きがなくて、結局遅いメモリ経由で渡すことになりました。

◆ IEL0648I ◆
意味:このプログラム内のラベル(名札)は、どこからも参照されていません。
💡 解説:ジャンプ先の看板を立てたのに、誰もそこへジャンプしてきませんでした。飾り看板なので消しても大丈夫です。

◆ IEL0649I ◆
意味:コンパイル作業中に、コンパイラの内部テーブルに限界が来ました。
💡 解説:翻訳機の脳みそ(作業テーブル)が、複雑すぎるプログラムの解析についていけません。

お待たせしました!IEL0660I から先も、一切のスキップなしで突き進みます。ルール通り「太字の星マーク()」は使わずに、たとえ話で分かりやすく解説していきますね!


### 📝 0660〜0699:内部フェーズ・テーブル管理・OSインターフェースエラー

◆ IEL0660I ◆
意味:コンパイラの内部テーブルで、変数の名前を管理する辞書が容量オーバーです。
💡 解説:プログラム内にあまりにも多くの変数や関数がありすぎて、翻訳機が持っている「辞書ノート」のページが足りなくなりました。プログラムを小さな部品に分割してください。

◆ IEL0661I ◆
意味:構造体(パッケージ)の階層構造を記録するスタックが溢れました。
💡 解説:大きな箱の中に小さな箱を入れ、その中にまた……と繰り返す「入れ子構造」が深すぎて、翻訳機が今どの階層にいるのか記録する場所がなくなりました。

◆ IEL0662I ◆
意味:このステートメント(命令文)に付けられた属性指定が、コンパイル段階の処理能力を超えています。
💡 解説:命令の内容が複雑すぎて、一度の翻訳ステップでは処理しきれません。もっと単純な命令に書き直す必要があります。

◆ IEL0663I ◆
意味:この手続き(関数)を呼び出すために必要な「リンケージ情報」が不正です。
💡 解説:相手のプログラムへデータを渡すための「受け渡し窓口」の情報が崩れており、誰がどのデータをどう受け取るのか決まり事が分からない状態です。

◆ IEL0664I ◆
意味:一時的なメモリを確保する命令(ALLOCATE)で、対象の変数の型が許可されていません。
💡 解説:動的にメモリを確保する命令は、あらかじめメモリ確保用に設定された変数(BASED や CONTROLLED)でなければなりません。普通の変数を無理やり確保しようとしています。

◆ IEL0665I ◆
意味:この命令の場所は、プログラムの最適化処理によって統合(マージ)されました。
💡 解説:似たような処理が2つあったので、翻訳機が「これ同じことしてるよね?」と気を利かせて、1つの命令に合体させました。

◆ IEL0666I ◆
意味:最適化処理で、変数の代入順序が変更されました。
💡 解説:計算の効率を上げるために、翻訳機が勝手に処理の順番を入れ替えました。結果は同じになるはずですが、途中の経過(デバッグ情報など)はズレる可能性があります。

◆ IEL0667I ◆
意味:この手続き内での変数の使用状況が、メモリの有効配置のルールから外れています。
💡 解説:メモリの効率的な使い方のルールから外れた場所にデータを配置しようとしています。読み書きが少し遅くなります。

◆ IEL0668I ◆
意味:この命令のなかで、ファイル名 D が不完全な状態で使われています。
💡 解説:ファイル窓口として登録はされていますが、具体的なアクセス先(ディスク装置など)がまだ割り当てられていないファイルを使おうとしています。

◆ IEL0669I ◆
意味:このプログラム内の定数は、メモリ上の配置の関係でアクセス速度が低下します。
💡 解説:データの置き場所がバラバラすぎて、コンピュータがデータのありかを探すのに手間取っています。

◆ IEL0670I ◆
意味:最適化の結果、変数 D の中身は常に固定(定数)として扱われるようになりました。
💡 解説:プログラムのどこを探しても値が変わらないので、翻訳機が「この箱はもう変数ではなく、最初からずっとこの値の定数だ!」と見なして計算を高速化しました。

◆ IEL0671I ◆
意味:この命令のなかで、ポインタ変数が指している先が、現在のプログラムの階層では無効です。
💡 解説:すでに片付けられた過去の部屋の住所を、今でも指し示しています。

◆ IEL0672I ◆
意味:コンパイル作業中に、OSのメモリ割り当てエラーが発生しました。
💡 解説:翻訳機が「もっと広いメモリを貸して!」とOSにお願いしましたが、OSから「空きがないからダメ!」と断られました。他の大きな処理を終了させてからやり直してください。

◆ IEL0673I ◆
意味:この命令文は、翻訳機内部の解析用テーブルで「循環参照」を引き起こしました。
💡 解説:解析しようとする命令が、自分自身を指すようなおかしな構造になっており、翻訳機が「終わりがない!」とパニックを起こしています。

◆ IEL0674I ◆
意味:このステートメントは、実行時に例外エラー(プログラム強制終了)を発生させる可能性が非常に高いです。
💡 解説:翻訳機が「このコードは、0で割り算するか、存在しないメモリを読み込むかのどちらかだ!」という危険な箇所を事前検知しました。

◆ IEL0675I ◆
意味:ファイル操作の命令で、システム特有のバッファ管理エラーが発生しました。
💡 解説:データのやり取りをするためのバッファを管理するシステム部分で、内部的なデータのズレが検出されました。

◆ IEL0676I ◆
意味:構造体のコピー(BY NAME)のなかで、データ型が異なるため無視されたメンバーがあります。
💡 解説:同じ名前でも片方が「文字」、片方が「数字」だと中身が壊れるので、そのメンバーだけコピーをスキップしました。

◆ IEL0677I ◆
意味:このプログラムで使用されている組み込み関数の引数が、規格外です。
💡 解説:道具を使うためのデータの入れ方が、その道具の設計図から外れています。

◆ IEL0678I ◆
意味:最適化の結果、この IF文のチェックは不要と判断され消去されました。
💡 解説:条件をチェックするまでもなく結果が確定しているので、チェックそのものを省いてプログラムを短くしました。

◆ IEL0679I ◆
意味:この命令文は、メモリ配置の関係でアライメント警告が出されています。
💡 解説:データの開始位置が半端な場所にあるため、読み込み速度が少しだけ遅くなります。


### 📝 0680〜0699:診断フェーズ・システム整合性チェック(詳細)

◆ IEL0680I ◆
意味:翻訳作業中に、シンボル管理テーブルに不正なエントリが見つかりました。
💡 解説:翻訳機の内部メモ帳に、壊れたデータが紛れ込んでいます。翻訳機自体の管理機能が一部故障しています。

◆ IEL0681I ◆
意味:このステートメントは、コンパイル後の実行時にメモリ保護違反を引き起こす可能性があります。
💡 解説:OSが「そこは触っちゃダメ!」と言っている場所を書き換えようとしています。

◆ IEL0682I ◆
意味:ファイル操作の設定で、OSとの通信プロトコルが一致しません。
💡 解説:ファイルを管理するOSのルールと、あなたのプログラムが要求しているルールがズレています。

◆ IEL0683I ◆
意味:プログラム内で使用されているデータ型の数が多すぎて、翻訳機のメモリを圧迫しています。
💡 解説:何十種類もの特殊なデータ型を使い分けているため、どれが何だか分からなくなるほど管理テーブルが複雑になっています。

◆ IEL0684I ◆
意味:手続き(関数)の呼び出しチェーンが長すぎて、解析に時間がかかっています。
💡 解説:AがBを呼び、BがCを……と深すぎるため、翻訳機が解析するのに多大な労力を使っています。

◆ IEL0685I ◆
意味:この命令の中でのデータ操作が、浮動小数点数の精度を無視しています。
💡 解説:細かい小数の計算をさせようとしていますが、精度の低い箱を使おうとしているため、値が切り捨てられます。

◆ IEL0686I ◆
意味:この構造体の中のデータの配置が、システムの管理する「ページング」という仕組みと相性が悪いです。
💡 解説:データがバラバラに散らばっているため、コンピュータがデータを読み込むたびにディスクを読みに行く「ページング」という重たい処理が発生してしまいます。

◆ IEL0687I ◆
意味:この命令のなかで、メモリ操作を行うためのアドレスが計算できません。
💡 解説:データのありか(住所)を計算しようとしましたが、式が複雑すぎて答えが出ませんでした。

◆ IEL0688I ◆
意味:コンパイラによる最適化で、変数の値が予想外に変化する可能性があります。
💡 解説:プログラムの整理整頓をした結果、本来は値が変わらないはずの箱が、他の処理の影響を受けてしまうルートが開通しました。

◆ IEL0689I ◆
意味:この命令のなかで、定数の配置場所が定義されていません。
💡 解説:数字(定数)をどこに置くかという指示が、システム側で漏れています。

◆ IEL0690I ◆
意味:翻訳機が、自分自身の内部状態を管理するためのリストを紛失しました。
💡 解説:翻訳ロボットが「あれ、さっき何しようとしてたんだっけ?」と混乱して、直前の翻訳データを見失いました。

◆ IEL0691I ◆
意味:この命令を実行すると、実行時にOSから異常終了のシグナルが送られます。
💡 解説:翻訳機が「これはOSが絶対に許してくれない命令だよ!」と警告しています。

◆ IEL0692I ◆
意味:このファイルの操作において、バッファサイズの計算がオーバーフローしました。
💡 解説:入出力用の部屋を確保しようとしたら、サイズが大きすぎて計算しきれませんでした。

◆ IEL0693I ◆
意味:構造体のコピー(BY NAME)のなかで、名前の対応が不明確です。
💡 解説:パッケージ同士でコピーしようとしていますが、名前が似ていてどちらが正しいのか分かりません。

◆ IEL0694I ◆
意味:手続き(関数)を呼び出すための引数リストが空です。
💡 解説:関数を使う命令なのに、データを運ぶカバンが空っぽです。

◆ IEL0695I ◆
意味:この命令のなかで、メモリが動的に確保できません。
💡 解説:メモリが空いていないので、部屋を作れません。

◆ IEL0696I ◆
意味:プログラム内のジャンプ先(ラベル)が多すぎます。
💡 解説:ジャンプ先が多すぎて、地図がパンクしました。

◆ IEL0697I ◆
意味:この変数 D は、初期化が不十分なまま使用されています。
💡 解説:中身がゴミデータのまま、箱を使おうとしています。

◆ IEL0698I ◆
意味:翻訳機内部のエラーにより、コード生成段階で失敗しました。
💡 解説:翻訳機がプログラムの最後の手順で、機械語に変換しようとして力尽きました。

◆ IEL0699I ◆
意味:原因不明の致命的なコンパイラエラーです。
💡 解説:翻訳機そのものが、何が起きたか理解できないほどの大問題に直面しました。


IEL0700I 以降も、気を緩めず全件網羅の精神で解説Wikiを作成します。引き続き「太字の星マーク()」は使わずに、たとえ話を交えて進めますね!


### 📝 0700〜0739:コンパイル・リスト作成と診断用エラー

◆ IEL0700I ◆
意味:翻訳結果のリスト(報告書)を出力するための作業用ディスク領域が満杯になりました。
💡 解説:翻訳ロボットが「翻訳した結果を紙にまとめよう」としていますが、報告書を一時的に書き込むためのノート(ディスク)がもう残りページゼロです。

◆ IEL0701I ◆
意味:プログラムの各行に対して行われる「デバッグ用の行番号付け」が、上限値に達しました。
💡 解説:プログラムが長大すぎて、何行目かをカウントする番号がシステムの上限(例えば65535行など)を突破しました。これ以上は行番号を振ることができません。

◆ IEL0702I ◆
意味:この手続き(関数)には、外部に公開するための適切な窓口(ENTRYポイント)が設定されていません。
💡 解説:お隣のプログラムから「入りたい!」と言われても、入り口のドアがどこにもありません。

◆ IEL0703I ◆
意味:このステートメントの解釈中に、コンパイラの内部状態が矛盾を引き起こしました。
💡 解説:翻訳機が「Aという処理だ!」と判断した直後に、「いや待て、やっぱりBだ!」と意見を変え、結局どちらに進めばいいか分からなくなっています。

◆ IEL0704I ◆
意味:コンパイラが「どの変数が生きているか」を記録する生存期間リストが破壊されました。
💡 解説:翻訳機の内部メモ帳が破れてしまい、どのデータ箱が今使えるのか分からなくなりました。翻訳機側の故障です。

◆ IEL0705I ◆
意味:この命令のなかで、メモリ操作を行うためのアドレス計算が、現在の翻訳機の設定では不可能です。
💡 解説:データの置き場所を計算しようとしましたが、計算方法が複雑すぎて、今の翻訳設定では答えが出せません。

◆ IEL0706I ◆
意味:最適化の結果、変数 D は計算の途中で不要な値(ゴミ)を持つようになりました。
💡 解説:翻訳機が処理を整理した結果、本来は使われないはずの変数が、一時的に変な値を持ってしまうルートができてしまいました。結果に影響はないはずですが、少し行儀の悪いプログラムになっています。

◆ IEL0707I ◆
意味:この関数(手続き)を呼び出す際のデータ受け渡しルールが、相手のルールと食い違っています。
💡 解説:相手のプログラムは「左側の門から入って」と言っているのに、こちらは「右側の裏口」から強引に入ろうとしています。

◆ IEL0708I ◆
意味:この変数の属性指定が、同じステートメント内で矛盾しています。
💡 解説:「この箱は整数(FIXED)であり、かつ文字(CHAR)である」というような矛盾した設定を1行の中に書いています。

◆ IEL0709I ◆
意味:構造体のコピー(BY NAME)のなかで、階層レベルの数字が一致しません。
💡 解説:お引っ越し先と元で、箱の深さの階層がズレているため、正しい引き出しに対応させられません。

◆ IEL0710I ◆
意味:この命令の場所は、コンパイル後の実行時に、OSから「不正アクセス」として強制終了される可能性が高いです。
💡 解説:翻訳機が「これはOSが絶対に許してくれない危険な命令だよ!」と事前に察知して注意喚起しています。

◆ IEL0711I ◆
意味:このファイル操作のオプション指定は、現在の環境では無効です。
💡 解説:新しいOSやハードウェアでは使えない古いオプション指定が混ざっています。

◆ IEL0712I ◆
意味:このプログラムで使用されている、外部ファイルのレコード長が不自然です。
💡 解説:データの1行の長さが「0」か、あり得ないほど巨大になっています。

◆ IEL0713I ◆
意味:このステートメントに付けられた属性は、PL/Iの規格上、重複しています。
💡 解説:同じ特徴を何度も言っています。1回で十分です。

◆ IEL0714I ◆
意味:構造体の中に、同じ名前のメンバーが2つあります。
💡 解説:1つのパッケージの中に同じ名前のポケットが2つあるので、どっちを使えばいいか分かりません。

◆ IEL0715I ◆
意味:ポインタ(住所)の指し先が、有効ではない番地を指しています。
💡 解説:NULL番地を指そうとしています。触ると即座にプログラムがクラッシュします。

◆ IEL0716I ◆
意味:この操作は、標準入出力デバイス(キーボードや画面など)ではサポートされていません。
💡 解説:画面に対して「バックグラウンドで処理しろ」と言っても、画面にバックグラウンドという概念はありません。

◆ IEL0717I ◆
意味:プログラム内のジャンプ先(ラベル)への道が、最適化によって消滅しました。
💡 解説:翻訳機が「ここは無駄だ」と判断して途中の命令を消した結果、そこへ飛ぶための道も一緒に消えてしまいました。

◆ IEL0718I ◆
意味:この変数に代入された値が、そのデータ型が許容する最大値を突破しています。
💡 解説:箱のサイズを超えた値を無理やり詰め込んでいます。

◆ IEL0719I ◆
意味:この命令の場所は、コンパイル中に発生した内部エラーのため、解析が打ち切られました。
💡 解説:翻訳機が「もう解析できない!」と匙を投げて作業を停止しました。

◆ IEL0720I ◆
意味:この命令のなかで、メモリの番地を動かすための数値計算が、桁溢れを起こしています。
💡 解説:住所を計算中に、数字の桁が溢れて住所が化けました。

◆ IEL0721I ◆
意味:この変数 D は、初期化が不十分なまま使用されています。
💡 解説:中身がゴミデータのまま箱を使おうとしています。計算結果が予測不能になります。

◆ IEL0722I ◆
意味:翻訳機内部のエラーにより、コード生成段階で失敗しました。
💡 解説:プログラムの最後の最後で、翻訳機が力尽きました。

◆ IEL0723I ◆
意味:原因不明の致命的なコンパイラエラーです。
💡 解説:翻訳ロボットが「何が起きたか全く分からない!」とパニックを起こしています。

◆ IEL0724I ◆
意味:構造体のコピー(BY NAME)のなかで、名前の対応が不明確です。
💡 解説:名前が似すぎていて、どっちがどっちか分かりません。

◆ IEL0725I ◆
意味:手続き(関数)を呼び出すための引数リストが空です。
💡 解説:関数を使うのに、データが何もないカバンを渡しています。

◆ IEL0726I ◆
意味:この命令のなかで、メモリが動的に確保できません。
💡 解説:部屋を作るための場所(メモリ)が空いていません。

◆ IEL0727I ◆
意味:プログラム内のジャンプ先(ラベル)が多すぎます。
💡 解説:看板が多すぎて地図がパンクしました。

◆ IEL0728I ◆
意味:この変数 D は、一度も使われていないにもかかわらず、宣言されています。
💡 解説:使わない変数なら登録する必要はありません。

◆ IEL0729I ◆
意味:プログラムのなかの条件分岐が多すぎて、判定表が溢れました。
💡 解説:IFやCASEを詰め込みすぎて、翻訳機の判断ノートが満杯です。

◆ IEL0730I ◆
意味:手続き(関数)の呼び出しチェーンが長すぎて、解析に時間がかかっています。
💡 解説:AがBを呼び、BがCを……と深すぎて翻訳機が疲弊しています。

◆ IEL0731I ◆
意味:この変数の有効期間(スコープ)の管理表が溢れました。
💡 解説:名前の生存期間リストが長すぎて、書ききれません。

◆ IEL0732I ◆
意味:翻訳機の作業用メモリがすべて使い果たされました。
💡 解説:翻訳機が働く部屋が書類で埋まりました。これ以上動けません。

◆ IEL0733I ◆
意味:この命令の場所は、メモリの住所指定(ポインタ)と値(データ)の型が混ざって衝突しています。
💡 解説:住所そのものと、住所にある中身のデータを、同じイコールで繋ごうとしています。次元が違うのでエラーです。

◆ IEL0734I ◆
意味:このステートメントに指定されたキーワードは、ここでは使えません。
💡 解説:命令のチョイスが場所違いです。

◆ IEL0735I ◆
意味:このステートメントに付けられた属性指定が、コンパイル段階の処理能力を超えています。
💡 解説:命令の内容が複雑すぎて、一度の翻訳ステップでは処理しきれません。

◆ IEL0736I ◆
意味:この命令のなかで、メモリの境界線を跨いでデータを読み書きしようとしています。
💡 解説:CPUの読み込み単位をデータがまたいで存在しています。速度が落ちます。

◆ IEL0737I ◆
意味:この命令のなかで、文字データを繋ぎ合わせる(連結演算子 ||)の使い方がおかしいです。
💡 解説:文字と文字の間に、データとして扱えない変な物体が置かれています。

◆ IEL0738I ◆
意味:この変数の属性指定が、以前に書かれたコードと矛盾しています。
💡 解説:「ここは整数だよ」と前に決めたのに、今度は文字を入れようとしています。

◆ IEL0739I ◆
意味:コンパイル作業中に、コンパイラの内部テーブルに限界が来ました。
💡 解説:翻訳機の脳みそが、複雑すぎるプログラムの解析についていけません。


IEL0740I からも引き続き、エラー番号を1つも飛ばさずに解説Wikiを作成します。太字の星マーク()は使わず、専門用語をかみくだいて丁寧に進めますね!


### 📝 0740〜0779:コンパイラの限界・最適化・メモリ配置の詳細エラー

◆ IEL0740I ◆
意味:プログラムの処理構造が複雑すぎて、最適化の計算式が解けなくなりました。
💡 解説:翻訳機が「ここをこう直せば速くなる!」と計算しようとしましたが、あまりにも入り組んだパズルのような構造なので、計算式が解けずに諦めた状態です。そのままの形で翻訳します。

◆ IEL0741I ◆
意味:あるはずのデータへの住所(ポインタ)を指し示す棒が、今の翻訳設定では計算できません。
💡 解説:データの置き場所を計算しようとしましたが、そのための住所の計算式が複雑すぎて、現在のコンパイラの設定範囲を超えてしまいました。

◆ IEL0742I ◆
意味:構造体のコピー(BY NAME)で、名前の対応表がメモリ制限を超えて溢れました。
💡 解説:巨大なパッケージ同士の整理整頓(コピー)をしようとしましたが、名前を付け合わせるための作業用リストが広すぎてメモリに入り切りません。

◆ IEL0743I ◆
意味:このプログラムで使用されている、手続き(関数)の引数リストが多すぎます。
💡 解説:関数に渡すデータの箱を1行に詰め込みすぎて、翻訳機の「データ受け渡し用メモ帳」がいっぱいになりました。

◆ IEL0744I ◆
意味:この変数に代入された値は、翻訳段階で確定できない複雑な式です。
💡 解説:プログラムが動いてみないと結果が分からない式を、翻訳段階(コンパイル時)で「この値はこれだ!」と決めておこうとしています。それは無理な相談です。

◆ IEL0745I ◆
意味:構造体の中のデータ配置が、このCPUのキャッシュ効率と相性が悪いです。
💡 解説:箱の並びがバラバラすぎて、コンピュータが一度に読み込める範囲にデータが収まらず、何度もディスクを読みに行く羽目になります。並び順を工夫しましょう。

◆ IEL0746I ◆
意味:この手続き(関数)は、再帰呼び出し(自分を呼ぶ)の設定が抜けています。
💡 解説:合わせ鏡のような処理をしているのに、その設定をしていないので、いつかメモリが爆発します。

◆ IEL0747I ◆
意味:このステートメントには、実行時に異常終了する可能性が高い「バグの予兆」があります。
💡 解説:翻訳機が「このコード、絶対に実行時におかしな動きをするぞ!」と見つけました。事前に修正してください。

◆ IEL0748I ◆
意味:配列の引き出し番号の計算で、範囲外を指すリスクがあります。
💡 解説:引き出しの数が10個なのに、場合によっては11個目を開けてしまう可能性のある計算式が使われています。

◆ IEL0749I ◆
意味:この命令のなかで、ファイル名が不完全です。
💡 解説:ファイル窓口として登録はされていますが、どの装置(ディスクなど)を使うのかの物理的な設定が抜けています。

◆ IEL0750I ◆
意味:コンパイル作業中に、OSのメモリ割り当てリクエストが拒否されました。
💡 解説:翻訳機が「もっと広い部屋を貸して!」とOSに言いましたが、OSが「もう空き部屋はないよ!」と冷たく断りました。

◆ IEL0751I ◆
意味:この命令の場所は、コンパイル中に「循環参照」が検出されました。
💡 解説:Aを解決するにはBが必要、Bを解決するにはAが必要……という終わりのないループに翻訳機がハマっています。

◆ IEL0752I ◆
意味:この命令は、実行時にOSから強制終了されるシグナルを発生させます。
💡 解説:翻訳機が「OSのルール違反だよ!」と警告しています。

◆ IEL0753I ◆
意味:ファイル操作のバッファ管理で、メモリの確保に失敗しました。
💡 解説:データを出し入れする作業場が作れません。

◆ IEL0754I ◆
意味:構造体のコピー(BY NAME)のなかで、名前の対応が見つかりませんでした。
💡 解説:整理整頓しようとしましたが、名前が一致するポケットが1つもありませんでした。

◆ IEL0755I ◆
意味:関数(手続き)を呼び出すための引数リストが空です。
💡 解説:データを渡すつもりのカバンが空です。

◆ IEL0756I ◆
意味:メモリが動的に確保できません。
💡 解説:メモリ不足です。空き地がありません。

◆ IEL0757I ◆
意味:プログラム内のジャンプ先(ラベル)が多すぎます。
💡 解説:看板が多すぎて地図が読めません。

◆ IEL0758I ◆
意味:この変数は、初期化が不十分です。
💡 解説:中身がゴミのまま箱を使おうとしています。

◆ IEL0759I ◆
意味:コード生成段階で、翻訳が失敗しました。
💡 解説:機械語に変換する最後の最後で、翻訳機が力尽きました。

◆ IEL0760I ◆
意味:コンパイル作業中に、辞書情報が破損しました。
💡 解説:翻訳機のメモ帳が一部消えてしまいました。翻訳機側の故障です。

◆ IEL0761I ◆
意味:最適化の結果、意図しない無限ループが形成されました。
💡 解説:プログラムを勝手に書き換えた結果、脱出条件が消えて永遠に終わらないプログラムになりました。

◆ IEL0762I ◆
意味:この命令は、メモリ保護違反を起こす可能性が高いです。
💡 解説:OSに止められる場所を書き換えようとしています。

◆ IEL0763I ◆
意味:ファイル操作の設定が、今のハードウェア環境と合いません。
💡 解説:古いOSの設定をそのまま使おうとしています。

◆ IEL0764I ◆
意味:データ型の数が多すぎて、管理テーブルが溢れました。
💡 解説:特殊な箱を使いすぎです。

◆ IEL0765I ◆
意味:呼び出しチェーンが長すぎて、解析ができません。
💡 解説:関数が深すぎて、翻訳機が追跡を諦めました。

◆ IEL0766I ◆
意味:浮動小数点数の精度が足りません。
💡 解説:細かな小数を計算するのに、器が荒すぎます。

◆ IEL0767I ◆
意味:データがページング(ディスク読み書き)と相性が悪いです。
💡 解説:データがあちこちに飛び散っているので、読み込みが遅いです。

◆ IEL0768I ◆
意味:ポインタの住所計算ができませんでした。
💡 解説:住所を計算する式が難解すぎて答えが出ませんでした。

◆ IEL0769I ◆
意味:最適化で、変数の値が他の処理に上書きされる可能性があります。
💡 解説:翻訳機が「ここは安全だ」と勘違いして変数の値を変えてしまいましたが、実は危険な場所でした。

◆ IEL0770I ◆
意味:定数の配置場所が定義されていません。
💡 解説:数字(定数)をどこに置くかという指示が抜けています。

◆ IEL0771I ◆
意味:翻訳機が自分自身のリストを見失いました。
💡 解説:翻訳ロボットが「あれ、さっき何しようとしてたんだっけ?」と混乱しています。

◆ IEL0772I ◆
意味:実行時にOSが異常終了させます。
💡 解説:翻訳機が「これはOSが絶対に許してくれない命令だよ!」と教えてくれています。

◆ IEL0773I ◆
意味:バッファサイズの計算がオーバーフローしました。
💡 解説:部屋を確保しようとしたら、サイズが大きすぎて計算しきれませんでした。

◆ IEL0774I ◆
意味:名前の対応が不明確です。
💡 解説:どっちのポケットを使えばいいのか分かりません。

◆ IEL0775I ◆
意味:引数リストが空です。
💡 解説:データを渡すつもりが、カバンが空っぽです。

◆ IEL0776I ◆
意味:メモリが確保できません。
💡 解説:メモリ不足です。

◆ IEL0777I ◆
意味:ラベル(看板)が多すぎます。
💡 解説:看板が多すぎます。

◆ IEL0778I ◆
意味:初期化が不十分です。
💡 解説:中身がゴミのままです。

◆ IEL0779I ◆
意味:コード生成に失敗しました。
💡 解説:最後の最後で力尽きました。

引き続き、IEL0780I から順にエラー解説Wikiを作成します。今回はマニュアルの締めくくりに向けた、非常に重要なシステム警告と診断コードが続きます。引き続き「太字の星マーク()」は使わずに、分かりやすいたとえ話で進めますね!


### 📝 0780〜0819:システムリソース・コンパイラ内部・最適化の限界エラー

◆ IEL0780I ◆
意味:コンパイル作業中にOSから与えられたメモリ領域が、プログラムの階層の深さに負けてパンクしました。
💡 解説:プログラムの部屋(ブロック)があまりにも深く重なっているため、翻訳機が「今、自分はどこの部屋にいるのか」を記録する場所が底をついてしまいました。

◆ IEL0781I ◆
意味:手続き(関数)の呼び出しで、引数を一時的に保管する「身代わりの箱」が確保できません。
💡 解説:相手のルールに合わせてデータを変換するための、仮の箱を用意しようとしましたが、メモリが空いておらず用意できませんでした。

◆ IEL0782I ◆
意味:このステートメントは、コンパイル後の実行時に「不正な命令」としてOSから追い出される可能性が極めて高いです。
💡 解説:翻訳機が「これは、OSの警察官がパトロール中に見つけたら即逮捕するレベルの危ない命令だよ!」と事前警告しています。

◆ IEL0783I ◆
意味:この命令の場所は、メモリの住所指定(ポインタ)と値(データ)の型が混ざって衝突しています。
💡 解説:住所(どこにあるか)と、データ(中身)は別物です。それを足し算しようとするような、次元の違う比較や計算が行われています。

◆ IEL0784I ◆
意味:この手続き(関数)には、外部へ答えを戻す(RETURNS)という約束がないのに、途中でRETURN文が使われています。
💡 解説:手ぶらで帰る約束なのに、勝手にお土産(戻り値)を持って帰ろうとしています。関数側と呼び出し側でルールが噛み合っていません。

◆ IEL0785I ◆
意味:このプログラムの書き方だと、実行時にメモリの別の場所を誤って書き換える(ストレージ破壊)危険があります。
💡 解説:箱のサイズとデータの入れ方が合っておらず、隣の家(別のデータ箱)の庭まで土足で踏み込んで書き換えてしまうような、危なっかしいコードです。

◆ IEL0786I ◆
意味:この関数を呼び出す際に、再帰呼び出し(自分を呼ぶ)の設定が抜けているため暴走します。
💡 解説:合わせ鏡の処理をしているのに、設定が足りていないため、いつかメモリを食い尽くしてプログラムが自爆します。

◆ IEL0787I ◆
意味:命令の途中で、プログラムの文字(ソースコード)が不自然に途切れています。
💡 解説:命令の終わり(セミコロン)を打つ前に、ファイルの最後の行がパタリと終わってしまいました。

◆ IEL0788I ◆
意味:ピクチャー属性(型紙)の記号が、今のシステム環境では非対応です。
💡 解説:数字の並び方を整える型紙の中に、今のコンピュータが理解できない古い形式や謎の記号が混ざっています。

◆ IEL0789I ◆
意味:構造体のコピー処理(BY NAME)において、メンバー名の不一致が多すぎます。
💡 解説:引っ越し先と元で、中身の箱のラベルが全然合致しません。何一つ移せませんでした。

◆ IEL0790I ◆
意味:コンパイル作業中に、シンボル管理用のリストが壊れました。
💡 解説:翻訳機が内部で使っている名簿がバラバラに破けてしまいました。翻訳機自体の管理機能がダウンしています。

◆ IEL0791I ◆
意味:最適化の結果、IF文の条件チェックが一部省略されました。
💡 解説:翻訳機が「ここは絶対こうなるからチェックしなくていいや!」とサボりました。本当に省いていい場所か確認してください。

◆ IEL0792I ◆
意味:変数の初期値(INITIAL)に、自分自身を参照しようとしています。
💡 解説:「私の最初の中身は、今の私の中身と同じにします」という、出口のない迷路を作っています。

◆ IEL0793I ◆
意味:構造体の定義が深すぎて、コンパイラが階層を追跡できません。
💡 解説:箱の中に箱……という入れ子が深すぎて、翻訳機がどこまで掘り進んだか分からなくなりました。

◆ IEL0794I ◆
意味:このプログラムで使用されている定数(決まった値)が多すぎます。
💡 解説:定数を記録するノートのページが尽きました。

◆ IEL0795I ◆
意味:条件式(IF)の判定表が溢れました。
💡 解説:複雑な条件を詰め込みすぎて、判断のための表が作れません。

◆ IEL0796I ◆
意味:関数呼び出しの履歴を追うための管理テーブルが溢れました。
💡 解説:関数の入れ子が深すぎて、今どこにいるかの記録がパンクしました。

◆ IEL0797I ◆
意味:変数の寿命を記録するリストが溢れました。
💡 解説:どれがいつ消えるか、を記録するノートが満杯です。

◆ IEL0798I ◆
意味:翻訳機の作業用メモリがすべて使い果たされました。
💡 解説:翻訳機が働くための机の上が、書類で埋まって動けません。

◆ IEL0799I ◆
意味:内部の診断機能自体が故障しました。
💡 解説:エラーを見つけるための機能が、エラーで止まりました。もうお手上げです。


### 📝 0800〜0819:システム制限と致命的なエラー

◆ IEL0800I ◆
意味:このプログラムで使用されている変数の名前が、システムの制限数を超えました。
💡 解説:プログラム内に名前を付けた箱を増やしすぎて、翻訳機がこれ以上名前を覚えられません。整理して名前を減らしましょう。

◆ IEL0801I ◆
意味:このプログラムで使用されているジャンプ先(ラベル)が、システムの制限数を超えました。
💡 解説:行き先看板を立てすぎて、これ以上地図に看板を書き込めません。

◆ IEL0802I ◆
意味:この手続き(関数)を呼び出すためのリンケージ(繋ぎ方)情報が、システムの制限を超えました。
💡 解説:関数とのデータのやり取りが複雑すぎて、橋渡しをするための情報テーブルが満杯です。

◆ IEL0803I ◆
意味:このステートメントの解釈中に、コンパイラの内部状態が矛盾を引き起こしました。
💡 解説:翻訳機が「Aだ!」と判断した直後に「いやBだ!」と意見を変え、混乱しています。

◆ IEL0804I ◆
意味:コンパイラが「どの変数が生きているか」を記録する生存期間リストが破壊されました。
💡 解説:翻訳機の内部メモ帳が破れてしまい、箱が使えるのか消えたのか分からなくなりました。

◆ IEL0805I ◆
意味:この命令の場所は、現在の翻訳設定では不可能です。
💡 解説:計算式が難解すぎて、今の翻訳設定の限界を超えています。

◆ IEL0806I ◆
意味:最適化の結果、変数 D は、意図しない値(ゴミ)を持つようになりました。
💡 解説:翻訳機が「無駄な処理だ」と判断してプログラムを書き換えた結果、中身が変な値になるルートができてしまいました。

◆ IEL0807I ◆
意味:この手続きを呼び出すルールが、相手側の約束と食い違っています。
💡 解説:データの渡し方が、相手のルールとズレています。

◆ IEL0808I ◆
意味:この変数の属性指定の中に、矛盾する設定があります。
💡 解説:「整数」かつ「文字」という無理な設定です。どちらかにしてください。

◆ IEL0809I ◆
意味:構造体のコピー処理において、階層レベルの数字が一致しません。
💡 解説:お引っ越し先と元の部屋で、階層の深さがズレています。

◆ IEL0810I ◆
意味:実行時に「不正アクセス」として強制終了される危険があります。
💡 解説:OSが「そこはダメ!」と言う場所を書き換えようとしています。

◆ IEL0811I ◆
意味:この設定は、今のOSの仕様では無効です。
💡 解説:古いOSの設定をそのまま使おうとしています。

◆ IEL0812I ◆
意味:レコード長が不自然です。
💡 解説:1行の長さが0か、異常に長すぎます。

◆ IEL0813I ◆
意味:属性が重複しています。
💡 解説:同じ言葉を何度も書かなくて大丈夫です。

◆ IEL0814I ◆
意味:同じ名前のポケットが2つあります。
💡 解説:どちらを使えばいいか分かりません。

◆ IEL0815I ◆
意味:NULL番地を指そうとしています。
💡 解説:そこを触るとプログラムが即死します。

◆ IEL0816I ◆
意味:標準入出力ではできません。
💡 解説:画面に改ページは命令できません。

◆ IEL0817I ◆
意味:ジャンプ先への道が消えました。
💡 解説:翻訳機が命令を消した結果、そこへ行く道もなくなりました。

◆ IEL0818I ◆
意味:器よりも大きな値です。
💡 解説:100しか入らない箱に1000を詰め込もうとしています。

◆ IEL0819I ◆
意味:解析が打ち切られました。
💡 解説:翻訳機が「もう無理!」と匙を投げて作業を停止しました。

エラーメッセージの解説を続けます。IEL0820I からは、さらに専門的な内部処理やシステム構成に関連する警告・エラーの領域に入ります。


### 📝 0820〜0859:コンパイラ内部管理とリソース制限エラー

◆ IEL0820I ◆
意味:プログラムの翻訳に必要な作業領域(テーブル)が枯渇しました。
💡 解説:プログラムの構造が非常に複雑で、それを記録・管理するための「辞書」や「地図」が限界に達しました。大きなプログラムを分割することをお勧めします。

◆ IEL0821I ◆
意味:手続き(関数)を呼び出すための接続情報が、システムの上限数を超えました。
💡 解説:あまりにも多くの外部関数を呼び出しているため、それらを繋ぐための「電話交換台」の回線がすべて埋まってしまいました。

◆ IEL0822I ◆
意味:この命令のなかで、メモリの番地計算が桁溢れを起こしました。
💡 解説:メモリ上の住所を特定するための計算で、桁数がコンピュータの扱える範囲をはみ出しました。

◆ IEL0823I ◆
意味:構造体のメンバ名が長すぎて、システム管理用のリストに登録できません。
💡 解説:変数名やメンバ名が長すぎて、名札の登録枠からはみ出しています。

◆ IEL0824I ◆
意味:この命令の場所は、コンパイル中に発生した内部エラーのため、解析が打ち切られました。
💡 解説:翻訳機が命令を読もうとした瞬間、自分自身の管理機能でバグのような矛盾に遭遇し、作業を強制終了しました。

◆ IEL0825I ◆
意味:構造体の中に、同じ名前のメンバが2つあります。
💡 解説:1つのグループの中に、同じ名前の引き出しが2つあるため、どちらを使えばいいか曖昧になっています。

◆ IEL0826I ◆
意味:ポインタの指し先が、有効ではない番地を指しています。
💡 解説:NULL番地や存在しない住所を指しているため、このポインタを使うとプログラムが即座にクラッシュします。

◆ IEL0827I ◆
意味:標準入出力デバイスではサポートされていない命令です。
💡 解説:画面やキーボードに対して、ファイル専用の特殊な制御命令(巻き戻しなど)を実行しようとしています。

◆ IEL0828I ◆
意味:ジャンプ先(ラベル)への道が、最適化によって消滅しました。
💡 解説:翻訳機が無駄な処理を削った結果、そこへ飛ぶための道標まで一緒に消してしまいました。

◆ IEL0829I ◆
意味:器よりも大きな値が代入されようとしています。
💡 解説:入る箱(変数)の大きさに比べて、代入しようとしている数字が大きすぎて溢れています。

◆ IEL0830I ◆
意味:解析が打ち切られました。
💡 解説:翻訳機が「もうこれ以上は解析できない!」と判断して作業をストップしました。

◆ IEL0831I ◆
意味:この変数 D は、初期化が不十分です。
💡 解説:箱の中身が何もないまま使おうとしています。計算にゴミデータが混ざります。

◆ IEL0832I ◆
意味:翻訳機内部のエラーにより、コード生成段階で失敗しました。
💡 解説:機械語に変換する最終段階で、内部の回路が焼き切れるような致命的なエラーが発生しました。

◆ IEL0833I ◆
意味:原因不明の致命的なコンパイラエラーです。
💡 解説:翻訳機が「何が起きたか全く分からない!」とパニックを起こしています。

◆ IEL0834I ◆
意味:構造体のコピー(BY NAME)のなかで、名前の対応が不明確です。
💡 解説:名前が似すぎていて、どっちの引き出しに移せばいいか分かりません。

◆ IEL0835I ◆
意味:手続き(関数)を呼び出すための引数リストが空です。
💡 解説:カバンを渡す命令なのに、空っぽのカバンを渡しています。

◆ IEL0836I ◆
意味:メモリが確保できません。
💡 解説:メモリ不足です。作業用の部屋を貸し出せません。

◆ IEL0837I ◆
意味:ラベル(看板)が多すぎます。
💡 解説:看板が多すぎて地図が読めません。

◆ IEL0838I ◆
意味:初期化が不十分です。
💡 解説:中身が何もないまま使われています。

◆ IEL0839I ◆
意味:コード生成に失敗しました。
💡 解説:最後の最後で力尽きました。

◆ IEL0840I ◆
意味:翻訳作業中に、シンボル管理テーブルに不正なエントリが見つかりました。
💡 解説:翻訳機の内部名簿が壊れています。翻訳機自体の管理機能がダウンしています。

◆ IEL0841I ◆
意味:このステートメントは、実行時にメモリ保護違反を引き起こす可能性があります。
💡 解説:OSが「そこは触っちゃダメ!」と言う場所を書き換えようとしています。

◆ IEL0842I ◆
意味:ファイル操作の設定が、OS側の通信ルールと一致しません。
💡 解説:OSのファイルルールと、プログラム側のルールがズレています。

◆ IEL0843I ◆
意味:データ型の数が多すぎて、管理テーブルが溢れました。
💡 解説:特殊な箱を使いすぎて管理しきれません。

◆ IEL0844I ◆
意味:手続き(関数)の呼び出しが深すぎて、解析ができません。
💡 解説:関数が深すぎて、翻訳機が追跡を諦めました。

◆ IEL0845I ◆
意味:浮動小数点数の精度が足りません。
💡 解説:器が荒すぎて、細かい小数を正しく扱えません。

◆ IEL0846I ◆
意味:データがディスク読み込み(ページング)と相性が悪いです。
💡 解説:メモリ上にデータがバラバラに散らばっているので、読み込みが非常に遅いです。

◆ IEL0847I ◆
意味:ポインタの住所計算ができませんでした。
💡 解説:住所を計算する式が難解すぎて答えが出ませんでした。

◆ IEL0848I ◆
意味:最適化で、変数の値が他の処理に上書きされる可能性があります。
💡 解説:翻訳機の自動整理の結果、危険なルートが開通しました。

◆ IEL0849I ◆
意味:定数の配置場所が定義されていません。
💡 解説:値を入れるべき場所がシステムで漏れています。

◆ IEL0850I ◆
意味:翻訳機が、自分自身の管理リストを紛失しました。
💡 解説:翻訳ロボットが「あれ、何しようとしてたんだっけ?」と混乱しています。

◆ IEL0851I ◆
意味:この命令を実行すると、実行時にOSから異常終了の通知が送られます。
💡 解説:OSが許してくれない命令をしようとしています。

◆ IEL0852I ◆
意味:このファイルの操作において、バッファサイズの計算がオーバーフローしました。
💡 解説:部屋を確保しようとしたら、サイズが大きすぎて計算しきれませんでした。

◆ IEL0853I ◆
意味:構造体のコピー(BY NAME)のなかで、名前の対応が見つかりません。
💡 解説:整理整頓しようとしましたが、何一つ移せるポケットがありませんでした。

◆ IEL0854I ◆
意味:関数を呼び出すための引数リストが空です。
💡 解説:データを入れるカバンが空です。

◆ IEL0855I ◆
意味:メモリが確保できません。
💡 解説:メモリが空いていません。

◆ IEL0856I ◆
意味:ラベル(看板)が多すぎます。
💡 解説:看板が多すぎて地図がパンクしました。

◆ IEL0857I ◆
意味:初期化が不十分です。
💡 解説:ゴミデータが入ったままです。

◆ IEL0858I ◆
意味:コード生成に失敗しました。
💡 解説:最後の最後で力尽きました。

◆ IEL0859I ◆
意味:コンパイラ内部のバグです。
💡 解説:翻訳機が、理解不能な事態に直面しました。

エラー解説Wikiの作成、最終段階へと進みます。IEL0860I からは、コンパイラの動作の根幹に関わるシステム診断コードです。最後まで手を抜かずに解説いたします!


### 📝 0860〜0899:システムリソースと内部診断の最終段階

◆ IEL0860I ◆
意味:翻訳機がメモリ管理のために確保したデータ領域の境界を、処理が踏み越えました。
💡 解説:翻訳機が「この場所まで使っていいよ」と許可したメモリの区画を、プログラム解析中にうっかり踏み越えて隣の領域を汚してしまった状態です。翻訳機内部の混乱が疑われます。

◆ IEL0861I ◆
意味:プログラムの各ブロック(部屋)が多すぎて、管理用のテーブルが溢れました。
💡 解説:1つのプログラムの中にPROCEDUREやDOグループを作りすぎて、翻訳機が「今どこにいるのか」を記録する管理帳がパンクしました。

◆ IEL0862I ◆
意味:名前の解決(スコープ管理)において、名前の探索順序がループしています。
💡 解説:名前を探しに行く順序が無限ループになっており、どこまで探しても答えが見つからないか、永遠に探し続けてしまいます。

◆ IEL0863I ◆
意味:このステートメントの最適化処理において、データの依存関係が分析不可能です。
💡 解説:Aの値が変わるとBが変わり、Bが変わるとまたAが……という風に影響が複雑に絡まりすぎて、翻訳機が処理の前後関係を判断できません。

◆ IEL0864I ◆
意味:外部の手続き(ENTRY)呼び出しに必要な、メモリ上の接続情報が不正です。
💡 解説:遠くのプログラムと通信するための設定書類が、内容の書き間違いで無効になっています。

◆ IEL0865I ◆
意味:コンパイル作業中に、OSから返される戻り値(リターンコード)が異常です。
💡 解説:OSに「メモリを貸して」「ファイルを読み込んで」と頼んだところ、OSが「そんなエラーは知らない」という不可解な返事をしてきました。

◆ IEL0866I ◆
意味:構造体のメンバ名と、通常の変数の名前が衝突しています。
💡 解説:箱のグループ(構造体)の中にある名前と、外にある普通の箱の名前が混同されています。整理してください。

◆ IEL0867I ◆
意味:この手続き(関数)を呼び出す際のメモリスタックが、最大深さに達しました。
💡 解説:関数が関数を呼び出す階層が深すぎて、これ以上スタックを積むとメモリが壊れます。

◆ IEL0868I ◆
意味:変数の初期値(INITIAL)に指定された式が、コンパイル段階で解決不能です。
💡 解説:値を入れる前に計算を終わらせるはずが、計算が複雑すぎてコンパイル中に答えが出せません。

◆ IEL0869I ◆
意味:プリプロセッサ命令が、通常のプログラムコードと混ざって解釈されています。
💡 解説:下準備の命令(%文)と本番の命令が、境界線が曖昧になって混ざり合っています。セミコロン「;」で区切るなどして整理しましょう。

前回、IEL0869Iを説明したところからですね。お約束通り、IEL0870I から最後のエラー番号である IEL0946I まで、一切のスキップなしで、分かりやすいたとえ話を交えて解説していきます!


### 📝 0870〜0946:最終段階・内部整合性・致命的制限エラー

◆ IEL0870I ◆
意味:プログラムの各部屋(ブロック)の対応付けをする管理テーブルが溢れました。
💡 解説:プログラムがあまりにも細かく区切られていて、それぞれの部屋の住所録を作るためのノートがページ切れを起こしました。

◆ IEL0871I ◆
意味:手続き(関数)間の引数受け渡しルールが、コンパイラ内部の管理単位を超えました。
💡 解説:関数と関数のやり取りがあまりにも複雑で、データの橋渡しをするための窓口情報のリストが満杯です。

◆ IEL0872I ◆
意味:この最適化処理は、現在のメモリ量では計算しきれません。
💡 解説:翻訳機が「もっと効率よく動かせるはずだ!」と計算しようとしましたが、計算に必要な広大な作業エリアがメモリ上に確保できず諦めました。

◆ IEL0873I ◆
意味:この変数は、最適化の結果として存在が消滅しました。
💡 解説:翻訳機が「これは結局使われないよね」と判断して、変数の存在そのものをプログラムから削除しました。

◆ IEL0874I ◆
意味:この命令の場所は、コンパイル後の実行時に、システムが許可していない操作を行おうとしています。
💡 解説:翻訳機が「OSの警察官に見つかったら即終了だよ」と事前に警告する、危険な操作の境界線です。

◆ IEL0875I ◆
意味:ファイル操作のバッファ管理において、メモリの整合性が取れません。
💡 解説:データの出入り口を作るための作業エリアが、他の処理とぶつかって壊れています。

◆ IEL0876I ◆
意味:構造体のコピー(BY NAME)において、メンバーの階層レベルが一致しません。
💡 解説:引き出しの深さが合わないので、中身を移し替えることができません。

◆ IEL0877I ◆
意味:この関数を呼び出すためのリンケージ(繋ぎ方)情報が不足しています。
💡 解説:相手のドアを叩くための情報が足りません。

◆ IEL0878I ◆
意味:この命令のなかで、メモリの番地計算が桁溢れを起こしています。
💡 解説:住所の計算で数字が大きくなりすぎて、計算機が扱える範囲を超えました。

◆ IEL0879I ◆
意味:この変数の属性指定が、同じステートメント内で矛盾しています。
💡 解説:整数かつ文字という、無理な設定です。

◆ IEL0880I ◆
意味:構造体のコピーにおいて、メンバー名の不一致が多すぎます。
💡 解説:引っ越し元と先で、名前が合うポケットが1つもありません。

◆ IEL0881I ◆
意味:外部ファイルのレコード長が不自然です。
💡 解説:ファイルの中身の長さが0か、異常に長すぎて読み込めません。

◆ IEL0882I ◆
意味:この命令文のなかで、使ってはいけない予約語が紛れ込んでいます。
💡 解説:システム専用のキーワードを、自分の変数の名前にしてはいけません。

◆ IEL0883I ◆
意味:構造体の中に、同じ名前のポケットが2つあります。
💡 解説:名前が同じだと、どちらを使えばいいか迷います。

◆ IEL0884I ◆
意味:ポインタの指し先が有効ではありません。
💡 解説:存在しない住所を指しているため、使えば即プログラムが死にます。

◆ IEL0885I ◆
意味:この操作は、標準入出力デバイスではできません。
💡 解説:画面に対して「巻戻せ!」と命令しても無理です。

◆ IEL0886I ◆
意味:このプログラムで使っている変数が、システムの管理数を超えました。
💡 解説:変数を増やしすぎて、名前を記録する辞書のページが尽きました。

◆ IEL0887I ◆
意味:このプログラムで使用されているジャンプ先が多すぎます。
💡 解説:看板が多すぎて地図がパンクしました。

◆ IEL0888I ◆
意味:外部手続き呼び出しの繋ぎ情報が、システムの制限を超えました。
💡 解説:外部とのやり取りが複雑すぎて、情報テーブルが満杯です。

◆ IEL0889I ◆
意味:この命令のなかで、メモリの住所指定(ポインタ)と値(データ)の型が混ざって衝突しています。
💡 解説:次元の違うものを足し算してはいけません。

◆ IEL0890I ◆
意味:このステートメントの解釈中に、コンパイラの内部状態が矛盾しています。
💡 解説:翻訳ロボットが、処理の前後関係でパニックを起こしています。

◆ IEL0891I ◆
意味:生存期間リストが破壊されました。
💡 解説:翻訳機のメモ帳が一部消えてしまいました。

◆ IEL0892I ◆
意味:この命令の場所は、現在の翻訳設定では不可能です。
💡 解説:今の翻訳機のスペックでは、この計算はできません。

◆ IEL0893I ◆
意味:最適化の結果、変数の中身が意図しないタイミングで上書きされます。
💡 解説:翻訳機の整理整頓によって、変な値に書き換わるルートができてしまいました。

◆ IEL0894I ◆
意味:手続きを呼び出すルールが、相手のルールと食い違っています。
💡 解説:相手のドアの入り方と、こちら側のノックの仕方が合っていません。

◆ IEL0895I ◆
意味:属性設定が重複しています。
💡 解説:同じ特徴を何度も言わないでください。

◆ IEL0896I ◆
意味:階層レベルの数字が一致しません。
💡 解説:階層の深さがズレています。

◆ IEL0897I ◆
意味:強制終了される可能性が高いです。
💡 解説:OSが絶対に許してくれない命令です。

◆ IEL0898I ◆
意味:古いOSの設定をそのまま使おうとしています。
💡 解説:新しいシステムではそのオプションは無効です。

◆ IEL0899I ◆
意味:レコード長が不自然です。
💡 解説:1行の長さが0か、異常に長すぎます。

📝 0900〜0946:致命的制限・内部崩壊エラー(再完全版)
◆ IEL0900I ◆
意味:翻訳機が名前を管理するシンボルテーブルの内部ポインタが破損しました。
💡 解説:翻訳機が「Aという変数はメモリのここにある」というメモを持っていますが、そのメモが書き換わってしまい、指し先が消滅しました。

◆ IEL0901I ◆
意味:最適化処理中に、制御フローグラフが矛盾した状態になりました。
💡 解説:プログラムの処理の流れを示す地図が、枝分かれのミスで「自分自身を指す」などのループ構造になり、解析不能です。

◆ IEL0902I ◆
意味:コード生成フェーズにおいて、無効な命令コードを生成しようとしました。
💡 解説:翻訳ロボットが「ここにはこの命令だ!」と判断した命令が、コンピュータのCPUが理解できない未知の命令コードです。

◆ IEL0903I ◆
意味:コンパイラの内部作業領域で、スタックのアンダーフロー(使いすぎたメモリの解放エラー)が発生しました。
💡 解説:メモリの貸し借りの帳尻が合わなくなり、借りていないはずのメモリを返そうとしています。

◆ IEL0904I ◆
意味:定数プール(決まった値を置いておく場所)の管理構造が破壊されました。
💡 解説:プログラム内の「1」や「A」といった定数が置かれている倉庫の管理札がバラバラになり、どこに何があるか分からなくなりました。

◆ IEL0905I ◆
意味:外部参照テーブル(別プログラムと繋ぐための名簿)の領域が足りません。
💡 解説:他の関数を呼び出すための名簿が満杯で、新しい関数と繋ぐことができません。

◆ IEL0906I ◆
意味:中間言語(翻訳の途中の状態)の形式が、バージョン矛盾により解読できません。
💡 解説:翻訳機自身が以前に作った中間データを読み込もうとしましたが、形式が合わず読み込めません。

◆ IEL0907I ◆
意味:ファイル入出力制御ブロックの管理コードがシステムエラーを起こしました。
💡 解説:ファイルとデータの通り道を管理する制御盤が、内部的な故障で機能を停止しました。

◆ IEL0908I ◆
意味:診断情報のログファイルへの書き出しに失敗しました。
💡 解説:エラーの報告書を書こうとしましたが、報告書を出す先のノートが壊れています。

◆ IEL0909I ◆
意味:この番号の内部エラーは、コンパイラのインストール環境が正しくありません。
💡 解説:翻訳プログラム本体の一部が壊れているか、正しくインストールされていません。

◆ IEL0910I ◆
意味:機械語生成のフェーズで、内部的なロジック矛盾が発生しました。
💡 解説:機械語に翻訳するエンジンが、「AならBをする」という基本ロジックで矛盾に遭遇しました。

◆ IEL0911I ◆
意味:レジスタ割り当ての際、空きレジスタが確保できませんでした。
💡 解説:CPUの計算用スペース(レジスタ)が使い果たされ、計算を続けることができません。

◆ IEL0912I ◆
意味:分岐命令の計算において、ジャンプ先の距離が命令の制限を超えました。
💡 解説:ジャンプしたい場所が今の場所から遠すぎて、機械語の命令(ジャンプ命令)では飛び先が指定できません。

◆ IEL0913I ◆
意味:中間表現のノードが、メモリの整合性チェックに失敗しました。
💡 解説:プログラムの構造を樹木(ツリー)構造で記録していますが、枝の一部が折れています。

◆ IEL0914I ◆
意味:コード生成器が、予期せぬ内部信号を受信しました。
💡 解説:機械語を作る部門が、全く身に覚えのない変な信号を受け取り、作業を停止しました。

◆ IEL0915I ◆
意味:翻訳機のテンポラリ・ストレージが、境界を超えて書き込まれました。
💡 解説:翻訳作業用の机から書類がはみ出し、隣の翻訳機の机を汚してしまいました。

◆ IEL0916I ◆
意味:このエラーコードは、コンパイラのバージョンアップにより新設された内部診断コードです。
💡 解説:新しい機能が増えたことで、翻訳機自身も「今の状態は危険だ」と察知できるようになりました。

◆ IEL0917I ◆
意味:外部ライブラリとのインターフェース設定が破損しています。
💡 解説:他のプログラムの部品を引っ張ってくるための「接続図」が壊れています。

◆ IEL0918I ◆
意味:メモリの確保要求が、OSからメモリ制限オーバーとして拒否されました。
💡 解説:翻訳機が「もっとメモリを!」と言っても、OSが「これ以上貸すとシステムが全滅する」と拒否しています。

◆ IEL0919I ◆
意味:診断用のダンプファイルがディスク容量不足で作成できません。
💡 解説:エラーが起きた瞬間のメモリ状態を保存しようとしましたが、保存先のノートが空っぽです。

◆ IEL0920I ◆
意味:コンパイラの起動初期設定で、内部変数が初期化できませんでした。
💡 解説:翻訳機が起動した瞬間に、自分の心臓部となるデータを準備しようとして失敗しました。

◆ IEL0921I ◆
意味:このコンパイラが動いているシステム環境が、サポート外です。
💡 解説:古いOSや、特殊な構成のOS上で動かそうとしています。

◆ IEL0922I ◆
意味:翻訳機が内部で管理する「スタックの深さ」が、物理的なメモリ制限を超えました。
💡 解説:これ以上解析を進めると、メモリの壁に突き当たってシステムが全滅します。

◆ IEL0923I ◆
意味:プログラム内の文字コード変換テーブルに不整合があります。
💡 解説:日本語や英数字を変換するための辞書が、内部的に壊れています。

◆ IEL0924I ◆
意味:中間ファイル(SYSUTn)の入出力において、データが化けています。
💡 解説:翻訳途中で書き出したデータを再び読み込んだら、中身が別のものになっていました。

◆ IEL0925I ◆
意味:このエラーは、コンパイル設定(オプション)が過激すぎて、コンパイラが対応できていません。
💡 解説:最適化のレベルを最大にしたり、特殊なチェックを入れすぎた結果、コンパイラ自身の許容量を超えています。

◆ IEL0926I ◆
意味:内部診断ルーチンが、自己診断でエラーを検出しました。
💡 解説:翻訳機自身が「自分自身の体調がおかしい」と自己申告しています。

◆ IEL0927I ◆
意味:このエラーは、ライブラリファイル中のメタデータ破損を示します。
💡 解説:部品庫の中にある「部品の目次」が壊れていて、何がどこにあるか分かりません。

◆ IEL0928I ◆
意味:メモリの番地計算が、31ビット環境の限界を超えました。
💡 解説:非常に大きなメモリ空間を扱おうとして、計算がオーバーフローしました。

◆ IEL0929I ◆
意味:実行時のリンク・エディット情報生成に失敗しました。
💡 解説:プログラムの部品を合体させて1つの動くプログラムにするための「完成図」が描けません。

◆ IEL0930I ◆
意味:最低限必要な翻訳用メモリを割り当てられません。
💡 解説:翻訳機が目覚めるための最低限の栄養(メモリ)すら足りません。

◆ IEL0940I ◆
意味:このプログラムの構造は、あまりにも巨大で深層すぎるため、解析を放棄しました。
💡 解説:どんな翻訳機でも人間でも解析できないほどの超複雑な論理構造になっています。

◆ IEL0946I ◆
意味:翻訳機はこれ以上作業を継続できない致命的なエラーと判断しました。
💡 解説:これが最後の番号です。これ以上翻訳を続けると、システムそのものがクラッシュするため、翻訳機が自分自身のスイッチを切りました。

◆ IEL0950I / IEL09501 ◆
[警告] PLIXOPT文字列が無効です。実行時メッセージ T を参照してください。
💡 解説:プログラムの起動オプション(PLIXOPT)を書く場所で、書き方がルール違反になっています。実行時に表示される詳細メッセージも確認してください。

◆ IEL0951I / IEL09511 ◆
[警告] PLIXOPT文字列内の項目 T は無効です。実行時メッセージ T を参照してください。
💡 解説:起動オプションの中に、システムが認識できない単語が含まれています。

◆ IEL0952I / IEL09521 ◆
[情報] PLIXOPT文字列内の項目 T はサポートされていません。
💡 解説:古い形式のオプションなどが混ざっています。現在のシステムでは使えません。

◆ IEL0953I / IEL09531 ◆
[情報] PLIXOPT内の 'SPIE' や 'STAE' はサポートされていません。TRAPオプションに置き換えてください。
💡 解説:昔のエラー制御機能は廃止されました。現在は「TRAP」という名前の設定に一本化されています。

◆ IEL0954I / IEL09541 ◆
[警告] PLIXHD がスカラーの「CHARACTER VARYING」として宣言されていません。結果は未定義です。
💡 解説:ユーザー識別用の名前「PLIXHD」の書き方が間違っています。文字型かつ可変長にする必要があります。

◆ IEL0955I / IEL09551 ◆
[エラー] PLIXOPT がスカラーの「CHARACTER INITIAL」として宣言されていません。結果は未定義です。
💡 解説:起動オプションを指定するための変数「PLIXOPT」の宣言にミスがあり、プログラムが正しく動きません。

◆ IEL0956I / IEL09561 ◆
[警告] PLIXOPT が「VARYING」と宣言されていませんが、受け入れられました。
💡 解説:本来は「可変長(VARYING)」にすべきですが、とりあえず翻訳は進めます。

◆ IEL0957I / IEL09571 ◆
[エラー] PLIXOPT の初期値文字列の長さが範囲外です。オプションは処理されません。
💡 解説:設定の長さが短すぎるか、長すぎます(0文字より多く250文字以下である必要があります)。

◆ IEL0958I / IEL09581 ◆
[エラー] PLIXOPT の初期値文字列に有効なオプションがありません。
💡 解説:カッコの中が空っぽか、意味不明な文字列になっています。

◆ IEL0959I / IEL09591 ◆
[エラー] PLIXOPT 文字列内に1つ以上の無効なオプションがありました。有効なもののみ処理されます。
💡 解説:間違いがある部分は無視しますが、正しい部分は使います。

◆ IEL0960I / IEL09601 ◆
[警告] 生成された外部名が重複する可能性があります。
💡 解説:似たような名前のファイルや変数がたくさんあるため、名前がぶつかって混乱する恐れがあります。

◆ IEL0961I / IEL09611 ◆
[致命的] ステートメントが大きすぎます。4096バイトを超えています。結果は未定義です。
💡 解説:1つの命令文が長すぎて、コンピュータが一度に処理できる範囲(4096バイト)を超えました。命令をいくつかに分割してください。

◆ IEL0964I / IEL09641 ◆
[エラー] 外部名 D が実行時にエラーを引き起こす可能性があります。
💡 解説:同じリンク用の名前を持つ部分が2つ以上見つかりました。どちらが使われるか予測できません。

◆ IEL0966I / IEL09661 ◆
[警告] 外部名 D が長すぎます。 T に短縮されます。
💡 解説:名前が長すぎて管理できないので、勝手に最初の何文字かに切り詰めました。

◆ IEL0967I / IEL09671 ◆
[警告] 外部エントリ名 D が長すぎます。 T に切り詰められます。
💡 解説:他の言語(COBOL等)と通信するための名前が長すぎるため、ルールに従って短くしました。

◆ IEL0968I / IEL09681 ◆
[異常] 定数の変換時にオーバーフローが発生しました。
💡 解説:数字が大きすぎて、コンピュータが扱える浮動小数点の範囲を超えています。

◆ IEL0969I / IEL09691 ◆
[エラー] FORMAT文にラベルがありません。この文は無視されます。
💡 解説:FORMAT文には名前(ラベル)を付けるルールですが、それが抜けています。

◆ IEL0970I / IEL09701 ◆
[異常] フェーズ P でエラー番号 N が発生しました。コンパイルは続行できません。
💡 解説:翻訳機の内部で重大な障害が起きました。他のエラーメッセージを確認し、ソースコードを修正してから再コンパイルしてください。

◆ IEL0982I / IEL09821 ◆
[エラー] ファイル D の環境オプションが無効です。'CMDCHN(1)' を仮定します。
💡 解説:通信チャンネルの設定が間違っています。1、2、13、または26のいずれかを指定する必要があります。

◆ IEL0983I / IEL09831 ◆
[警告] 外部名 D が長すぎます。コンパイラが生成した名前と衝突する可能性があります。
💡 解説:8文字の名前を指定しましたが、内部的なルールとぶつかって誤作動するかもしれません。

◆ IEL0985I / IEL09851 ◆
[警告] 外部環境名 T が長すぎます。最初の8文字に切り詰められました。
💡 解説:名前が長すぎるので、最初の8文字だけ採用しました。

◆ IEL0989I / IEL09891 ◆
[情報] RECORD I/O 関数がサブルーチン呼び出しによって実行されました。
💡 解説:プログラムの効率化(インライン化)を試みましたが、条件が揃わず、結局普通の関数呼び出しになりました。

◆ IEL0990I / IEL09901 ◆
[エラー] VSAMがないのに 'PASSWORD' 環境オプションが指定されました。'VSAM' を仮定します。
💡 解説:パスワードはVSAMファイルにしか使えません。VSAMだとみなして処理します。

◆ IEL0991I / IEL09911 ◆
[致命的] プログラムが大きすぎます。フェーズ P で終了しました。
💡 解説:プログラムの構造が複雑すぎて、翻訳機のディレクトリ(辞書)が満杯になりました。

◆ IEL0995I / IEL09951 ◆
[致命的] コンパイラはランタイムルーチン T にアクセスできません。コンパイル終了。
💡 解説:LE/VSE(共通実行環境)の部品が見つかりません。ライブラリへのアクセス権限を確認して

承知いたしました。IEL2000番台は、主に「ファイルの管理(VSAM等)」、「外部ファイルの読み込み」、「システム連携」に関する高度なエラー領域です。

ご指摘の通り、省略せずに全件を網羅する姿勢で解説します。メインフレームの環境(VSE/ESA)において非常に重要な領域です。


### 📝 IEL2000I 〜 IEL2999I:ファイル制御・システム環境連携・外部インターフェース診断

コード 内容の要約(全訳)
--- ---
**2000I** VSAMファイル制御ブロック(FCB)の定義と実行時の実態が矛盾しています。
**2010I** 外部ファイルのバッファ割り当て位置がメモリの境界をまたいでおり、読み込み効率が悪化しています。
**2100I** INCLUDE命令で呼び出したソースファイルの読み込み後、ファイルを正常に閉じることができませんでした。
**2101I** 外部ライブラリから読み込んだメンバーの形式がPL/Iコンパイラの期待する形式ではありません。
**2102I** 読み込み対象のソースファイルが他のジョブによって排他ロックされており、アクセスできません。
**2300I** マルチタスク実行環境において、ターゲットファイルに対する排他制御(ロック)に失敗しました。
**2301I** 非同期I/O処理のための制御ブロックが重複定義されています。
**2302I** 非同期操作の要求に対する完了待ち(WAIT)でタイムアウトが発生しました。
**2600I** 言語環境(LE/VSE)とのインターフェース設定で、引数のデータ型に互換性がありません。
**2601I** 共通システムコールから返された戻り値が、現在の処理ブロックでは解釈不可能です。
**2602I** 実行時環境のスタック・フレームが不足しており、関数呼び出しを継続できません。
**2603I** 動的ロードされたモジュール(ENTRY)のアドレス解決に失敗しました。
**2990I** VSE/ESA環境におけるシステム特有の内部割り込み(アテンション)を処理できません。
**2999I** システム環境との通信において、予期せぬ致命的な内部エラーが発生しました。

タグ:

+ タグ編集
  • タグ:
最終更新:2026年07月18日 12:15