Re: The compiler could generate a lot of extra code for bounds checking
I spent many happy years working with COBOL on IBM mainframes. The way data was defined made immense differences to the compiled size of programs (and presumably the run times, but memory usage was more important in those days). COBOL was very good at converting data from one format to another, but it generated vastly different amounts of assembler code.