[프로그래밍 언어론] 문장의 의미
·
CS/프로그래밍 언어론
문장의 의미 의미론 파트의 마지막 포스팅인 문장의 의미 부분이다. 앞선 포스팅에서 알아보았듯이 프로그램이 실행 중일 때 변수가 현재 가지고 있는 값을 상태(State)라 한다고 알아보았다. 이전에 상태는 식별자 집합인 Identifier에서 값 집합 Value로 가는 하나의 함수로 정의하였다. s: Identifier -> Value 상태를 중심으로 문장의 실행 의미를 생각해보자. 이전에도 계속 언급하였듯 문장은 문장을 실행함으로써 실행 전의 상태를 실행 후 상태로 변경하는 일을 한다. 문장 S는 문장 실행 전 상태 s를 실행 후 상태 s'로 변경시키며, 이것을 상태 전이(state transition)이라 한다. 이것을 다음과 같이 표현할 수 있다. (s, S) -> s' 작동 의미론에서는 각 문장..
[프로그래밍 언어론] 의미론(sementics) - 수식의 의미
·
CS/프로그래밍 언어론
의미론 언어 S에서 수식의 의미를 알아보기 전, 의미론(sementics)에 대해 알아보자. 의미론이란 예전 포스팅에서 언급한 프로그래밍 언어를 설계할 때 필수적으로 있어야 하는 요소이다. 의미론 / 시멘틱스(sementics)는 작성된 수식, 문장, 혹은 프로그램의 의미를 정하는 것을 말한다. 의미론의 용도는 다음과 같다. 1. 프로그램 의미를 정확히 정의하고 이해하기 위함.2. 소프트웨어가 하는 일을 정확히 명세.3. 소프트웨어에 대한 검증 혹은 추론의 기초.4. 컴파일러 / 해석기 작성의 기초. 프로그램의 의미는 자연어를 이용해 기술하거나 수학적으로 기술 가능하다. 의미의 수학적 기술 방법에는 다음 세 가지가 있다. 1. 작동 의미론: 실행 과정을 기술해 정의하는 정형화된 방법2. 표시 의미론: ..