LC·Dict

statically scoped은(는) lexically scopedtense_variation이기도 합니다.

Statically scoped

숙어C2formal
US/ˈstæt̬ɪkli skoʊpt/UK/ˈstætɪkli skəʊpt/

프로그래밍에서 변수의 유효 범위가 코드의 작성 위치에 따라 미리 결정되는

phrase

  1. 1

    프로그래밍에서 변수, 함수 이름, 식별자 등의 참조 대상이 실행 시 호출 순서가 아니라 프로그램의 코드 구조와 선언 위치에 의해 결정되는C2

    In programming, having the binding or visibility of a name determined by the structure of the program text rather than by the runtime call sequence.

    • Most modern languages, including JavaScript, Python, and Java, are statically scoped.

      JavaScript, Python, Java를 포함한 대부분의 현대 언어는 정적 스코프를 따른다.

    • In a statically scoped language, the variable x refers to the nearest enclosing declaration in the source code.

      정적 스코프 언어에서는 변수 x가 소스 코드상 가장 가까운 바깥쪽 선언을 가리킨다.

뉘앙스 · 쓰임

“Statically scoped”는 “lexically scoped”와 거의 같은 뜻으로 쓰이지만, “lexically scoped”는 소스 코드의 텍스트상 위치를 더 강조한다. 반대말인 “dynamically scoped”는 실행 중 호출 관계에 따라 변수의 의미가 달라질 수 있음을 나타낸다. 일반 영어의 관용구라기보다는 프로그래밍 분야의 전문 고정 표현이다.

일상 대화에서는 거의 쓰지 않으며, 프로그래밍 언어의 변수 범위 규칙을 설명할 때 사용한다. 사람이나 조직의 ‘범위’를 비유적으로 말할 때 쓰면 어색하다. “Static”이 ‘변하지 않는’이라는 일반 의미를 갖지만, 여기서는 실행 시간(runtime)이 아니라 코드 구조에 의해 결정된다는 기술적 의미로 이해해야 한다.

유의어 뉘앙스 비교

lexically scoped
거의 같은 의미이며, 특히 소스 코드의 텍스트상 위치에 따른 범위 결정을 강조한다.
using static scope
형용사구라기보다 설명적인 표현으로, 언어나 시스템이 정적 스코프 규칙을 사용한다는 뜻이다.

반의어

dynamically scoped
변수의 참조 대상이 코드상의 정의 위치가 아니라 실행 중 호출 스택이나 호출 문맥에 따라 결정된다는 뜻이다.

어원 · 암기 팁

[English]“Statically”는 컴퓨터 과학에서 ‘실행 중이 아니라 프로그램 작성·컴파일 단계에서 결정되는’이라는 뜻으로 쓰이고, “scoped”는 식별자가 유효하거나 보이는 범위(scope)를 가진다는 뜻에서 왔다. 따라서 “statically scoped”는 ‘정적 방식으로 범위가 정해진’이라는 의미의 프로그래밍 전문 표현이다.

💡 static을 ‘실행 중에 바뀌지 않고 코드에 고정된’ 것으로 기억하면 쉽다. 즉, 변수가 어디의 것인지는 프로그램을 실행해 보지 않아도 코드 위치만 보고 알 수 있으면 statically scoped이다.