compilation

컴파일

나루 위키
둘러보기로 가기 검색하러 가기

컴파일유닛을 해석하여 실행 가능한 형태로 만드는 과정으로, 다음 단계로 구성된다.

  1. (필요하면) 패키지에 어느 파일, 즉 유닛이 들어 있는지를 결정
  2. 파일 시스템 등에서 유닛에 대응하는 파일을 읽음
  3. 코드 문자 인코딩을 결정하고, 유니코드 스칼라 값의 열로 디코딩
  4. 다음 과정을 동시에 실행 (개념적으로는 아래 순서대로 일어나지만, 서로 영향을 줄 수 있음)
    1. 토큰화
    2. 파싱
    3. 정적 평가
  5. 타이핑 (타입 추론타입 결정)

한 번 컴파일된 유닛은 그 의미가 바뀌지 않는다. 예를 들어서 유닛을 실행하는 도중에 그 유닛에 함수를 추가하거나 뺄 수 없다. 이러한 일을 하려면,

  • 유닛의 복제본을 만들어 그것을 컴파일한 뒤에 바꿔치기하거나,
  • 정적 평가를 사용해서 컴파일 과정에서 함수를 추가한 것처럼 보이게 만들어야 한다.