1. [전산] 번역 과정
ㅇ 프로그램 또는 코드를 다른 언어 형식으로 변환하는 것
ㅇ 번역 과정 (Translation)
- 소스 파일 -> 어휘 분석 -> 구문 분석 -> 중간 코드 생성 -> 목적 파일
※ [참고] 소스 코드/파일, 오브젝트 코드/파일 비교
- 소스 코드/원시 코드 (Source Code) / 소스 프로그램
. 프로그래밍 언어를 사용하여 텍스트로 기술된 것
- 소스 파일/원시 파일 (Source File)
. 소스 코드가 파일 형태로 저장된 것
- 오브젝트 코드/목적 코드 (Object Code) / 목적 프로그램
. 소스 코드가 기계어로 번역(컴파일)되어 기술된 것
- 오브젝트 파일/목적 파일 (Object File)
. 소스 파일이 기계어로 번역(컴파일)되어 파일 형태로 저장된 것
2. [전산] 빌드 과정 (Build)
ㅇ 선행처리 (Preprocessing)
ㅇ 번역 (Translation) 또는 컴파일 (Compile)
ㅇ 결합 (Assemble)
ㅇ 링킹(Linking) & 로딩(Loading)
- (링킹 : 오브젝트 파일들을 최종적으로 사용 가능하게 변환하는 것)
※ 빌드 : 작성된 고급 프로그래밍 언어를 기계어로 바꿔,
- 실행 가능 코드로 만드는 전 과정을 일컬음
3. [전산] 빌드 자동화 : make 빌드
ㅇ 빌드 바이너리를 생성하기 위한 기본 규칙을 제공하는, 빌드 자동화 도구
- 각 파일 사이의 의존성,시간적절성 등을 파악함
. 파일의 타임스탬프를 비교해서, 다시 생성할 필요가 있는지 판단하는 등
- 부분 재 컴파일, 재 링크 작업 등의 자동화에 쓰임
. 부분 수정이 가해졌을 때, 최소 처리 만으로, 전체 파일 간의 의존적 일관성을 유지시킴
ㅇ 빌드 프로세스 : 소스 파일에서 실행 파일로의 빌드 구축
- 전처리 -> 컴파일 -> 어셈블리 -> 링크
ㅇ 프로그램 소스 부분 수정과 이미 컴파일된 라이브러리 간을 결합하여,
- 대규모 어플리케이션 및 라이브러리를 구축할 때 유용
ㅇ 규칙 파일 : Makefile
- [형식] 결과물 : 소스 (하나의 결과물에 여러 소스 연결 가능)
. (탭으로 한 칸 띄움) 변환 수단 (명령어,배치 파일 등)
4. [전산] (참고사항)
ㅇ 목적 파일 / 오브젝트 파일 (Object File) : 재배치 가능 목적 파일 (Relocatable Object File)
- 모듈별로 개발되어 컴파일된 것
. 실제 특정 주소로 지정되지 않고,
. 임의의 물리 메모리 위치에 적재 가능토록, 만들어진 것으로,
. 주로, 빌드 과정의 초기 산출물들
ㅇ 실행 가능 목적 파일 (Executable Object File)
- 여러 재배치 가능한 오브젝트 파일로부터 실행 파일이 생성됨
ㅇ 목적 라이브러리 파일 / 오브젝트 라이브러리 파일 (Object Library File) : 정적 라이브러리
- 모듈별 오브젝트 파일들을 여럿 합쳐서, 1개의 라이브러리 파일로 만든 것
ㅇ 공유 목적 라이브러리 : 동적 라이브러리
- 재배치 가능 목적 파일 여러 개로부터 만들어짐