의학적 의미론은 무엇입니까?


45

(A)에 다른 스레드 , 안드레이 바우어는 denotational 의미로 정의 :

프로그램의 의미는 그 부분의 의미의 함수입니다.

이 정의에 대해 나를 귀찮게하는 것은 그것이 일반적으로 비 의미 적 의미론, 즉 구조적 작동 의미론 으로 생각되는 것에서 일반적 의미 적 의미론 으로 간주되는 것을 단일화하지 않는 것 입니다.

보다 정확하게, 여기서 중요한 요소 는 시맨틱 스의 모듈성 또는 구성 성 이거나 다르게 말하면 프로그램의 추상 구조에 따라 정의된다는 사실입니다.

요즘 대부분의 공식 의미론이 구조적인 경향이 있기 때문에 이것이 필수 정의인가?

그래서, 내 질문은 : 의미 의미론이란 무엇입니까?


4
의미는 사전 게시 조건, 추상 기계의 작동, 수학적 실체, 게임 전략 등 여러 형태로 제공 될 수 있습니다. 모든 현대적인 접근법에서, 이러한 의미는 부품의 의미의 함수로서 제공된다.
Ohad Kammar

1
의 존재에 대한 문제는 영역 이론 연구를 시작했다. 그것은 접근 방식에서 비롯되었지만 정의하지는 않습니다 (예를 들어, 문제의 언어에는 기능 공간이 없을 수도 있습니다). 위에서 언급했듯이 모듈화에 관해서는 기본적으로 모든 의미론에 대한 모든 접근 방식은 적절한 의미에서 구성 성을 가지고 있습니다. [DD]D
Ohad Kammar

10
자, 도메인 이론이 시작되거나 동기를 부여 했다는 잘못된 의견을 퍼 뜨리지 마십시오. Dana Scott은 도메인 이론이 입력 된 -calculus에 적합한 수학적 이론이되기를 원 했습니다. 그것은 또한 형식화되지 않은 lambda-미적분학 모델을 제공 한 사실이 우연 이었다. 나도 알아요. [DD]=D λλλ
Andrej Bauer

2
수정 해 주셔서 감사합니다. 그의 뜻은 출판되지 않은 "ISWIM에 대한 유형 이론적 대안"에서 찾는 것을 포기 하고 -calculus 유형의 모델을 찾기 시작 했다. 이 과정에서 그는 위의 도메인 방정식에 대한 솔루션 를 발견했습니다 . 따라서 가 존재 하지 않는다는 문제는 긍정적 인 것으로 추정되었지만 (음의 것으로 판명 됨), 도메인 시작 도메인 이론으로 이어졌다. 나도 여기 잘못되고 있습니까? λ D [ D D ] D[DD]=DλD[DD]D
Ohad Kammar

1
그것이 도움이되는 것은 확실하지 않지만, "현재"의 의미 론적 의미 론적 작업이 "어떤 범주로의 언어 컴파일"입니다. 실제로 범주 구조를 고수하지 않고 잘 알려진 수학적 객체의 용어로 의미론을 작성할 수 있습니다. 내가 본 특정 예제의 공정한 특성.
gasche

답변:


30

내가 dentational과 운영 의미를 개인적으로 구별하는 것은 다음과 같습니다.

  • 변론 적 의미론은 수학적이고 방정식 적입니다. 축소에 대한 세부 사항은 최종 결과보다 중요하지 않으며 일부 수학 공간에서 영원한 가치입니다.
  • 연산 의미론은 알고리즘입니다. 개별 단계로 진행됩니다. 프로세스는 의미의 일부이며 최종 결과는 해당 프로세스에서 구별되는 단계 일뿐입니다.

그 차이는 때때로 매우 미묘 할 수 있으며, 그것이 스타일이나 물질의 차이인지 구별하기 어려울 수 있습니다.

그러나 Andrej의 컴포지션 정의가 denotational 정의에서 더 자연스럽게 따르는 방법을 볼 수 있으며 여전히 운영 정의를 충족시키는 비 합류, 비 구성 시맨틱을 쉽게 상상할 수 있습니다.


