Notice
Recent Posts
Recent Comments
«   2024/09   »
1 2 3 4 5 6 7
8 9 10 11 12 13 14
15 16 17 18 19 20 21
22 23 24 25 26 27 28
29 30
Archives
Today
Total
관리 메뉴

충분히 쌓여가는

Compiler 컴파일러 본문

IT/Computer Science

Compiler 컴파일러

빌드이너프 2023. 1. 6. 12:22

Compiler 컴파일러

  • 특정 프로그래밍 언어로 쓰여 있는 문서를 다른 프로그래밍 언어로 옮기는 언어 번역 프로그램
  • 프로그래밍 언어의 소스 코드 를 기계 코드, 바이트 코드 또는 다른 프로그래밍 언어로 변환하는 특수 프로그램
  • 컴파일러는 소스 코드를 기계 코드나 바이트코드가 아닌 다른 고급 프로그래밍 언어로 변환할 수 있음
  • 일부 컴파일러는 소스 코드를 기계 코드나 바이트코드가 아닌 다른 고급 프로그래밍 언어로 변환

Compiler의 역사

  • 초기 컴퓨터 프로그램들은 어셈블리어로 작성됨
  • 서로 다른 CPU 아키텍처가 등장할 때마다 매번 똑같은 프로그램을 서로 다른 어셈블리어로 작성하는 비용이 커짐 -> 고급 프로그래밍 언어의 필요성이 대두됨(초기 컴퓨터 하드웨어의 메모리 크기가 너무 작아, 컴파일러의 등장에 기술적 장애물이 됨)
  • 1950년대 초부터 기계어에 독립적인 최초의 고급 프로그래밍 언어가 나타났고, 실험적인 컴파일러들이 등장하기 시작
  • 세계 최초의 컴파일러는 1952년 그레이스 호퍼가 개발한 프로그래밍 언어 A-0를 기계어로 번역하는 컴파일러

Compiler 작동


Compiler 기능

  • 고급언어를 직접 기계어 코드로 변환
  • 자바의 경우 바이트 코드로 변환한다. 중간단계의 코드를 생성하고 이것을 해석해서 실행( 다양한 마이크로프로세서에서 실행되도록 하는 철학을 가지고 개발되었기 때문에 바이트 코드를 가지고 해석을 해서 실행하는 방식)
  • C/C++언어와 같은 고급언어는 직접 기계어 코드로 변환
  • 마이크로프로세서(CPU)는 각각 다른 기계어 코드를 가지고 있기 때문에 같은 고급언어라도 다른 기계어 코드를 생성해야 함

정리

  • 프로그램을 컴퓨터로 실행하는 과정은 여러 가지 활동들을 포함함
  • 프로그램은 자바와 같은 적절한 프로그래밍 언어로 작성되어야 함
  • 우리는 작성한 프로그램을 이해하지만 컴퓨터는 이해하지 못함 -> 컴퓨터가 이해할 수 있는 기계어(Machine Language)로 바꿔야 함 -> 이때 변환을 수행하는 소프트웨어가 Compiler
  • 컴파일러는 한 프로그래밍 언어로 작성된 원시 프로그램(source code)을 기계어로 된 목적 프로그램(object code)로 바꿈
  • 즉, 컴파일러는 원시 프로그램을 기계어로 된 목적 프로그램으로 바꿔줌

 

 


참고자료

Eye on Tech, What is Source Code and What Does it Do?

위키백과, 컴파일러

이충기. 『문제 해결을 위한 자바 프로그래밍』. 생능출판, 2017. 20쪽

'IT > Computer Science' 카테고리의 다른 글

SOLID 5가지 설계 원칙  (2) 2023.01.10
Design Pattern 디자인 패턴  (1) 2023.01.09
Session 기반 인증 | Token 기반 인증  (0) 2023.01.06
GPU(Graphic Processing Unit)  (0) 2023.01.05
IPv4와 IPv6  (0) 2023.01.05