Re: PL/1, Origin of struct
片山@PFUです。
SAITOH akinori <saitoh@ist.osaka-u.ac.jp> writes:
> toda@lbm.go.jp wrote:
> > (7)配列(ベクタ)を宣言すると、同名の単純変数も同時に確保され、
> > 当該配列へのポインタで初期化される
> >
> > わけのわからん無駄な仕様ですね。
> > 当該配列へのポインタを値とする定数名とするのが素直なんですけど。
> > (C言語は、まさにそう)
>
> 定数オペランドアドレスにアクセスするアドレッシングモードがない
> 計算機を想定していたのでは?(正確には、アドレス空間全体は
> アクセスできない)。最近ではCASLくらいですがそんなのは。
> そういうCPUでのアセンブラのお作法に引きずられた。
> (すみません。思いつきです)
これは、
> > データは言語レベルでは内部表現としてのみ意味があり、
> > その内部表現にどういう意味を持たせるかはプログラマ次第
> > という意味で「機械寄り」の「区別の無さ」です。
>
> 要は word ですよね。
こっちと関係があるのではないかと思います。
配列宣言でその配列へのポインタも用意しておくことで、配列というデー
タ型をコンパイラが覚えておく必要が無くなります。
数 KB 程度のメモリで動作するコンパイラの場合、データ型が“word”
だけで済む(=データ型を区別する必要が無い)のとそうでないのとで
は、コンパイラのサイズが相当変わってきます。
うろ覚えですが、μPLAN も同様な仕様だったと思います。
--
片山@PFU
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