Re: PL/1, Origin of struct
toda@lbm.go.jp writes:
>>>COBOLの名前空間は全体で1つであり、メンバー変数の名前を個々の構造体ごとに
>>>変えねばならない。そして、構造体変数の代入は常に並び順照合である。
>>これは間違ってます。
> 情報ありがとうございます。
>
> ただ、私の知り得る情報を総合した限りでは、
> 「間違っている」のではなく「情報が古い」のではないかと思うのですが、
> 如何でしょうか?
そうかもしれません。学生時代COBOLの入門書を読んだことはありますが、
面白くない言語だったので詳細までは覚えてなかったはず。
(他にもっと面白い言語があったので)
メインフレームCOBOLのマニュアルを読んだのは1985年以降です。
逆輸入か、きっとそうですね。今はOO-COBOLとかもあるし。
失礼しました。
>>>ちなみに、COBOLで構造の異なる構造体変数へ代入する場合は、一旦バイト列に
>>>分解して頭から変数に切り直すという恐ろしい仕様(ファイル入出力のバッファ
>>>という発想からすれば自然か?)になっている。
>>これはちょっと意味がわかりません。構造の異なる構造体変数への代入は
>>ごく普通に親の名前を使って MOVE すればできるのでは?
> 「分解」というより「展開」と表現した方が良かったかな?
意図は了解しましたが、それを「分解」とは?むしろ「結合」ではないでしょうか?
PL/IだとUNSPEC関数、UNSPEC擬関数をつかって構造体をひとまとめにするイメージ。
<ちなみに、COBOLで構造の異なる構造体変数へ代入する場合は、一旦全体を1つの
<バイト列と見なして、それを頭から変数に切り直すという恐ろしい仕様
でどうでしょうか。
と、ここまで書いて、「分解」と書かれた意味がわかりました。
「バイト列」という言葉のイメージの食い違いですね。
--
oo
Fnews-brouse 1.9(20180406) -- by Mizuno, MWE <mwe@ccsf.jp>
GnuPG Key ID = ECC8A735
GnuPG Key fingerprint = 9BE6 B9E9 55A5 A499 CD51 946E 9BDC 7870 ECC8 A735