logo

의미론적 오류

의미 분석 단계에서 이러한 유형의 오류가 나타납니다. 이러한 유형의 오류는 컴파일 타임에 감지됩니다.

대부분의 컴파일 시간 오류는 범위 및 선언 오류입니다. 예를 들어: 선언되지 않은 식별자 또는 여러 개의 선언된 식별자. 유형 불일치는 또 다른 컴파일 시간 오류입니다.

잘못된 변수를 사용하거나 잘못된 연산자를 사용하거나 잘못된 순서로 작업을 수행하면 의미 오류가 발생할 수 있습니다.

일부 의미 오류는 다음과 같습니다.

  • 호환되지 않는 피연산자 유형
  • 선언되지 않은 변수
  • 실제 주장과 형식적 주장이 일치하지 않음

예시 1: 초기화되지 않은 변수 사용:

 int i; void f (int m) { m=t; } 

이 코드에서는 t가 선언되지 않았으므로 의미 오류가 표시됩니다.

예 2: 유형 비호환성:

 int a = 'hello'; // the types String and int are not compatible 

예시 3: 표현식 오류:

 String s = '...'; int a = 5 - s; // the - operator does not support arguments of type String