Кіріспе

Компиляторды оңтайландыру
Компьютерлік ғылымда, шектерді тексеруді жою – шектерді тексеруді қолданатын бағдарламалау тілдерінде немесе орындалу кезіндегі жүйелерде пайдалы компилятор оңтайландыруы. Шектерді тексеру – массивке кез келген индекс қолданғанда, сол индекс массивің белгіленген жарамды диапазонында екенін тексеру амалы. Оның мақсаты – осы индекске қолдану операцияларының қайсысын орындау кезінде растау қажет емес екенін анықтап, осы тексерулерді жою. Көп кездесетін мысал – массив элементіне кіру, оны өзгертү, ал өзгерткен мәнді сол массивте сол орналасқан жерге сақтау. Әдетте, бұл мысал элемент массивің оқылып жатқанда бір шек тексеруді, ал өзгерткен элемент сол массив индексі арқылы сақталғанда екінші шек тексеруді тудырады. Шектерді тексеруді жою, егер компилятор немесе орындалу кезіндегі жүйе массивтің мөлшері де, индексі де екі массив операциясы арасында өзгермейтінін анықтаса, екінші тексеруді жоюы мүмкін. Тағы бір мысал – бағдарламашы массив элементтері бойынша циклды жүргізеді, ал цикл шарты индекс массивің шегінде екендігіне кепілдік береді. Бағдарламашының қолмен жасаған тексеруі автоматты тексеруді артық қылатынын анықтау қиын болуы мүмкін. Дегенмен, компилятор немесе орындалу кезіндегі жүйе осы жағдайда шектерді тексеруді жоюға мүмкіндік береді.

Жергілікті құрастырылған тілдерде

Шектерді тексеруді жоюдың бір тәсілі – типтелген статикалық бір тапсырма түріндегі ұсынысты қолдану және әрбір массив үшін сол массив үшін қауіпсіз индексті көрсететін жаңа тип құру. Мәннің массивтің индексі ретінде алғаш рет қолданылуы кезінде типке келтіру (және тиісті тексеру) жүзеге асырылады, бірақ кейін қауіпсіз индекс мәнін типке келтірмей-ақ, дұрыстықтан немесе қауіпсіздіктен айырылмастан пайдалануға болады.

JIT құрастырған тілдерде

Java және C# сияқты уақытында компиляцияланатын тілдер массивтерге қол жеткізер алдында индекстерді әдетте жұмыс уақытында тексереді. HotSpot сияқты кейбір уақытында компиляторлар, егер индекс әрқашан дұрыс диапазон шегінде екенін анықтаса немесе бұрынғы тексеру қателік тудырған болса, осы тексерулердің бір бөлігін жоюға қабілетті.