片山@PFUです。

SAITOH akinori <saitoh@ist.osaka-u.ac.jp> writes:

> toda@lbm.go.jp wrote:

> > (7)配列(ベクタ)を宣言すると、同名の単純変数も同時に確保され、
> > 当該配列へのポインタで初期化される
> > 
> > わけのわからん無駄な仕様ですね。
> > 当該配列へのポインタを値とする定数名とするのが素直なんですけど。
> > (C言語は、まさにそう)
> 
> 定数オペランドアドレスにアクセスするアドレッシングモードがない
> 計算機を想定していたのでは?(正確には、アドレス空間全体は
> アクセスできない)。最近ではCASLくらいですがそんなのは。
> そういうCPUでのアセンブラのお作法に引きずられた。
> (すみません。思いつきです)

これは、

> > データは言語レベルでは内部表現としてのみ意味があり、
> > その内部表現にどういう意味を持たせるかはプログラマ次第
> > という意味で「機械寄り」の「区別の無さ」です。
> 
> 要は word ですよね。

こっちと関係があるのではないかと思います。

配列宣言でその配列へのポインタも用意しておくことで、配列というデー
タ型をコンパイラが覚えておく必要が無くなります。

数 KB 程度のメモリで動作するコンパイラの場合、データ型が“word”
だけで済む(=データ型を区別する必要が無い)のとそうでないのとで
は、コンパイラのサイズが相当変わってきます。

うろ覚えですが、μPLAN も同様な仕様だったと思います。
--
片山@PFU