알고리즘 대 수학적 차이의 좋은 예는 비 종료 처리입니다. 루프의 표시는 아래쪽이지만 중지 문제로 인해 임의의 프로그램의 표시가 아래쪽인지 여부를 결정할 수 없습니다. 작은 단계 의미론에서 대신 축소 단계를 관찰 할 수 있지만 이론에는 "하단"값이 없습니다. 결정 불가능 성과 종결 불가는 복분해로 이동한다 : 결정 불가능한 것은 일련의 축소가 종료되는지의 여부이다. 마찬가지로, 큰 단계 의미론에서 도출이 있는지 여부를 결정할 수 없습니다.
Blaisorblade

23

Dana Scott의 말을 추측한다면, 그는 아마도 의미 론적 의미론이 구성 적이며 (내가 주장한 것과 같은) 프로그램 의 의미 는 일부 구문 론적이거나 형식 주의적 실체가 아니라 진정한 수학적 대상이어야 한다고 말할 것입니다 . 물론, 그러한 견해는 구문의 공식적인 조작과 "진정한"수학을 구별하기 위해 필요하다. 이것은 반드시 비 수학적 구분입니다.

나중에 생각할 수 있듯이, 관찰 적으로 다른 두 프로그램이 동일한 의미를 갖지 않는다는 의미에서 의미가 적절하기를 원할 것입니다. 물론 이런 종류의 적합성은 "관찰"으로 인정하는 것에 달려 있습니다.

이 관점에서, 구조적 동작 의미론은 구문 론적 엔티티의 의미가 다른 구문 론적 엔티티 (값 또는 축소 시퀀스)와 동일하므로 의미 론적 의미론이 아니라고 주장 할 수있다.


3
때때로, 나는 전이 시스템이 도메인이나 격자 또는 순서만큼 수학적이지 않다는 말을 듣는다. 나는이 견해를 당황스럽게 생각한다. 모두 ZFC 세트 이론으로 표현할 수 있습니다.
Martin Berger

1
주어진 시맨틱이 계산 현상을 얼마나 정확하게 모델링 할 수 있는지를 고려하는 것이 더 흥미로운 접근법이며, 실제로는 선택된 관측 개념에 결정적으로 의존합니다. 연산 의미론 (예 : 프로세스 이론)의 주요 장점 중 하나는 순서 이론적 의미론에 비해 자연 관찰 개념이 훨씬 쉽게 정의 할 수 있다는 것입니다.
Martin Berger

3
@ MARC : 운영 방법이 계산을 함수로 모델링하지 않는다는 것에 동의합니다. 그러나 왜 이것이 왜 이론적 인 접근 방식을 "수학적으로"만드는지 모르겠습니다. 미분 방정식과 같은 물리 영향 수학은 시간이 지남에 따라 특정 시스템의 평가를 모델링합니다. 입 / 출력 접근법 자체는 기초적인 시간적 구조를 사용합니다. 즉, 입력 전에 출력을 사용할 수 없습니다.
Martin Berger

2
@Martin : 수학자들은 종종 물리학 자들이하는 일은 실제 수학이 아니라고 불평합니다. ;-) 물리학은이 시점에서보다 편안하게 확립 된 과학 일뿐입니다. TCS는 여전히 블록의 새로운 아이입니다. 나는 TCS가 사람들을 다른 분야 (우리가 개인적으로 좋아하는 것에 상관없이)로 행복하게 만드는 것에 대해 걱정해서는 안된다고 생각한다. 우리는 물리학 자처럼 이동 중에도 모조를 가지고 있습니다.
Marc Hamann

2
@Marc : 임의의 가비지가 ZFC로 표현 될 수 있기 때문에 의존해야 할 기준이별로 없습니다. 프로그래밍 언어의 "함수"가 수학적 의미의 함수로 해석되는 의미론에는 적어도 두 가지 장점이 있습니다. 첫째, 사람들이 프로그래밍 언어에서 함수를 어떻게 생각하는지에 잘 맞습니다. 둘째, 함수는 친숙한 수학 객체이므로 사용할 수있는 많은 기계가 있습니다. 물론, 전이 시스템도 그 용도가 있습니다.
Andrej Bauer

19

나는 A. Bauer의 구성 적 의미 론적 의미 론적 의미론 ( 프로그래밍 언어 의미론에 관한 책에서 )이 전통적 의미 론적 의미론에 의해 의미했던 것을 실제로 잘 특성화하지 않는다는 것에 동의한다. .

