2011-02-24 2 views
2

Scheme에 관해서이 문장을 읽었습니다.스키마의 "스택". 특수하게 만드는 것은 무엇입니까?

"활성화 스택에 해당하는 Scheme은 부분적으로 연속 된 체인 (일시 중지 레코드)입니다."

저는 이것이 실제로 의미하는 바에 대해 약간 혼란 스럽습니다. C의 스택과 다른 점은 무엇입니까?

답변

0

C에서 스택은 중단했을 때의 위치를 ​​알려주는 일련의 메모리 포인터 일뿐입니다.

Scheme에서 모든 것이 목록이므로 실제로 목록을 이동하는 것입니다. 프로그램을 스택처럼 볼 수 있습니다.

0

기본 차이점은 Scheme (다른 것들 중에서)에서 스택의 현재 상태는 첫 번째 클래스 객체가 될 수 있다는 것입니다. 전체 스택 상태를 보유하는 변수를 만들 수 있습니다 (예를 들어). 그런 다음 해당 연속을 사용하여 동일한 시작 상태에서 다른 함수를 호출하거나 일반 목록처럼 "스택"의 (Scheme보기)를 볼 수 있습니다.

4

Scheme은 call-with-current-continuation 구조를 지원합니다 (R5RS에서 이에 대해 읽음). 구문을 사용하여 이전 연속으로 돌아갈 수 있습니다. 이것은 활성화 레코드가 더 이상 스택을 형성하지 않음을 의미합니다. 대신 활성화 레코드는 트리를 형성합니다 (스택은 특수한 형태의 트리입니다). 계속성에 대한 느낌을 얻으려면 추천 할 수 있습니다

Daniel P. Friedman. "Continuations의 응용 : 초대 된 자습서". 1988 프로그래밍 언어 원칙 (POPL88). http://library.readscheme.org/page6.html

: 당신이 연속 요청에 푹 얻을 경우 1월 1988 http://www.cs.indiana.edu/hyplan/dfried/appcont.pdf

, 당신은 여기에 흥미로운 논문을 많이 찾을 수 있습니다

관련 문제