• 24. 컴파일과 메모리 관리

    2021. 9. 22.

    by. ahntree

    728x90

    1. 컴파일 과정

    1. 소스코드가 있다.
    2. 컴파일러는 소스코드를 기계어로 번역한다. 이 과정에서 오류가 있는지 점검하고 최적화를 통해서 필요 없는 변수와 코드를 삭제한다. 이렇게 목적코드가 만들어진다.
    3. 목적 코드에 라이브러리 코드를 삽입하여 최종 실행 파일을 만든다.

     

     

     

    2. 변수와 메모리 할당

    컴파일 과정에서 가장 중요한 것은 메모리를 확보하고 정리하는 부분이다.

     

    char str = 'a';
    int vol = 7;
    float pri = 2.3;

     

    기계어는 메모리 주소를 사용한다. 컴파일러는 0번지에 a를 넣고 이곳을 문자형이 들어가는 공간으로 기억한다. 1번지부터 4번지까지 확보한 후 정수 7을 넣고, 5번지부터 12번지까지 확보한 후 실수 2.3을 넣는다.

     

    컴파일러는 프로그래머가 지정한 자료형에 해당하는 크기의 메모리 주소를 확보하고 값을 집어넣는다. 모든 변수에 대해 메모리를 확보하고 오류를 찾기 위해 심벌 테이블을 유지한다. 각 변수는 이름, 종류, 범위, 주소를 가진다. 범위는 변수의 사용 가능한 영역을 나타내며 종류만 알면 크기를 알 수 있기 때문에 주소에는 시작 주소만 표시된다.

     

    변수 = 메모리 주소다. 컴파일러는 모든 변수를 메모리 주소(상대 주소)로 변환해서 기계어로 바꾼다.

    728x90

    댓글