본문 바로가기
오래된 글

프로그래밍 언어에서 Syntax와 Semantics의 차이는 무엇인가?

by pagehit 2018. 10. 19.
반응형

요약


Syntax는 문장이 언어으 문법(grammar)에 따라 유효하진 혹은 타당한지 아닌지 확인하는 것과 관련있다.

Semantics는 문장이 타당한 의미를 지니는지 아닌지를 판별하는 것과 관련있다.




조금 더 자세히


Syntax는 언어의 문법 또는 구조에 관한 것이다.

"내가 타당한 문장을 구성하였는가?"에 대한 답변과 관련 있다.


Semantics는 문장의 의미와 관련있는 것이다. 

"이 문장이 타당한가", "이 문장의 의미는 무엇인가?"라는 질문에 대한 답이다.


참고로 몇 몇 Semantics는 compile-time에 결정될 수 없다.

그러므로 run-time에 결정되어야 한다.

예를 들어 ++ 연산자의 경우, x++; 와 같은 문장이 있다고 생각해보자.

프로그램 실행중 x의 data type이 표현하는 최대값을 벗어나면 어떻게 될까?

이 물음에 대해 생각해보면 된다.

문법적으로는 아무런 문제가 없지만, semantics로 보면 원하는 값이 나오지 않는다.

반응형

댓글