본문 바로가기

프로그래밍 언어론

[프로그래밍 언어론] 의미론(sementics)

반응형

의미론(sementics) 는 작성된 수식, 문장 혹은 프로그램의 의미를 정하는 것

 - 프로그램의 의미를 정확하게 정희하고 이해하기 위해 필요

 - 소프트웨어가 하는 일을 정확하게 명세하는데 사용

 - 소프트웨어에 대한 검증 혹은 추론의 기초

 - 컴파일러 혹은 해석기 작성의 기초

 

작동 의미론(operational semantics) : 프로그램 내의 수식이나 문장의 작동 등 실행 과정을 기술하여 정의하는 방법

표시 의미론(denotational semantics) : 프로그램 내의 수식이나 문자의 의미를 표시하고 부르는 수학적 함수 형태로 정의하는 방법

공리 의미론(axiomatic semantics) : 프로그램 내의 문자의 의미를 그 문장의 전제 조건과 후행 조건을 상태에 대한 표명(assertion)으로 그 효과를 기술하여 정의하는 방법

 

좌결합(left associative)은 왼쪽부터 우선 결합하는 규칙으로 왼쪽에서 오른쪽으로 수행

 

우결합(right associative)은 오른쪽부터 우선 결합하는 규칙으로 오른쪽의 연산자부터 먼저 수행

 

구조적 프로그래밍(structured programming) 의 기본 아이디어는 goto 문을 사용하지 않고 시작과 끝나는 지점이 구조적 구문(structured construct)을 사용하자는 것

 

Böhm&Jacopini 는 순차, 선택 , 반복의 3가지 형태의 제어구조로 함수를 표현할 수 있다고 주장

 - 순차(concatenation)는 구문 순서에 따라서 순서대로 수행

 - 선택(selection)은 프로그램의 상태에 따라서 여러 구문들 중에서 하나를 수행

 - 반복(repetition)은 특정 상태에 도달할 때까지 구문을 반복하여 수행

 

설탕 구문(syntactic sugar)

 - 더 쉽게 읽고 표현할 수 있도록 설계된 프로그래밍 언어 구문

반응형