
On 20050507T212832+0200, Marcin 'Qrczak' Kowalczyk wrote:
ISO 9899:1999 (C99) section 6.7.5.2:3 says that its type is "array of int", not "array of 50 ints":
Ok, so in C terminology "type" is different from most statically typed languages in this respect. The dimension is used together with the type to determine static properties, and 6.7.5.2:4 says:
[#4] For two array types to be compatible, both shall have
Actually, that's 6.7.5.2:6. It is the only place where array size is truly used as part of the type. In all other contexts, it is easily interpretable as a property of the variable, and since the size of the array is not otherwise used as a type attribute, it is fair to say that it is not really a type attribute. (Not in the Pascal sense, in any case.)
In both languages lvalueness is also not considered a part of the type but an alternative language presentation could use a wording where it is.
There are always alternative ways to present a language. -- Antti-Juhani Kaijanaho http://antti-juhani.kaijanaho.info/ Blogi - http://kaijanaho.info/antti-juhani/blog/ Toys - http://www.cc.jyu.fi/yhd/toys/