Notice
Recent Posts
Recent Comments
Link
«   2025/07   »
1 2 3 4 5
6 7 8 9 10 11 12
13 14 15 16 17 18 19
20 21 22 23 24 25 26
27 28 29 30 31
Archives
Today
Total
관리 메뉴

컴맹의 CS study

Denotational Semantics 본문

reading

Denotational Semantics

코코블라썸 2017. 10. 15. 12:27

[본문은 출처의 article을 요약한 것]


언어를 추상화 하기 위해서 Syntax와 Semantic으로 나누어 생각.

Syntax는 심볼이 배치되는 구조, 틀, 형식

Semantic은 Syntax에 따라 작성된 것을 이해하는 방법, 의미, 흐름


하나의 프로그램에서 Syntax는 결국 => 프로그래밍 언어

이것보다 수학적인 추상화를 위한 방법이 있나? => Denotational Semantic 이 필요. 


Denotational semantic의 방식은 1) Compositional Semantic과 2) Fixpoint Semantic이 있음.


1) Compositional Semantic의 경우는 부분을 통하여 의미를 서술하는 방식

[1+2]=[3] 에서 [1]+[2] = [3]이 되는 듯


이때 순서문, 조건문은 Compositional semantic으로 표현이 가능하지만

While과 같은 반복문은 가능한가? NO


While E C에서

[While E C] = if [E]M != 0 then [While E C]([C]M) else M 이 되는데

의미가 자신의 내부에 있기 때문에 의미를 정의한 것이 아닌 방정식을 정의한 것이 된다. 


그럼 프로그램을 수학적으로 분석하는 것은 불가능한가? NO

그럼 저 방정식의 해는 무엇인가? 


예를 들어 x+2 = 5 라는 방정식에서 x=3인 것은 쉽게 대답할 수 있지만 그것은 x가 실수의 범위 내에 있을때의 이야기이다. 

x가 음수라면 해는 없다.


While의 경우에 문제를 풀 수 있는 Domain이 존재하는가? YES

Patrick에 따르면 모든 컴퓨터 프로그램의 해는 "의미공간이론(?)"에서 규정하는 성질의 집합 안에서 유일하게 존재하고 그것은 ~ 하다. 라고한다


의미공간(Semantic Domain)? ==> Complete Partial Order (CPO) Set

프로그램들은 이 CPO 위에서 방정식으로 표현되는 것.

CPO와 PO의 차이는 lower bound

프로그램의 원소들이 CPO에 있다고 하면 연산자는 무엇인가?

그것은, CPO->CPO인 continuous function로 정의할 수 있다


출처 - http://blog.naver.com/hw5773/220664766360

'reading' 카테고리의 다른 글

ramfs, rootfs, initramfs  (0) 2017.05.20
Comments