728x90
반응형
컴파일러, compiler
명사컴퓨터
인간의 언어에 가까운 고급 언어로 작성된 원시 프로그램을 입력으로 받아
기계어(機械語)로 된 목적 프로그램을 출력하기 위해 사용되는 언어 번역 프로그램
출처-Oxford Languages
> 컴파일러 실행 단계
- 구문분석 : 소스 코드 파일을 읽어 추상 구문 트리 생성, 문법에 맞지 않는 소스 코드는 사용자에게 알림
- 최적화 : 추상 구문 트리 분석 및 퇴적화.
- 코드 생성 : 목적 코드 생성(기계어 번역의 경우 레지스터 할당, 연산 순서 바꾸기 등)
- 링킹 : 기계어 번역의 경우, 여러 라이브러리의 목적 코드를 묶어 하나의 실행파일 생성. -일부는 이과정을 컴파일 과정에서 제외함.
> 컴파일 과정
- 전처리기(Preprocessor) : #이 붙은 전처리기 구문을 처리.
- 컴파일러로 컴파일
- 어셈블러(Assembler) : 완전히 기계어로 바꿔주는 역할
- 링커(Linker) : 여러 개의 오브젝트 파일을 하나로 합치거나, 라이브러리를 합침
>컴파일러의 필수 조건
- 컴파일러는 옮김의 과정에서 프로그램의 뜻을 보존하여야 함. 즉, 입력받은 프로그램의 의미를 충실히 따라야 함
- 컴파일러는 입력으로 들어온 프로그램을 실용적으로 개선해야 함
>컴파일러의 기능
- 고급언어를 직접 기계어 코드로 변환
- 자바의 경우 바이트 코드로 변환한다. 중간단계의 코드를 생성하고 이를 해석하여 실행, 자바는 마이크로프로세서에서 실행되도록 개발되었기 때문.
- C/C++의 경우 직접 기계어 코드로 변환
- 마이크로프로세서는 각각 다른 기계어 코드를 가지고 있기에, 다른 기계어 코드를 생성해야함. 즉, 마이크로프로세서에 맞는 컴파일러를 사용해야함
>컴파일러 종류
Compile
컴파일(Compile)은 주어진 language로 작성된 컴퓨터 프로그램을 다른 언어의 동등한 프로그램으로 변환하는 프로세스
728x90
반응형
'1일1CS' 카테고리의 다른 글
33. 웹브라우저에 www.google.com을 치면 일어나는 일 (1) | 2023.01.09 |
---|---|
32. 디자인패턴이란? (0) | 2023.01.09 |
30. 세션 기반 인증과 토큰(JWT) 기반 인증의 차이 (0) | 2023.01.06 |
29. JWT(JSON Web Token) (0) | 2023.01.06 |
28. GPU란 (0) | 2023.01.05 |
댓글