프로그래밍 언어론 - 바인딩
바인딩: 속성을 이름과 연결하는 프로세스
- 결속시간에 따른 결속분류
int x; // Statically bind the type 'integer' to the name x
int* ptr = new int; // Dynamically bind the allocated storage to y
세분화 된 바인딩 시간
언어 정의 시 바인딩(defining-time):
- 언어 키워드 및 구문 규칙을 정의합니다.
변환기를 구현할 때 만든 바인딩(구현 시간):
- 언어 구성을 기계 명령어 또는 이에 상응하는 저수준 표현과 연결합니다.
- 메모리 레이아웃 및 데이터 구조를 정의합니다.
소스 프로그램을 번역할 때 만들어진 바인딩(번역 시간):
- 외부 기호 및 함수에 대한 참조를 해결합니다.
- 변수 및 데이터 구조에 대한 메모리를 할당합니다.
- 기계 코드 또는 중간 표현을 생성합니다.
프로그램을 라이브러리와 연결할 때 만들어진 바인딩(링크 타임):
- 라이브러리 함수 및 기호에 대한 참조를 해결합니다.
- 기호 재배치 및 주소 바인딩을 수행합니다.
- 서로 다른 개체 파일 간의 종속성을 해결합니다.
실행을 위해 프로그램을 메모리에 로드할 때 만들어진 바인딩(로드 시간):
- 프로그램의 코드, 데이터 및 스택에 메모리를 할당합니다.
- 동적 연결을 위한 주소 바인딩 및 재배치 수행.
- 런타임 환경을 설정하고 전역 변수를 초기화합니다.
프로그램 실행 시 바인딩(런타임):
- 동적 메서드 호출 또는 가상 함수 디스패치를 해결합니다.
- 프로그램 실행 중에 메모리 할당 및 할당 해제를 수행합니다.
- 런타임 예외 및 오류 조건을 처리합니다.
부족한 점이나 잘못 된 점을 알려주시면 시정하겠습니다 :>
728x90
'Computer Science > 프로그래밍 언어론' 카테고리의 다른 글
정규 문법의 연산 순서 (1) | 2023.05.22 |
---|---|
프로그래밍 언어론 - 선언 블록 영역 (0) | 2023.05.18 |
프로그래밍 언어론 - 변수 (0) | 2023.05.18 |
고차 함수 (0) | 2023.04.17 |
익명 함수(Lambda) (0) | 2023.04.17 |