작은 단계와 큰 단계의 동작 의미론의 근본적인 차이점은 무엇입니까?
나는 그것이 무엇인지 파악하고 두 가지를 갖는 동기를 얻는 데 어려움을 겪고 있습니다.
x = 0; while ( true ) { x = x + 1; }
무엇입니까?
작은 단계와 큰 단계의 동작 의미론의 근본적인 차이점은 무엇입니까?
나는 그것이 무엇인지 파악하고 두 가지를 갖는 동기를 얻는 데 어려움을 겪고 있습니다.
x = 0; while ( true ) { x = x + 1; }
무엇입니까?
답변:
스펙트럼의 다른 끝에는 의미 상 의미론이있다 . 표기 의미론은 각 표현에 "의미"를 할당합니다. 표현식에서 표기까지의 함수입니다. ( D 는 도메인이라고합니다). 표기 공간은 구문 공간과 완전히 무관 할 수 있습니다. 예를 들어 E 는 숫자로 평가되는 표현식이고 D 는 \ mathbb {N} 또는 \ mathbb {R} 과 같은 숫자 집합 일 수 있습니다 .
큰 단계 의미론은 중간에 있습니다. 표현 언어 및 일련의 값 에 대한 큰 단계 의미 는 관계 입니다. 표현식을 값과 연관시킵니다 (언어가 결정적이지 않은 경우 여러 값일 수 있음). 종료하지 않는 표현식 에는 특수한 값 이 사용되는 경우가 종종 있습니다.
그렇다면 왜이 세 가지 개념이 있습니까? 이러한 모든 개념은 서로를 모델링 할 수 있지만 모델은 다소 복잡성을 가중시킵니다.
운영상 말하기, 작은 단계 의미는 해당 언어에 대한 통역사가 수행하는 각 작업을 보는 것에 해당합니다. 큰 단계 의미론은 결과 값만 봅니다. 명칭 의미론은 컴퓨터에서 일어나는 일과 관련이 있거나 없을 수있는 수학적 해석을 살펴 봅니다.
작은 단계 의미론이 가장 명백합니다. 비 종료 프로그램에 대한 유용한 정보를 명확하게 제공합니다. 보다 일반적으로 프로그램의 동작에 대한 자세한 정보를 제공합니다.
Dentational semantics는 구문 구조를 임의의 수학적 객체로 변환합니다. 과학자가 원하는 것을 표현할 수 있지만 (표현의 표현을 가능한 모든 축소 체인으로 정의 할 수 있음) 복잡성을 추가해야합니다. 표현식이 정확히 어떻게 평가되는지와 같은 세부 사항을 추상화하려고 할 때 사용됩니다.
큰 단계 의미론은 중간에 있습니다. 평가의 세부 사항은 추상화하지만 결과의 구문 적 특성은 유지합니다. 일반적 개념은 기초적인 작은 단계 의미가있을 때 " 간결하게 표현하는 방법으로 사용됩니다. ”는“ ”으로 존재합니다. 이러한 구성에서는 개념이 매우 다르지만 (하나는 개별 계산 단계와 비 종료 프로그램에 대해 이야기 할 수 있지만, 다른 것은 그렇지 않습니다),이 경우 정의는 매우 유사하게 보입니다. 큰 단계 의미는 기본적으로 "if and… 및 및값은 ”입니다.
3
에서 ((2+1)+1)⇓3
'큰 단계는'반드시 그에게 직접지도하지 않을 약간의 최종 모든 값은,하지만 인스턴스에서 'denotational'나는 같은데요? 차이점은 (a + 1)
포함 된 환경에 따라 컨텍스트와 관련 이 a
있습니까?
3