If Some_Array is any array supplied at run-time, how can the compiler
know what values are stored in A'Range? (I mean, what the bounds of
the array are)
The bounds are in the array dope.
It *has* to check these bounds at run-time. This
behaviour is also easily done with C++, creating a 'bounds' class,
similar to A'Range. The only difference is that it is a mechanism
provided by the user and not the compiler.
No, the difference is that the compiler *statically* knows that both I and
J will be in the bounds at run-time. There is no way (except for dirty
tricks with casting) how they might become out of the bounds. Therefore
the
compiler can safely omit any checks.
4. Also, some people wrote that C++ is bad because it is difficult
(but not imposible, see Comeau C++) to follow 100% the Standard. The
same can be said to adA, because at least if we own a compiler of the
'83 Standard, we can't have the derivation a virtual function
mechanisms, only interfaces (pure virtual classes)[2]. To me, it
sounds reasonable to work with the last version of a compiler when
possible.
As long as you have only one compiler vendor...
Sorry, I don't understand you very well here.
If your code depends on the compiler version, and you have to compile it
under gcc, Borland, MSVC, then you are in trouble man!