개요

시맨틱은 프로그래밍 언어에서 문장이 가지는 의미를 말한다. 시맨틱은 컴퓨터가 특정 프로그램 언어가 실행될 경우 어떤 operation을 수행해야 할 지를 나타낸다. 이는 프로그램의 input과 output을 나타내거나 ISA와 같은 구체적인 행동 방식을 특징짓는다.

시맨틱 분석은 프로그래밍 언어의 정의, 프로그래밍 언어의 증명, type system의 증명, 컴파일러의 Correctness의 증명과 같은 다양한 분야에서 사용된다.

종류

  • Denotational semantics: 수학적인 기호로 나타내는 semantic을 말한다. 즉 프로그램의 의미를 수학적인 함수 형태로 정의한다.
  • Operational semantcis: 컴퓨터의 동작 과정(보통은 추상화된 instruction으로 나타낸다.)을 통해서 나타내는 semantic을 말한다. 즉 프로그램의 의미를 프로그램의 동작 과정을 통해서 정의한다.
  • Axiomatic semantics: Semantic을 정의된 Axiom으로 나타내는 방법을 말한다. Axiom은 논리적인 선언으로 정의된다.