나는이 용어가 특정 이론 전통 (Scott이 비 유형 람다 미적분의 격자-이론적 모델을 만들 때 본격적으로 시작된)을 특정 선호 도구 (순서 이론, 고정 점 이론)로 느슨하게 언급함으로써 사회-역사적으로 가장 잘 이해된다고 제안한다. , 토폴로지, 카테고리 이론) 및 선호하는 대상 언어 (순전히 기능적이고 순차). 순수한 지적 이익과는 별개로 의미 론적 의미론이 대부분 다음과 같은 이유로 발명되었다고 생각합니다.

  1. 운영 의미론에 대해 추론하기가 어려웠습니다.

  2. 예전에는 비공식적 의미론을 사용하기가 어려웠습니다.

나는 두 가지 문제가 실질적으로 어느 정도 개선되었다고 주장한다. (1) 예를 들어 프로세스 이론 (특정 형태의 연산 의미론으로 볼 수 있음)에서 오는 비시 밀화 기반 기술에 의해 등가성, (2) 예를 들어 유형 -calculi의 프로그래밍 언어 임베딩을 통해 형식화 된 버전의 Hennessy-Milner 논리로 파생 된 분리 논리 또는 Hoare 논리의 개발에 의한 것.π

요약하자면, 용어 "데 노테이션 적 의미론"이 덜 정확 해져서 덜 유용하다고 주장합니다. 시맨틱 커뮤니티가 더 나은 용어로 수렴하는 것이 도움이 될 수 있습니다.


1
내 최근 게시물을 요약하면, "철자 적 의미론"은 "이 표기법의 의미는 바로 그 것입니다"라고 말해야합니다. "작동"시맨틱 및 "축적"시맨틱은 이러한 종류의 시맨틱 정의가 아니다. 그것들을 그렇게 보이게하는 것은 오도합니다. 또한 "운영 방식"이라고하는 것은 프로그램에 대한 추론에 대한 접근 방식입니다. 작동 의미론이 아닙니다. 조작 적 접근 및 공리적 접근은 덴토 멘탈 시맨틱의 엔지니어링 응용을 대체 할 수 있습니다. 그러나 그들은 의미 상 의미론이되지 않습니다.
Uday Reddy

@Uday. 이것이 실제로 큰 차이인지 확실하지 않습니다. 예를 들어 -calculus 로의 작문 번역으로 언어 의 의미를 부여하면 각 프로그램에 프로세스를 할당합니다 . 해당 프로세스가 수행하는 것은 운영상으로 만 제공됩니다. 프로그램 논리를 사용하면 종종 프로그램의 전체 동작을 한 쌍의 공식으로 캡처하는 특성 공식 (계산 가능한 유도 구문 프로그램 구문)이 있습니다. 그것이 "이 표기법의 의미는 그렇지 않다"고 어떻게 말하지 않습니까? π LLπL
마틴 버거

1
@남자 이름. 컴포지션 방식으로 프로세스를 지정하는 것이 중요한 것은 아닙니다. 프로세스를 설정 이론과 같은 기본 이론으로 의미론을 요구해서는 안된다고 우리 모두에게 확신시킬 수 있습니다. 상태 저장 계산을 모델링하는 기초 언어가있을 수 있다는 견해에 동조합니다. 아마도 어떤 형태의 과정 미적분학은 언젠가 그러한 기초로 받아 들여질 것입니다. 그러나 나는 우리가 아직 거기에 있다고 생각하지 않습니다.
Uday Reddy

1
@MartinBerger 내가 유일하게 배웠지 만 지금은 좋은 참고 자료를 제공하는 데 어려움을 겪고 있습니다. 예를 들어, "마지막으로 태그가 없고 부분적으로 평가됨 "( citeseerx.ist.psu.edu/viewdoc/summary?doi=10.1.1.99.9287 )은 소개에서 "fold", "compositional"및 "primitive recursive"를 명확한 동의어로 사용합니다. (그러나 이것은 논문에서 많이 논의되지 않았으며 당연한 것으로 간주됩니다). Viceversa는 Wikipedia를 신뢰할 수있는 철학이라면 논쟁의 여지가있는 것으로 보입니다. en.wikipedia.org/wiki/Principle_of_compositionality#Critiques
Blaisorblade

