Sprawdzanie zakresu: Różnice pomiędzy wersjami

[wersja przejrzana][wersja przejrzana]
Usunięta treść Dodana treść
Snopeusz (dyskusja | edycje)
poprawiony link do języka D
Znaczniki: Z urządzenia mobilnego Z wersji mobilnej (przeglądarkowej)
Modrym (dyskusja | edycje)
m Poprawiono odnośnik do C (język programowania)
 
Linia 5:
Ponieważ sprawdzanie zakresu przy każdym odwołaniu się do zmiennej lub tablicy jest czasochłonne, w niektórych aplikacjach nie przeprowadza się tego sprawdzenia. Istnieją też specjalne techniki kompilacji umożliwiające eliminację sprawdzeń zakresu w wielu częstych przypadkach; zobacz [[eliminacja sprawdzania zakresu]].
 
Wiele języków programowania, takich jak [[C (język programowania)|C]]/[[C++]], nigdy nie przeprowadza automatycznego sprawdzania zakresu, co jest umotywowane kwestią szybkości działania programu. Jest to przyczyną bardzo wielu błędów [[off by one]] i [[przepełnienie bufora|przepełnienia bufora]].
 
Popularne języki wymagające sprawdzania zakresu podczas działania programu to [[Ada (informatyka)|Ada]], [[Visual Basic]], [[Java]] i [[C Sharp|C#]]. W języku [[D (język programowania)|D]] i wielu innych sprawdzanie zależy od przełącznika kompilatora. C# pozwala na fragmenty kodu oznaczone ''unsafe'', w których można między innymi pominąć sprawdzanie zakresu i umożliwić używanie surowych wskaźników do pamięci dla szybszego wykonania kodu. Jest to przydatne do optymalizacji niewielkich, a często wywoływanych fragmentów, bez obniżania bezpieczeństwa wykonania całego programu.