축소 전략과 평가 전략의 차이점은 무엇입니까?


10

Wikipedia 의 평가 전략 기사에서 :

람다 미적분학에서 감소 전략의 개념은 비슷하지만 구별됩니다.

Wikipedia 의 축소 전략 기사에서 :

그것은 컴퓨터 과학의 평가 전략의 개념과 유사하지만 미묘하게 다릅니다.

이 두 기사에서 암시하는 평가 전략과 축소 전략의 미묘한 차이점은 무엇입니까? 서로 다른 도메인의 두 가지 유사한 개념입니까?


3
평가는 닫힌 용어에 대해서만 정의되며 바인더에는 적용되지 않습니다. 감소는 결합제 아래로가는 것이 허용되며 공개 용어에 대해 정의됩니다.
Neel Krishnaswami

답변:


8

축소 전략은 Lambda에서 redex로 정의한 내용에 따라 가능한 모든 redexe에서 하나의 redex (reducible expression)를 선택하는 함수입니다.

비공식적으로 평가 전략은 언어가 인수를 평가하는 순서입니다. 매개 변수 전달 전략은 언어가 함수에 전달하는 것입니다.

이러한 관계를 이해하려면 이름 별, 값별 및 람다 미적분에 관한 Plotkin의 논문을 연구하십시오. 그는 원하는 평가 순서에 따라 별개의 AXIOMS를 선택하고 싶다고 분명히 말합니다. Cb-name의 경우 기존 베타 공리를 원하고 cb-value의 경우 베타 값 공리를 원합니다. 그렇게하면 모든 메타 정리가 두 가지 맛에 대해 동일하게 작동합니다. 나중에 (많은 공동 작업자와 함께)이 아이디어가 PL의 세계가 연구 한 모든 것을 일반화한다는 것을 보여주었습니다.

해석 할 수있는 시가 아니라 모두 기술적 인 것입니다. 그냥 읽어보세요.

-마티아스 펠리 센

추신 : 나는 사람들이 Redex 책에서 Part I의 Plotkin의 논문을 이해하는 데 더 쉬울 것이라고 생각합니다. 그러나 3 배입니다.



다시 말하면, 축소 전략이 용어의 성공을 완전히 결정한다고 말하는 것이 옳고, 평가 전략은 적용된 추상화가 어떻게 축소되는지 (예 : 합동성에 대해서는 언급하지 않음) 만 지정한다고 말하는 것이 맞습니까?
귀도

6

"감소 전략"위키피디아 기사는 익명의 IP에 의해 "평가 전략"기사 에 대한 특정 편집에서 완전히 추출됩니다 .

"환원 전략"과 "평가 전략"이라는 이름을 구별하겠습니까? "라고 묻는다면 해당 분야의 사람들이 자발적으로이 대답을 줄 것이라고 생각한다는 점에서 그것이 의미하는 견해는 일치하지 않습니다. 나는 Matthias Felleisen의 말을 들었습니다.이 차이점의 중요성에 대해 단호합니다.이 관점은 그 점에 대해 자세히 논의 할 시간이있는 다른 사람들과 공유한다고 가정합니다.

