Walter Bright wrote:
Steven Schveighoffer wrote:
You mean, C# doesn't provide access to the lower level constructs?
IMO D is at the same level even if it does provide inline assembler.
The simple fact is, you don't *have* to use low level features of D,
you can stick to the C#-level constructs. Hell, you can even write
full useful programs in D without ever touching a pointer or inline
assembler.
D is both higher and lower level than C#. Lower level because of:
1. direct C interface
2. inline assembler
3. pointers
Higher level:
1. metaprogramming
2. support for purity, const, immutable, shared
3. CTFE
It's worth noting that the lowest level language is a list of hex bytes.
Asm only gets to that level by the 'db' pseudo-instruction; there are
several constructs which it doesn't support natively.
Interestingly, one of those constructs is float.infinity, which D _does_
support natively.