"경계 검사"의 두 판 사이의 차이

크기가 바뀐 것이 없음 ,  5년 전
잔글
편집 요약 없음
잔글
잔글
'''경계 검사'''(bounds checking)는 [[변수 (컴퓨터 과학)|변수]]가 사용되기 전에 경계 내에 위치하는지를 탐지하는 기법이다. 이것은 일반적으로 숫자가 주어진 타입에 맞는치를맞는지를 확인(범위 검사)하거나 [[배열]] 인덱스로 사용되는 변수가 배열의 경계 내에 위치하는지를 확인(인덱스 검사)하는 것이다. 실패한 경계 검사는 보통 [[예외 처리|예외]] 시그널을 야기한다.
 
사용되는 모든 경우에 경계 검사를 수행하는 것이 시간을 잡아먹는 일이기 때문에 이것이 항상 수행되는 것은 아니다. 경계 검사 제거는 필요치 않은 경계 검사를 제거하는 [[컴파일러 최적화]] 기법이다.
 
== 인덱스 검사 ==
인덱스 검사는 모든 배열의 인덱스 표현 [[식 (프로그래밍)|식]]에서 인덱스 값이 배열의 경계에 맞게 검사되는 것으로서 인덱스가 배열의 경계를 넘는다면 이후의 실행은 에러롤에러를 유발하며 정지된다. 배열에서 상위 범위의 외부 숫자를 사용하는 것이 프로그램의 충돌을 일으키거나 보안 취약점들([[버퍼 오버플로]])을 일으키기 때문에 인덱스 검사는 많은 [[고급 프로그래밍 언어]]의 한 부분이다.
 
C 같은 많은 프로그래밍 언어들은 속도를 높이기 위해 자동화된 경계 검사를 수행하지 않는다. 그러나 이것은 잡히지 않는 많은 [[off by one 에러]]와 [[버퍼 오버플로]]를 유발한다.

편집

8