Yes I know what is the difference between the compiler and interpreter.

And I'm not asking about RUNTIME error handling. I'm asking about boundary checking during the compile.
It can be clearly seen from the code that reading past array boundaries WILL occur in compiled code:

1. Compiler knows that X is starting from 0
2. Compiler knows that array is being read at X-16 position, which is definitely an error.

So some kind of notification like - "possible out of boundary array access" is very well possible and would be great.