Ericsson의 Erlang 및 Erlang / OTP 구현은 무엇으로 작성되고 컴파일됩니까? 어셈블리, C 또는 Erlang 자체입니까?
업데이트 1 : DrJokepu 덕분입니다. 내가 올바르게 이해한다면 Erlang 소스 -VM 컴파일러는 Erlang 자체로 작성됩니다. 그러나 VM은 C로 작성되었습니다.
업데이트 2 : Hynek-Pichi-Vychodil은 많은 세부 사항을 지적했습니다.
- VM 및 HW 상호 작용 드라이버 : C.
- 컴파일러 (VM으로) 및 라이브러리 : Erlang에서.
- 확장 : 해당 언어로 포트 또는 Erlang 노드를 작성하여 모든 언어로 가능합니다.
답변
Erlang 자체는 Erlang으로 작성되었습니다. 이상하게 들리나요? 예, 부분적으로 만 사실이기 때문입니다. 더 자세히 살펴보세요.
- Erlang 전처리 기는 Erlang으로 작성되었습니다.
- Erlang 파서는 Erlang으로 작성되었습니다.
- BEAM (바이트 코드 VM)에 대한 Erlang 컴파일러는 Erlang으로 작성되었습니다.
- HiPE (네이티브 VM 확장)에 대한 Erlang 컴파일러는 Erlang으로 작성되었습니다.
- Erlang VM BEAM 및 HiPE는 대부분 C로 작성되었습니다.
- 연결된 드라이버는 대부분 C로 작성됩니다 (VM에 연결되어 외부 세계와의 통신을 제공합니다).
- OTP는 Erlang으로 작성되었습니다.
- 다른 포트 또는 노드는 모든 언어로 작성할 수 있습니다.
답변
로부터 얼랑 자주 묻는 질문 :
10.6 최초의 Erlang 컴파일러는 어떻게 작성 되었습니까?
(또는 : Erlang은 어떻게 부트 스트랩 되었습니까? ) Joe의 말 :
먼저 Erlang을 실행하는 추상 기계를 설계했습니다. 이것을 JAM 머신이라고합니다. JAM = Joe의 추상 기계.
그런 다음 Erlang에서 JAM 및 에뮬레이터로 컴파일러를 작성하여 시스템이 작동하는지 확인했습니다. 둘 다 프롤로그로 작성되었습니다.
동시에 Mike Williams는 JAM 용 C 에뮬레이터를 작성했습니다.
그런 다음 Erlang에서 erlang-to-jam 컴파일러를 다시 작성하고 프롤로그 컴파일러를 사용하여 컴파일했습니다. 결과 개체 코드는 C 에뮬레이터에서 실행되었습니다. 그런 다음 프롤로그를 버렸습니다.
답변
- erlang 코드의 65.9 %가 Erlang으로 작성되었습니다.
- erlang의 13.4 %는 XML로 작성되었습니다.
- erlang의 13.6 %는 C로 작성되었습니다.
- erlang의 1.4 %가 C ++로 작성되었습니다.
- …
ohloh 사이트 에서 라이브 및 업데이트 통계를 볼 수 있으며 ,이 보고서는 기본 erlang git 저장소에서 생성됩니다.
답변
Java가 Java로 작성되었다고 말할 수 없기 때문에 Erlang이 처음에는 C / C ++로 작성되었다고 말할 수 있습니다 ….하지만 프레임 워크와 일부 라이브러리입니다. Erlang은 선호하는 프로그래밍 언어이며 Telecom 시스템에 적합합니다. 신속성을 유지하기 위해 (예 : chat-bots) 컴파일러 또는 PreProcessor가 Erlang으로 작성되었음을 알고 있습니다. 그러나 언어의 다른 기능은 저수준 언어로 작성됩니다.