Scope

(2018-10-04)

Variable Life, 변수 수명, Global Variable, 전역 변수, Local Variable, 지역 변수, Program Environment, 프로그램 환경, Reference Environment, 참조 환경, Activation Record, 활성 레코드

1. 변수를 특징짓는 주요 속성들은,변수 고유 속성들
     - 이름 (식별자), 주소 (기억공간 위치), 타입 (타입에 따라 연산도 달라짐), 값 (Value)
  ㅇ 변수가 수행되는 위치에 의존적인 속성들
     - 스코프 (Scope), 수명 (Lifetime), 환경 (Program Environment)


2. 변수의 구분 (classification of Variable)데이터 타입에 따른 구분
     - 값 타입 변수 (기본 자료형)
     - 참조 타입 변수 (참조 자료형)

  ㅇ 변수에 값 전달 방법에 따른 구분
     - 대입문에 의해, 데이터를 특정 변수에 전달하는 방법
     - 키보드 입력에 의해, 데이터를 변수에 전달하는 방법
     - 함수 값 리턴에 의해, 변수에 전달하는 방법 등

  ㅇ 스코프(Scope)에 따른 구분
     - 전역 변수 (Global Variable)
        . 통상, 블록(함수 등) 안과 밖 모두에서 사용가능한 변수
        . 블록(함수 등) 밖에서 정의된 변수
        . 그 범위가 전체 프로그램이 됨
     - 지역 변수 (Local Variable)
        . 통상, 블록(함수 등) 내에서 만 선언되고 사용되는 변수
        . 블록(함수 등) 내부에서 정의된 변수

  ㅇ 수명(Lifetime)에 따른 분류
     - 자동 변수 (Automatic Variable)
        . 프로그램 제어가 블록(함수 등) 내에 진입할 때 기억장소 할당이 되고,
        . 빠져나갈 때 기억장소 해제가 일어남
     - 정적 변수 (Static Variable)
        . 한 번 할당되면 프로그램 종료시까지 회수되지 않고 기억장소에서 살아있는 변수


3. 변수 스코프/영역/범위 (Scope)변수 스코프/영역
     - 프로그램변수에 접근할 수 있는 유효 범위/영역 (가시성,Visibility)
        . 정의된 변수가 보이는 유효 범위

  ㅇ 변수 스코프
     - 정적 스코프 : 번역 시에 변수 영역이 결정됨 (어휘적 범위, Lexical Scope)
        . 함수를 정의할 때, 구문 해석 만으로도,
          어떤 변수가 그 함수 스코프에 있는지를 알 수 있음
     - 동적 스코프 : 실행시에 만 비로소 변수 영역이 결정점
        . 함수를 실행할 때 만, 비로소 어떤 변수가 그 함수 스코프에 있는지 알 수 있게됨

  ㅇ 변수 스코프/영역/범위(Scope)/유효범위에 따른 구분
     - 전역 변수 (Global Variable) 또는 전역 스코프 (Global Scope)
        . 통상, 블록(함수 등) 안과 밖 모두에서 사용가능한 변수
        . 블록(함수 등) 밖에서 정의된 변수
        . 프로그램 전체 어느 곳에서도 사용 가능
     - 지역 변수 (Local Variable) 또는 지역 스코프 (Local Scope)
        . 통상, 블록(함수 등) 내에서 만 선언되고 사용되는 변수
        . 블록(함수 등) 내부에서 정의된 변수


4. 변수 수명 (Lifetime)변수 수명
     - 변수가 기억장소에 할당된 시점부터 반환되는 시점까지의 시간

  ㅇ 수명(Lifetime)에 따른 변수 분류
     - 자동 변수(Automatic Variable)
        . 프로그램 제어가 블록(함수 등) 내에 진입할 때 기억장소 할당이 되고,
        . 빠져나갈 때 기억장소 해제가 일어남
     - 정적 변수(Static Variable)
        . 한 번 할당되면 프로그램 종료시까지 회수되지 않고 기억장소에서 살아있는 변수


5. 변수의 스코프(Scope) 및 수명(Lifetime)은 불가분의 관계를 갖음블록 구조에서는, 
     - 그 시작점에서 지역 변수가 기억장소에 할당되고, 끝점에서 회수됨
     - 이 경우에, 지역 변수의 스코프와 수명은 일치하게 됨
     - 단, 지역 변수가 정적 변수선언되는 경우(static 변수명)에는 불일치 함

  ㅇ 전역 변수와 정적 변수는, 수명은 같지만 영역은 다름
     - 수명은, 
        . 전역 변수와 정적 변수프로그램 실행 동안 유지된다는 점에서는 같지만,
        . 영역은 서로 다름
     - 영역은, 
        . 전역 변수프로그램 어느 부분에서든 참조 가능하지만,
        . 정적 변수선언된 블록(함수 등)에서 만 참조 가능


6. 프로그램 환경(Program Environment)/참조 환경(Reference Environment)프로그램 내 특정 부분에서 참조될 수 있는 모든 데이터,변수,함수들의 집합
     - 어떤 값에 변수 이름을 붙여두고, (이름-값 쌍)
     - 후에 그 이름으로부터 필요한 값을 얻기 위한 기억 공간의 일종
     - 단, 프로그램 수행 계산 과정 중에 이러한 환경이 하나 만 있는 것이 아님

  ㅇ 프로그램 수행 도중에 문맥(Context)을 결정짓게되는 중요 사항 임


7. 활성 레코드 (Activation Record)프로그램을 수행시, 프로그램 내의 부프로그램이 필요로 하는 수행 참조 환경에 대한 정보
     - 즉, 부프로그램의 호출과 복귀, 매개변수의 전달 등에 필수적인 정보들이 담겨짐
        . 호출 함수매개변수, 부프로그램 내의 지역 변수, 수행 환경 간의 관계 등
     - 例) 지역 변수정보, 복귀 주소, 이전 화성 레코드주소, 
           현재 블록의 활성 레코드 주소 등

  ㅇ 활성 레코드스택 처리가 기본 임
     - 스택의 최상위에 현재 수행중인 활성 레코드가 존재하게 됨


[변수 바인딩] 1. 변수 2. 이름 3. 바인딩 4. 선언/정의/초기화 5. 스코프,수명 6. 블록 구조 7. 좌변값
  1.   기술공통
  2.   기초과학
  3.   진동/파동
  4.   방송/멀티미디어/정보이론
  5.   전기전자공학
  6.   통신/네트워킹
  7.   정보기술(IT)
        1. 정보기술
    1.   전산기초
    2.   컴퓨터구조
    3.   프로그래밍
          1. 프로그램,프로그래밍
      1.   프로그래밍 언어론
            1. 프로그래밍 언어
        1.   구문
        2.   변수 바인딩
          1.   1. 변수
              2. 이름
              3. 바인딩
              4. 선언/정의/초기화
              5. 스코프,수명
              6. 블록 구조
              7. 좌변값
        3.   자료형/데이터형
        4.   부프로그램/함수/프로시저
        5.   예외,이벤트 처리
      2.   객체지향
      3.   자료구조
      4.   알고리즘
      5.   자료표현(알파벳/코드)
      6.   시스템 소프트웨어
      7.   프로그래밍언어 종류
      8.   프로그래밍 기타일반
    4.   데이터베이스
    5.   소프트웨어 공학
    6.   운영체제
    7.   정보보호/보안
    8.   IT 기타기술
  8.   공업일반(기계,재료등)
  9.   표준/계측/품질
  10.   기술경영

 
        최근수정     요약목록(시험중)     참고문헌