Re: PL/1, Origin of struct
えー、結局「間違い」というのが正しかった、という結論です。^_^;
In article <bjhms9$lvj$1@bluegill.lbm.go.jp> toda@lbm.go.jp writes:
>>そこから引用:
>>>COBOLの名前空間は全体で1つであり、メンバー変数の名前を個々の構造体ごとに
>>>変えねばならない。そして、構造体変数の代入は常に並び順照合である。
>>これは間違ってます。
>ただ、私の知り得る情報を総合した限りでは、
>「間違っている」のではなく「情報が古い」のではないかと思うのですが、
>如何でしょうか?
>実は私のCOBOLに関する知識は、(恐ろしいことに)1982年で停まっておりまして、
>従って、「第3次規格」(ANSI 1985, ISO 1985, JIS 1988)以前なのです。
ふと思いついて、私が使っていた教科書の索引で
「identifer(一意名)」を索いてみました。
そしたら、
>>>PL/Iでは、異なる構造体に同一名のメンバーが属することを許容し
>>>(むしろ同一構造の構造体には同一メンバ名を用いることを推奨し)、
>>>代入に際して名前で照合する「BY NAME」指定を導入した。
>>と書いてあるPL/Iと同じです。同じ名前の要素の参照は、「要素名 OF 親の名」
>>で参照します。要素名がプログラム中でユニークなら「OF 親の名」は省略可。
が、しっかり出てきました^_^;
#「要素名 IN 親の名」でも良いようです。
ただ、この教科書の著者の立場としては、
この機能は「極力使うべきではない」と考えているようです。
名前空間云々とか、同一構造は同一名で識別するべきとかいう考えは頭に無く、
単に命名を「手抜き」するための機能とでも認識していたのではないかと思います。
そのため、極力この機能を隠すように記述していました。
すっかり騙されてしまった^_^;
戸田 孝@滋賀県立琵琶湖博物館
toda@lbm.go.jp
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