왜으로 구분된 지속 프리미티브는"shift"및"reset"?
-
13-11-2019 - |
문제
나는 생각을 이해(일반적)무엇인 shift
고 reset
의미합니다.그러나 내가 이해하지 못하는 이유 그의 이름은 그래서?무엇 shift
고 reset
으로 구분 지속 프리미티브가"shift"및"reset"단어에서 영어를 배울 수 있습니다.
해결책
그들은 구현되는 방식 때문에 (일반적으로)이기 때문에 호출됩니다. 시프트 및 재설정의 직접 구현 Mincaml 컴파일러
을 사용하여 프로그램을 해석하여 계속되는 의미, 우리는 간주 할 수 있습니다 프로그램의 상태 계속 스택. 그런 다음
reset
가 될 수 있습니다 지속적인 표시로 생각해 스택 및shift
캡처 계속 스택이 가장 가까운 스택reset
가 생성 한 표시. 여기에 있습니다 구현 개요 :
reset
를 호출 할 때 재설정 마크 을 스택 로 설정하십시오.shift
(fun k -> M)
, 이동 의 일부를 스택 프레임의 일부를 호출 할 때 가장 가까운 리셋 마크 힙- 연속
k
를 호출 할 때 재설정 마크 을 스택으로 설정하고 힙에서 해당 프레임 스택 탑.
k
가있는 경우 리셋 마크가 삽입됩니다. 캡처 된 연속이기 때문에 호출되었습니다 빈 연속으로 실행됩니다.
다른 팁
Danvy & Filinski는 그들이 계속되는 지나가는 스타일의 모델을 노출시키는 첫 번째 종이 ( 참조)), 그리고 그것은 스칼라가 구현하는 것입니다.
스칼라의 구현은 이 다른 용지 에서 설명합니다.Danvy & Filinski에 대한 참조가 명확합니다 :
본 논문에서는 통제 운영자 가이 언어 프레임 워크로 재설정하여 정전기 구분 연속을 구현하는이 언어 프레임 워크로 재설정을 연구합니다 (Danvy and Filinski 1990, 1992)