관리 메뉴

피터의 개발이야기

자기 자신으로 개발된 언어(자기 호스팅, 부트스트랩) 본문

개발이야기

자기 자신으로 개발된 언어(자기 호스팅, 부트스트랩)

기록하는 백앤드개발자 2024. 9. 17. 10:10
반응형

ㅁ 들어가며

  동료 개발자와 이야기 중, "자기 호스팅(self-hosting)" 또는 "부트스트랩(bootstrapping)"에 대해서 알게 되어, 그 개념과 관련 언어에 대해서 정리하였다.

 

ㅁ 자기 호스팅, 부트스트랩이란?

개발 언어 중 자기 자신으로 개발된 언어는 "자기 호스팅(self-hosting)" 또는 "부트스트랩(bootstrapping)"이라고 불리는 과정을 거친 언어들이다. 이는 해당 언어의 컴파일러나 인터프리터가 그 언어 자체로 작성된 경우를 말한다.

 

ㅁ 자기 호스팅의 의의

자기 호스팅은 프로그래밍 언어 개발에 있어 중요한 이정표가 된다.

  1. 개발 속도 향상: 언어가 자기 자신으로 구현된 컴파일러를 갖게 되면 개발 속도에 상당한 가속이 붙게 된다.
  2. 언어의 성숙도: 자기 호스팅은 해당 언어가 충분히 강력하고 표현력이 있다는 것을 보여준다.
  3. 최적화 기회: 언어 개발자들이 자신들의 언어로 컴파일러를 작성하면서 언어의 성능을 개선할 기회를 얻게 된다.

ㅁ 자기 호스팅 언어의 예

  • C: C 언어의 컴파일러는 대부분 C로 작성되어 있다.
  • Java: Java 컴파일러의 많은 부분이 Java로 작성되어 있다.
  • Python: Python 인터프리터의 표준 구현인 CPython은 대부분 C로 작성되어 있지만, PyPy라는 대안 구현은 Python으로 작성되어 있다.
  • Go: Go 언어의 컴파일러는 초기에는 C로 작성되었지만, 현재는 Go로 재작성되었다.

ㅁ 마무리

  자기 호스팅은 언어의 발전 과정에서 중요한 단계이며, 언어의 능력과 성숙도를 보여주는 지표가 된다. 그러나 모든 언어가 반드시 자기 호스팅을 달성해야 하는 것은 아니며, 각 언어의 목적과 설계 철학에 따라 다를 수 있다.

반응형
Comments