JSCC: JavaScript로 개발하는 C Compiler

코스 전체목록

닫기

컴파일 & 링크 & 빌드

2.1) 컴파일 링크 빌드

초창기의 컴퓨터는 기계어로 프로그래밍을 했다그러나 기계어는 사람이 이해하기 아주 어려워서이를 보다 편하게 사용하기 위해 이런 방법을 생각했다.

기계어의 집합을 더 간단하게 표현하는 텍스트 문서를 만든다예를 들어 C는 긴 코드를 간단하게 표현하기 위해 함수나 매크로(macro)를 사용할 수 있는데기계어로 10줄짜리의 코드를 매크로 A로 정의하고 문서에는 A만 써넣는 경우를 생각하자.

이 텍스트 문서를 기계어로 자동 번역하는 프로그램 A를 만든다.

텍스트 문서를 프로그램 A를 이용하여 기계어로 자동 번역한다이 프로그램을 실행하면 위에서 예시로 작성한 문서의 A가 기계어 10줄로 번역된다.

이렇게 하면 필요할 때마다 텍스트 문서만 수정하여 프로그램을 간단하게 만들 수 있다위 내용은 사실 순서가 이상한데다시 한 번 순서를 맞춰보자.

일정한 형식으로 작성된 문서를 기계어로 자동 번역하는 프로그램 A를 먼저 만든다.

이후에 프로그램을 만들 때마다 A가 번역할 수 있도록 일정한 형식으로 문서를 작성한다.

문서 작성이 완료되면 프로그램 A를 실행하고 파일을 넘겨서, A가 자동으로 번역해준 기계어 파일을 얻게 된다.

그리고 바로 여기서 사용되는 프로그램 A를 컴파일러(compiler)라고 하고이때 작성한 일정한 형식의 컴퓨터 명령을 소스 코드(source code)소스 코드가 저장된 텍스트 파일을 소스 코드 파일(source code file) 또는 간단히 소스 파일(source file)그리고 이를 번역하는 행위를 컴파일(compile)이라고 한다.

컴퓨터가 발전하고 작성하는 소스 코드의 양이 늘어남에 따라한 파일에 모든 소스 코드를 작성하는 방식이 불편하다는 것을 깨닫게 되었다사람들은 소스 코드를 다른 파일에 분리하는 방법을 생각해냈다원래 하나였던 파일을 분리했으므로프로그램을 완성하려면 분리했던 파일은 모두 연결해야 한다이렇듯 분리된 파일을 모아 하나의 실행 가능한 파일을 만들면 이를 두고 파일들을 링크(link)했다고 하고이때 사용되는 프로그램을 링커(linker)라고 한다.

종합하면우리는 기계어를 이용하지 않고 실행 파일을 생성하기 위해 다음의 순서를 거친다.

소스 코드를 작성하고 파일로 저장한다.

저장한 소스 파일을 컴파일러를 이용하여 컴파일 한다목적 파일이 생성된다.

컴파일러가 생성한 목적 파일들을 링커를 이용하여 링크 한다실행 가능한 목적 파일이 생성된다.

링커는 실행 가능한 목적’ 파일을 생성한다컴파일러가 생성하는 파일과 링커가 생성하는 파일의 차이는 생성한 목적 파일이 실행 가능 하느냐에 있다.

컴파일과 링크 과정을 합쳐 빌드(build)라고 하고이때 사용되는 프로그램을 빌더(builder)라고 한다.

댓글

댓글 본문
  1. 붕어
    감사합니다!
  2. 강창협
    예 좋은 글 감사합니다.
  3. 대박
    정말 좋은 글입니다. 감사합니다!
  4. 초보
    너무 좋은 글입니다 정말..
  5. 방랑그래머
    설명 대박이네요
  6. 척척박사님
    잘 보고 갑니다. 감사합니다.
  7. 히히호호
    깔끔하고 명확하게 정리되어 있네요. 이해하기 쉽게 설명해주셔서 감사합니당
  8. 한도영
    올린지 한참 되었더니 이제야 덧글을 확인했습니다.
    읽어주셔서 감사합니다.
    대화보기
    • ㅎㅎ
      감사해요
    graphittie 자세히 보기