필자는 인터프리터 개발에 비교적 익숙하지 않아 바퀴를 다시 만들기 전에 몇 가지 기본 개념을 알고 싶었 기 때문에이 질문을 던지고 있습니다.인터프리터는 범위를 어떻게 전환합니까?
배열에 저장되어있는 모든 변수의 값을 생각하면 현재 범위가됩니다. 배열을 스왑하고 원래 배열을 어떤 종류의 스택에 넣으면 함수가 입력됩니다. 함수를 떠날 때 "범위 스택"의 맨 위 요소가 팝되어 다시 사용됩니다.
- 이것은 기본적으로 맞습니까?
- 많은 양의 데이터 이동을 의미하는 어레이를 스와핑하지 않고 속도가 느려지거나 최신 인터프리터에서 사용되지 않습니까?
많은 양의 데이터 이동이 필요하지 않습니다. 스택에는 배열 전체에 대한 참조 (포인터) 만 포함될 수 있습니다. –