Chapter 06 변수, 바인딩, 식 및 제어문
변수
이름, 속성(attribute)의 집합, 참조(reference), 값(value)의 4요소로 구성
- 속성: 자료형, Byte 수 등
- 참조: RAM에서 저장위치를 가르킴 - address, location
- 값: 기억장소에 저장된 실제 값
속성의 세부사항
제한된 길이의 문자나 숫자로 구성된 변수의 한 요소(component)
변수, 함수명, 프로그램 이름 등
바인딩 종류 | 설명 |
---|---|
정적 바인딩(Static binding) | 컴파일 시 이미 모든 성질들이 결정됨 |
준 동적 바인딩(Semi Dynamic binding) | C 언어에서 변수의 성질이 컴파일 시 결정되지만, 기억장소 할당은 실행 시간에 결정됨 |
동적 바인딩(Dynamic binding) | 실행시간에 성질이 결정됨 |
예시:
- X : = 3.14159
- 이름: X
- 속성: 원주율, 실수
- 참조: 값이 저장된 위치 / 주소 값
- 값: 3.14159
Binding
이름에 어떤 속성을 연결하는 과정. 프로그래밍 기본 단위에 여러 속성 중 일부를 연결하여 결정하는 행위.
단위: 변수 속성 예: int, float, char, string, bool 등(자료형)
기본적인 속성 바인딩 메커니즘
이름(name) 또는 식별자(identifier) 사용
예시:
- const n = 5; 이름 n에는 두 개의 속성인 상수와 값 5가 바인딩
- x: integer; 이름 x에 변수와 정수라는 두개의 속성이 바인딩
- x = 12; 변수 x에 새로운 속성으로 값 2가 바인딩
바인딩 시간(binding time)
바인딩(속성)이 이름에 연결되고 계산되는 과정이 발생되는 시간
바인딩 시간 종류
- 정적 바인딩(Static binding): 언어 정의 시간, 언어 구현 시간, 번역 시간
- 동적 바인딩(Dynamic binding): 실행 시간
예시:
int a
속성:
- 정적 바인딩: 이름과 자료형이 번역 시간에 결정
- 준 동적 바인딩: 기억장소가 할당
- 동적 바인딩: 함수 호출 시 지역변수가 stack에 할당
바인딩 시간의 중요성
- 실행 시간(Dynamic): 프로그램 실행 시점에서 발생하는 바인딩(dynamic binding)
변수 값 변경, 변수와 자료 구조에 기억장소 할당 등 - 번역 시간(Static): 언어의 번역하는 시점, 번역 시간에 발생하는 바인딩
- 언어 구현 시간(Static): 형식 매개변수와 실제매개변수간의 바인딩, 지역변수에 대한 기억장소 할당
- 언어 정의 시간(Static): 언어 규칙에서 정의되는 고정적인 바인딩
상수 | 설명 | 예시 |
---|---|---|
상수 10 | 표현 방법과 의미 | 배정값: 성질과 의미 |
바인딩 시간의 차이에서 발생하는 바인딩 시간의 중요성
언어의 특성상 실행 효율성을 높이기 위해 바인딩 시간의 차이에서 성능 차이가 발생할 수 있다.
언어 구현 시간에서 가장 큰 바인딩 차이를 가진 언어:
예시:
- 배열의 크기를 정하는 순간에 크기를 결정하는 예시 포트란의 저장
- 배열의 크기가 정해지지 않을 경우의 자료형 바인딩 Snobol4가 적용
바인딩 유형의 비교
- 정적 바인딩(Static binding): 효율성(efficiency) 증가
- 동적 바인딩(Dynamic binding): 유연성(flexibility) 증가
동적 바인딩을 하기 위한 기능
- 동적 할당과 함께 (변수 값이 들어있는 함수가 실행될 때만)
- 바인딩의 종류는 이름과 속성간의 관계 결정되는 시점과 관련이 있으며 성질을 가지게 됨
'every > study' 카테고리의 다른 글
변수, 바인딩, 식 제어문(3) (0) | 2024.11.11 |
---|---|
변수, 바인딩, 식 제어문(2) (0) | 2024.11.10 |
컴파일러 개요 (0) | 2024.11.08 |
프로그래밍 언어의 구문과 구현 기법 (6) | 2024.11.07 |
프로그래밍 언어 설계 (0) | 2024.11.06 |