이 시점에 대한 나의 현재의 이해 (그러나 나는 아직 완전한 정의에 대한 기술적 세부 사항을 연구하지 않았다)는 다음에 관한 것입니다. 이것은 "큰 단계"대 "작은 단계"의미를 사용하는지에 관한 것입니다.이 구별은 표준이며 이해됩니다. 현장의 모든 사람에 의해. 작은 단계 의미론은 하나의 원자 감소 단계를 정의하며 결과는 일반적으로 여전히 환원 가능합니다. 큰 단계 의미론은 시작 프로그램에서 그 값 (또는 사용자의 언어가 값을 반환하는 것 이외의 다른 관찰 가능한 효과가있는 경우 (예 : 입력 / 출력 또는 가변 상태).

큰 단계와 작은 단계 관계를 모두 정의하면 큰 단계 시맨틱이 작은 단계 관계의 전이 폐쇄에 포함되어 있고 작은 단계 관계가 큰 단계 관계에 의해 도달 된 것, 또는 큰 단계 축소가 정의 된 경우 분기됩니다. 이것은 둘 사이의 예상 일관성 관계입니다.

나는 "평가 전략은 큰 단계의 관계", "감소 전략은 작은 단계의 관계"로 현대 용어 로이 기사의 문구가 다소 설명 될 수 있다고 생각한다 . "감소 전략"기사에서 논의한 내용은 1973 년에서 1991 년 사이에 이러한 개념이 막 시작된 ​​당시의 기사와 연구 (그리고 더 중요한 것은 읽기와 쓰기 과정에서 웅변적인 관점)에 관한 것입니다. 아마도 오늘날만큼 잘 이해되지 않았을 것입니다. (1987 년 칸은 큰 단계 의미론을 강조했으며, 작은 단계 의미론에서 가장 중요한 작업 중 하나는 1992 년 Wright and Felleisen입니다.)

Felleisen이이 차이의 중요성을 주장하는 이유 (즉, "작은 단계 대 큰 단계, meh"보다 더 많은 이유가있는 이유)에 대한 더 많은 의견을 제시하기 위해 현재 나의 이해는 다음과 같습니다. 요점은 작은 단계 의미론이 구현 세부 사항으로 보여 져야한다는 것입니다. 그만큼이 주장에 따른 의미론은 각 프로그램을 그 가치 / 응답에 매핑하는 추상 함수이며, 나머지는 프로그램을 근사화하기 위해 설계된 구현 장치 (또는이 의미론에 의해 유발 된 동등성에 대한 이유)입니다. 오늘 우리가 큰 발걸음을 내딛을 때, 우리는 구문 적 본성의 추론 규칙 시스템을 생각하지만, 위에서 논의 된 "감소 전략"은 실제로 그 매핑으로서의 추상화입니다. (실제로 이것이 표현에 더 많은 표현력이나 힘을 줄 것이라고 생각하지 않지만 더 추상적입니다.)

따라서이 위키 백과 페이지와 Matthias Felleisen의 말은 다음과 같습니다. "평가를 원하는 방식으로 정의하십시오. 그러나 중요한 것은 프로그램이 해당 값에 어떻게 매핑되는지입니다. 답변 / 동작, 그리고 이것이 바로 '동작 시맨틱 스'라고 불리우는 이유입니다. "

이 입장은 "운영 적 의미론"과 "식별 적 의미론"사이의 현재의 구별 (내가 다소 합의 적이지만 문화적으로 편견이있을 수 있음)과 다소 상반되며, 여기서 전자는 본질적으로보다 구문론적인 것으로 여겨진다. (환원 관계로 정의) 후자는 일반적으로 계산적으로 동등한 프로그램이 정확히 동일한 표시를 가지고 있다는 사실에 의해 특징 지워진다 (따라서, 표시는 실제 계산 메커니즘에 대해 명백하지 않다). 이 후자의 관점에서, 기사에서 "평가 전략"또는 "운영 의미론"으로 제안 된 것은 위의 설명은 오히려 의미 론적 의미로 여겨 질 것이지만, 대부분의 것보다 더 구체적인 특성 인 것입니다 : 가치 / 답변 / 행동은 많은 의미 영역보다 구문 객체에 더 가깝습니다.

참고 문헌 : 이 관점을 이해하려면, 1973 년 고든 플롯 킨 (Gordon Plotkin)의 기사 인 선포 된 출처로 돌아가는 것이 도움이 될 것입니다. 예를 들어 1991 년 Crank and Felleisen의 "Parameter-Passing and Lambda Calculus"는 처음 몇 페이지에서이 문제에 대한 그들의 입장에 대한 명확한 개요를 보여 주었다.

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