Eliminacja sprawdzania zakresu

Z Wikipedii, wolnej encyklopedii
Skocz do: nawigacja, szukaj

Eliminacja sprawdzania zakresu (ang. bounds-checking elimination) to optymalizacja kompilatora przydatna w językach programowania lub środowiskach uruchomieniowych które wymagają sprawdzania zakresu tablic, czyli sprawdzania przy każdym dostępie do tablicy czy indeks do niej ma wartość mieszczącą się w jej zakresie. Celem jest eliminacja niepotrzebnych sprawdzeń.

Prostym przykładem jest odczyt elementu tablicy, modyfikacja go i zapis zmodyfikowanej wartości w to samo miejsce. Normalnie wymagało by to dwóch sprawdzeń zakresu, najpierw przy odczycie, a potem przy zapisie. Eliminacja sprawdzania zakresu pozwala na pominięcie drugiego sprawdzenia gdy kompilator albo środowisko uruchomieniowe mogą udowodnić, że rozmiar tablicy i indeks do niej nie zmieniają się pomiędzy tymi dwoma operacjami na niej.

Inny przykład to iteracja po elementach tablicy, gdy warunek pętli gwarantuje, że indeks mieści się w jej zakresie.