1
@Blaisorblade 박사 학위를 받았을 때 나는 의미 론적 의미 론자들과 사귀 었습니다. 왜냐하면 나는 의미 론적 의미론을 연구해야했기 때문입니다. 나는 그들이 그들에게 추상적 인 정의를 줄 수 있다면, denotational semantics가 무엇인지 항상 물었다. 그러나 "denotational semantics는 수학적 의미론"과 같은 회피 적이거나 모호한 답변만을 얻었다. A. 바우어의 설명도 참조하라. 나는 그 개념이 잘 정의되어 있지 않다고 생각합니다. 또한 원시 재귀의 힘이 사용 가능한 다른 것에 달려 있기 때문에 예를 들어 원시 재귀를 요구하는 것이 충분히 제한되는 이유를 알지 못합니다. (계속)
Martin Berger

16

Adrej의 답변에 만족하지만 더 자세히 설명하고 싶습니다.

우선, 의미 론적 의미론 은 "이 표기법의 의미는 다음과 같습니다"와 같은 말을 원합니다. 진정한 의미론자는 의미가 우리의 마음에 존재하고 표기법이 그 의미를 표현하는 방법이라고 상상하고 싶을 것입니다. dentational semantics가 구성되어야한다는 요구 사항은 이것으로부터 구성됩니다. 의미가 1 차이고 2 차가 표기 인 경우, 더 큰 표기의 의미를 구성 요소의 의미의 함수로 정의 할 수밖에 없습니다.

이 관점을 받아들이면 좋은 의미 론적 의미론은 우리가 생각하고있는 의미를 포착해야합니다. 구성 의미론이 반드시 법안에 맞지는 않을 것입니다. 내가 구성 적 의미 론적 정의를 생각해 냈는데 아무도 그것이 머리 속에 어떤 의미가 있는지에 동의하지 않는다면, 그것은 거의 쓸모가 없습니다. 현재 게임 시맨틱이이 상황에 있습니다. 그것은 구성 적 정의이고 기술적으로는 매우 강력하지만, 자신의 마음에있는 의미와 관련이 있다는 데 동의하는 사람은 거의 없습니다.

즉, 모든 구성 정의 에는 다양한 기술적 이점이 있습니다. 이를 사용하여 용어 구문을 유도하여 동등성 또는 기타 속성을 확인할 수 있습니다. 이를 사용하여 용어 구문을 유도하여 증명 시스템의 건전성을 검증 할 수 있습니다. 컴파일러 또는 프로그램 분석 기술의 정확성을 검증 할 수 있습니다 (본질적으로 구문에 대한 유도로 정의 됨). 완전히 추상적 인 의미 정의는 훨씬 더 기술적 인 장점이 있습니다. 두 프로그램이 동일하지 않다는 것을 보여주기 위해 사용할 수 있습니다임의의 구성 의미론으로는 수행 할 수 없습니다. 완전히 정의 가능한 의미 정의가 더 좋습니다. 여기 시맨틱 도메인에는 프로그래밍 언어로 표현할 수있는 내용이 있습니다 (일부 제공). 따라서 도메인의 값을 열거하여 어떤 값이 있는지 확인하여 구문 표기법으로 처리하기 어려울 수 있습니다. 이 모든 근거에서 게임 시맨틱은 훌륭하게 점수를 매 깁니다.

그러나 구성 의미 론적 정의는 수년에 걸쳐 우위를 잃어 왔습니다. 로빈 밀너 (Robin Milner)와 앤디 피트 스 (Andy Pitts)는 구문에 대해 순전히 작동하지만 동작에 대해 이야기 할 필요가있을 때마다 동작 의미론을 사용 하는 여러 가지 " 작업 추론 "기술 을 개발했습니다 . 이러한 운영 추론 기법은 기술이 부족합니다. 멋진 수학이 없습니다. 무한한 개체가 없습니다. 우리는 학부생들에게 가르 칠 수 있으며 누구나 사용할 수 있습니다. 그래서 많은 사람들이 왜 우리에게 왜 의미 론적 의미론이 필요한지 묻습니다. (마틴 버거가이 캠프에있을 것입니다.)

