ABOUT ME

-

Today
-
Yesterday
-
Total
-
  • Semantics (의미론)에 대하여
    컴공지식/프로그래밍언어론 2024. 9. 7. 01:24

    프로그래밍 언어에서 'Semantics'는 코드가 어떻게 의미를 갖는지, 즉 코드가 실제로 무엇을 하고 어떻게 동작하는지를 정의하는 거다.

    몇 가지 의미론을 살펴보자

     

    Mathematical techniques (수학적 기법들)

    일단 수학적 방법으로 프로그래밍 언어의 의미를 정의할 수 있는데, 그 대표적인 방법들은 다음과 같다.

    Denotational semantics (표상 의미론): 이건 프로그램의 각 부분을 수학적인 함수로 표현하는 방식이다. 즉, 코드가 어떤 입력을 받아서 어떤 출력을 내는지, 그 관계를 수학적으로 정의한다.

    Operational semantics (작동 의미론): 이건 프로그램이 실제로 어떻게 실행되는지를 설명하는 방식이다. 한 단계 한 단계의 실행 과정을 정의하는 거라고 보면 된다. 

    Axiomatic semantics (공리적 의미론): 이건 프로그램이 어떤 속성을 만족하는지 수학적인 논리로 증명하는 방법이다. 코드가 어떤 논리적 특성을 충족하는지를 보증하는 거다. 근데 이건 좀 너무 고급이라 머리가 터질 수도 있기 때문에.. 나중에 기회가 되면 다루겠다..

     

    수학접 기법들 다음으로는 Interpreter semantics (인터프리터 의미론)이 있는데

    간단히 말하면, 언어를 설명하기 위해선 그 언어의 인터프리터를 작성하라는 거다.

    인터프리터는 코드를 한 줄씩 읽고 그걸 실행하는 프로그램이니까, 인터프리터를 작성하면서 그 언어의 의미를 자연스럽게 정의할 수 있다는 거다.

    마치 이런거다.

    인터프리터가 프로그램 코드를 한 줄씩 읽으면서, "이 코드는 더하기를 의미해"라고 설명하고, 바로 그 연산을 수행한다.

    즉, 언어를 사용하는 순간 바로 그 의미를 실행하면서 배우는 거다.

     

     

     

Designed by Tistory.