MARKER — 사전 경계 표시

MARKER — 사전 경계 표시

MARKER는 사전(dictionary)의 경계를 표시하는 정의 name을 만들어, 실행 시점에 그 시점 이후의 모든 정의를 제거할 수 있게 하는 코어 확장 단어예요.

출처: MARKER — Forth 2012 Standard

본문

스택 효과

( "<spaces>name" -- )

설명

선행 공백 구분자를 건너뛰고 공백으로 구분된 name을 파싱해요. 아래 정의된 실행 의미를 가진 name의 정의를 만들어요.

name 실행 (name Execution)

( -- )

모든 사전 할당과 검색 순서 포인터를 name의 정의 직전 상태로 복원해요. name의 정의와 이후의 모든 정의를 제거해요. 삭제된 정의나 할당 해제된 데이터 공간을 참조할 수 있는 기존 구조의 복원은 반드시 제공되는 것은 아니에요. 수치 기수 같은 다른 문맥 정보는 영향을 받지 않아요.

참조 (See)

  • 3.4.1 Parsing(파싱)
  • 15.6.2.1580 FORGET
  • A.6.2.1850 MARKER

합리성 (Rationale)

사전 구현이 더 정교해지고 어떤 경우에는 여러 주소 공간을 사용하게 되면서, FORGET는 많은 Forth 시스템에서 구현하기 지나치게 어렵거나 불가능해졌어요. MARKER는 사전이 미래의 어떤 시점에 재배열되어야 할 수 있는 위치를 구체적으로 표시하는 "랜드마크 정보"를 시스템이 미리 기억할 수 있게 함으로써 그 문제를 크게 완화해요.

더 알아보기 (Learn more)

출처: MARKER — Forth 2012 Standard