개인적으로 도구 상자에 많은 도구가있는 데 아무런 문제가 없습니다. Denotational 기술은 일부 문제와 다른 운영 기술에 대해서는 점수가 더 높을 수 있습니다. 이론을 개발하는 연구자들은 하나의 접근법 또는 다른 접근법에 더 잘 맞춰질 수 있습니다. 종종 한 가지 접근 방식으로 통찰력을 개발하고 이러한 통찰력을 다른 접근 방식으로 전송할 수 있습니다. (Andy Pitts의 많은 작품은 이런 종류의 작품입니다. 관계형 파라 메트릭은 획기적인 환경에서 개발되었지만 그는 그것을 운영 적 추론으로 다시 진술하는 방법을 알아낼 수는 있습니다. 분리 논리도 이런 식으로 진행되고 있습니다. Steve Brookes는 동시 의미 분리 논리를 사용하여 입체 의미론을 사용하여 60 페이지의 방음 성능을 제공했습니다.

프로그래밍 언어가 매우 고급 스러우면 모든 종류의 루프 고차 유형으로 운영 접근 방식이 훌륭하게 점수를 매 깁니다. 우리는 그러한 것들을 수학적으로 모델링하는 방법을 모른다. 또는 표준 수학적 모델이 반복성의 스트레스 하에서 일관성이없는 것으로 판명 될 수 있습니다. 예를 들어, Reynolds의 "다형성은 이론적으로 설정되지 않습니다"를 참조하십시오. 구문에 순전히 작동하는 운영 방식은 이러한 모든 수학 문제를 깔끔하게 회피 할 수 있습니다.

운영 접근 방식과 폐기 접근 방식의 중간에있는 또 다른 접근 방식은 실현 가능성 입니다. 우리는 운영 접근 방식에서와 같이 구문 용어로 작업하는 대신 다른 형태의 수학적 표현을 사용하여 부분적으로 비판적입니다. 이 대표자들은 실제의 의미 "의도"로 인정되지는 않지만 적어도 구문 용어보다 다소 추상적 일 것입니다. 예를 들어, 다형성 람다 미적분학의 경우, 먼저 유형이 지정되지 않은 용어 (일부 유형이 지정되지 않은 람다 미적분학 모델)에 의미를 부여한 다음이를 대표자로 사용하여 ( '실현 자') 약간의 '작업 추론'을 수행 할 수 있습니다. 더 추상적 인 수준.

따라서 denotational, operating 및 realizability 접근 방식 사이에 건전한 경쟁이 이루어 지도록하십시오. 해가 없습니다.

반면에, 서로 다른 접근 방식 간에는 "건강에 해로운"경쟁이 발생할 수 있습니다. 한 가지 접근 방식으로 작업하는 사람들은 다른 접근 방식의 요점을 보지 못할 정도로 너무 밀접하게 연결될 수 있습니다. 이상적으로 우리는 서로 다른 접근 방식의 강점과 약점을 알고 각자 선호하지 않더라도 이에 대한 과학적 태도를 발전시켜야합니다.


이 문제를 해결하기위한 한 가지 건설적인 접근 방식은 서로 다른 접근 방식 간의 번역을 찾는 것입니다.
Martin Berger

1
도구 상자의 도구로서 기존의 의미 론적 의미론에는 문제가 없습니다. 나는 그들이 문제가 있고 일관된 타당성이 부족한 것이 더 낫다는 암시 적 또는 명시 적 제안을 발견합니다.
Martin Berger

Peter O'Hearn과 Bob Tennent가 편집 한 "Algollike Languages"( eecs.qmul.ac.uk/~ohearn/Algol/algol.html ) 볼륨을 모범 사례의 모델로 작성했습니다. 여기에는 "기존의 의미 론적 의미론"(Strachey, Reynolds, Tennent, Meyer 등)과 "기존 적"의 의미 론적 의미 (mine, Abramsky & McCusker, Brookes) 및 운영 접근법 (Andy Pitts, Felleisen)에 대한 논문이 포함됩니다. 부수적으로, 두 권의 레이놀즈 논문 (지시 논리와 간섭의 구문 제어)은 기록 될 때 "축적"이었다!
Uday Reddy

1
건전한 경쟁에 관한 한 가지 중요한 문제는 접근 방식, 형식주의, 연구자 및 논문이 너무 많아 개발을 따라 가기가 어렵다는 것입니다. 기존의 접근 방식을 종합하고 통합하기 위해 지속적인 노력을 기울이는 연구 커뮤니티로서 우리의 가치가 있습니다.
Martin Berger

2
내가 아는 출발점 인 @MartinBerger는 Patrick Cousot의 논문 "시맨틱 계층 구조의 구성 적 디자인"이다. 이것은 전이 시스템, 공리적 시맨틱, denotational 모델을 포함한 매우 광범위한 시맨틱 모델이 부가 기능을 사용하여 관련 될 수 있음을 보여준다. 따라서 다른 추상화로 볼 수 있습니다.
Vijay D

12

[하나 더 답변. 여러 답변을 쌓아 두는 것이 좋지 않을 것입니다. 하지만 이건 큰 문제입니다.]

나는 Andrej의 대답에 동의한다고 말했지만 완전히 동의하지 않는 것 같습니다. 차이가 있습니다.

나는 의미 론적 의미론이 "이 표기법의 의미는 그 것"이라고 말해야한다고 말했다. 내가 의미하는 것은 표기법에 의미가 할당되어야한다는 의미이며, 이는 다른 표기법이 아닌 개념 엔티티의 형태입니다 . 반대로, Andrej는 Scott을 해석하면서 그 의미가 "수학적"대상이어야한다고 요구했습니다. 나는 수학적 비트가 필요하다고 생각하지 않습니다.

예를 들어, 내 관점에서 볼 때, 표기법의 의미는 물리적 프로세스라는 것이 완벽합니다. 모든 컴퓨터 프로그램이 자동차의 브레이크를 밟은 후에는 비행기를 타고 폭탄을 떨어 뜨리십시오. 이것은 물리적 인 과정이며 일부 수학적 공간의 요소가 아닙니다. 폭탄을 떨어 뜨릴 수없고 누군가를 죽이는 지 확인하고 그렇지 않으면 다시 가져갈 수 없습니다. 컴퓨터 프로그램은 그렇게 할 수 없습니다. 그러나 수학 함수는 가능합니다. (이를 "스냅 백"작업이라고합니다.) 따라서 수학 함수가 컴퓨터 프로그램에 좋은 의미를 갖는 것은 분명하지 않습니다.

반면에, 우리는 물리적 프로세스에 대해 추상적으로 이야기하는 방법을 아직 모른다. 따라서 아이디어를 표현하기 위해 프로세스에 대한 수학적 설명을 사용할 수도 있습니다. 그러나 이러한 수학적 설명은 "설명"일뿐입니다. 그것들은 의미가 아닙니다. 진정한 의미는 우리가 개념적으로 상상하는 물리적 프로세스 일뿐입니다.

Hoare 씨는 SIGPLAN 어워드에 대한 수용 연설 (언젠가 YouTube에있을 예정 임)에서 ACP는 "대수적 접근"을, CSP는 "폐기 적 접근"을, CCS는 프로세스를 설명하기 위해 "운영 접근"을 사용했다고 밝혔다. 오 하드와 나는 회의에 함께 앉아 있었고, 우리는 서로를보고 "정말 재미있다"고 말했다. 따라서 여기에는 많은 개념적 공간이 있습니다. 근래의 시스템과 정보 시스템 등에 관한 많은 Scott의 연구는 실제로 기능을 어떤 형태의 "프로세스"로 설명하려는 노력이라고 생각합니다. 지라드의 인터랙션 지오메트리와 이후 게임 시맨틱은 기능을 프로세스로 설명하려는 노력입니다. 저는 컴퓨터 과학이 21 세기 수학에 크게 기여할 수있는 확실한 프로세스 이론을 개발하는 것이 될 수 있다고 말합니다. 나는 수학이 모든 해답을 가지고 있다는 믿음을 받아들이지 않을 것이며 우리는 그것을 계산하기 위해 계산 현상을 수학 개념으로 줄여야한다.

놀랍게도 정보 숨기기가 상태 계산 (비정형 프로그래밍 및 프로세스 계산)에서 얼마나 아름답게 작동하는지, 수학 / 기능 형식에서는 어색하고 복잡합니다. 그렇습니다. 우리는 관계형 파라 메트릭을 가지고 있으며, 수학적 형식주의의 한계를 아주 잘 극복 할 수 있습니다. 그러나 명령형 프로그래밍의 단순성과 우아함과 일치하지는 않습니다. 따라서 저는 수학적 형식주의가 정답이라고 생각하지는 않지만, 현재는 그것이 최선의 대답이라는 것을 인정할 것입니다. 그러나 우리는 계속 지켜봐야합니다. 전통적인 수학을 능가하는 훌륭한 프로세스 이론이 있습니다.


10

[이 질문에 대한 마지막 답변입니다.]

Ohad의 원래 질문은 denotational 의미론이 구조적 운영 의미론과 어떻게 다른지에 관한 것이 었습니다. 그는 둘 다 구성 적이라고 생각했다. 사실, 그것은 사실이 아닙니다. 구조적 작동 의미론은 일련 의 단계 로 제공됩니다 . 각 단계는 구성 적으로 표현되며 (Plotkin에서는 이것이 가능하다는 사실을 발견 할 수 있습니다!) 전체 동작은 구성 적으로 정의되지 않습니다. 다음은 SOS 기사 에 대한 Plotkin의 소개입니다 [강조 추가].

명칭 의미론에서 합성 구문의 의미는 부분 의미의 함수로 제공되는 구성의 이상을 따릅니다. 연산 의미론의 경우 프로그램 문구의 동작을 고려합니다. 이는 프로그램 전환의 모음 일뿐입니다. 그러나이 동작은 프로그램 문구의 함수로 생각할 때 구성 적이 지 않습니다 . 그러나 규칙은 구문에서 구조적으로, 즉 기본적으로 재귀 적으로 제공합니다.

각 단계가 구성 적으로 표현된다고해서 전체 행동이 구성 적으로 표현되는 것은 아닙니다.

Carl Gunter 의 시맨틱 스펙 (Forms of Semantic Specification) 이라는 멋진 기사가 있는데 , 여기서 시맨틱 을 지정하는 여러 가지 방법을 비교하고 대조합니다. 이 자료의 많은 부분은 그의 "프로그래밍 언어의 의미"텍스트의 첫 장에서 재현되었습니다. 희망적으로 그림을 분명히해야합니다.

"작동 의미론"에 대한 또 다른 단어. 초기에는 "운영"이라는 용어가 자세한 평가 단계를 의미하는 의미 론적 정의를 나타내는 데 사용되었습니다. 의의 론적 의미 론자 및 공리적 제안자들은 "운영 적"의미론을 저수준 및 기계 지향적 인 것으로 간주했다. 나는 이것이 더 높은 수준의 설명이 가능하다는 그들의 믿음에 기초한 것이라고 생각한다. 이러한 신념은 동시성을 고려하자마자 산산이 부서졌습니다. Bakker와 Zucker의 프로세스와 동시성 에 대한 부정적 의미론 에는 다음과 같은 흥미로운 구절이 있습니다.

우리는 명칭 의미론 의 방법론을 사용합니다 . 여기서 "표현"은 "운영"과 대조되어야한다. 전자의 접근법의 핵심 아이디어는 프로그래밍 언어의 표현이 적절한 구조를 갖춘 수학적 영역의 값을 나타내지 만, 후자의 경우 언어 구성에 의해 규정 된 연산은 적절한 추상 기계에 의해 수행되는 단계에 의해 모델링 ....

수학적 모델은 스타일은 상식적이지만 정신적 으로 작동 하는 다양한 개념을 포함 한다 [강조 추가]. 여기에는 프로세스 자체 개념의 "역사"기능과 동기화 및 재귀를 처리하는 소위 무음 이동 사용이 포함됩니다.

여기서 우리는 "조작"이라는 두 가지 개념, 즉 구문 개념 조작을 사용하여 표현 된 행동과 저수준이면서도 세부적인 개념 개념이라는 두 가지 개념으로 어려움을 겪고있는 저자들을 봅니다. 크레딧은 Plotkin과 Milner에게 "운영 적"시맨틱 스를 재건하여 가능한 한 높은 수준으로 만들고 우아하고 통찰력이 있음을 보여준 것에 크게 기여합니다.

이 모든 과정에도 불구하고, 프로세스의 운영 개념은 여전히 ​​프로세스의 개념적 개념과는 상당히 다르며, 후자는 드 바커와 호 아레 및 그들의 팀에 의해 개발되었습니다. 그리고 나는 아직도 이해해야 할 의학적 프로세스 개념에 대해 신비 롭고 아름다운 것이 많이 있다고 생각합니다.


채팅 요청에 응답하지 않아서 죄송합니다. 나는 다음 2 주 동안 매우 바쁩니다. 이것을 작성해 주셔서 감사합니다! 내가 이해하는 페이지의 첫 번째 기술 답변입니다.
Vijay D

저는이 기회를 이용하여 이러한 모든 종류의 문제를 해결하기위한 이론적 컴퓨터 과학 미들랜드 대학원에 플러그를 꽂을 수 있습니다. 전 세계 어디서나 모든 박사 과정 학생들이 참석할 수 있습니다.
Uday Reddy

9

이 추가 응답은 dendentional 의미 체계 모델이 계산 현상을 "설명"하도록 설계되었다는 점을 증폭시키는 것입니다. 명령형 프로그래밍 언어 ( "알골 유사"언어라고도 함)의 의미론에서 일련의 예제를 제공합니다.

먼저 Scott과 Strachey에 의해 공식화 된 의미 론적 모델이있었습니다. 고든 (Gordon) : 프로그래밍 언어에 대한 설명 (내가 가장 좋아하는 책 또는 Winskel의 책).이 모델은 프로그램에 의해 할당 된 모든 위치 의 상태로 구성된 전역 상태 가 있다고 가정합니다 . 모든 명령은 전역 상태에서 전역 상태에 이르는 일종의 함수로 해석됩니다.

레이놀즈는 지역 변수 의 스택 분야 를 모델링하지 않았다고 말했다 . 로컬 범위가 입력되면 변수가 할당되고 범위가 종료 될 때 변수가 할당 해제됩니다. 기본적으로 이것은 어떤 의미에서 지역 변수가 지역적입니까?라는 질문입니다. 시맨틱은 지역을 어떻게 포착합니까? 이를 설명하기 위해 functor-category 모델을 발명했습니다. (레이놀즈 교수 : 알골과 테넌트의 정수 : 프로그래밍 언어의 의미론).

Tennent는 Reynolds의 Specification Logic (고차 절차를위한 Hoare Logic의 확장) 에서 공식화 된 추론 원칙을 모델링하고자했습니다 . 논리에는 식과 유사한 (읽기 전용) 계산, 명령과 같은 계산 및 식과 같은 계산 간의 비 간섭, 일부 데이터 추상화 추론 원칙과 같은 아이디어가 있습니다. 그는 레이놀즈의 functor-category 모델을 수정하여 새로운 모델을 찾았습니다. 이를 테넌트의 책에서도 다루는 "SASL"모델이라고합니다.

Meyer와 Sieber, 그리고 O'Hearn과 Tennent는 이러한 모델 중 어느 것도 여전히 지역 변수 의 지역성 을 완전히 포착하지 못했다고 언급했다 . 추상 데이터 유형 또는 클래스의 두 가지 구현이 로컬 변수가 다르지만 외부에서 볼 때 동일한 동작을 갖는 방식으로 조작하는 경우 관찰 적으로 동일합니다. 표기 의미론은 그것들을 동일시해야한다. 이를 모델링하기 위해 O'Hearn과 Tennent는 Reynolds의 functor-category 모델의 변형에 관계형 파라 메트릭을 추가했습니다.

동시에 문제를 보았을 때 functor-category 접근법을 믿지 않았습니다. 나는 또한 그것이 지나치게 기술적 인 것이라고 생각하고 더 간단한 모델이 있어야한다고 믿었습니다. 이로 인해 CSP 추적 모델과 비슷하지만 더 높은 수준의 언어를위한 "글로벌 상태로 간주되는 불필요한"모델을 발명하게되었습니다. 추가로이 모델 은 이전 모델에는 없었던 상태 변화 의 비가역성 을 포착했습니다 .

내 모델은 Syntactic Control of Interference 라는 잘 작동하는 Algol의 하위 언어에서만 작동했습니다 . Abramsky와 McCusker는 게임 시맨틱 아이디어를 사용하여 내 모델을 확장하여 전체 Algol에서 작동 할 수있게했습니다. 그래서 그들의 모델은 내 것과 같은 현상을 설명하지만 더 큰 언어를 나타냅니다.

각각의 경우에, 우리는 새로운 모델이 이전 모델에 의해 검증되지 않은 언급 된 계산 현상을 나타내는 관찰 등가물 (또는 다른 형태의 논리 공식)을 포착한다는 것을 증명할 수 있습니다. 따라서 이러한 모델이 계산 현상을 "설명"하는 매우 정확한 의미가 있습니다.

[여기서 언급 한 모든 작업은 "Algol-like Languages"책에서 찾을 수 있습니다 : 링크링크 ]

당사 사이트를 사용함과 동시에 당사의 쿠키 정책개인정보 보호정책을 읽고 이해하였음을 인정하는 것으로 간주합니다.
Licensed under cc by-sa 3.0 with attribution required.