16. The system of claim 10 , wherein user-defined-bounds check annotation indicates supplemental bounds checking, in that the user-defined type wraps a built-in type which the compiler is configured to already bounds check in the absence of any user-defined-bounds check annotation.
10. A computer system comprising: a logical processor; a memory in operable communication with the logical processor; a source code residing in the memory and having a user-defined type, namely, a type which is not built-in and which is defined free of any multi-element array type as a constituent type, the user-defined type having a memory-accessing method which is annotated with a user-defined-bounds check annotation, wherein the user-defined bounds check annotation comprises one or more of: a field-contains bound annotation indicating that a field in the user-defined data type contains a bound for the memory-accessing method and a bound-getter method annotation indicating that the bound-getting method in the user-defined data type returns a bound for the memory-accessing method, the user-defined type also having at least one bound specifier; a compiler residing in the memory and configured to insert into an intermediate language code a bounds-check representation of the user-defined-bounds check annotation; and an optimizer residing in the memory and configured to apply an optimization to intermediate language code in order to reduce duplicative bounds checking that would otherwise occur in the executable code.