문제

Ericsson의 Erlang과 Erlang/OTP의 구현은 무엇입니까? IS Assembly, C 또는 Erlang 자체입니까?

업데이트 1 : Drjokepu에게 감사합니다. 내가 올바르게 이해하면 Erlang 소스-VM 컴파일러는 Erlang 자체에 작성됩니다. 그러나 VM은 C로 작성되었습니다.

업데이트 2 : Hynek-Pichi-Vychodil은 많은 세부 사항을 지적했습니다.

  • VM 및 HW 상호 작용 드라이버 : C.
  • 컴파일러 (VM) 및 라이브러리 : Erlang.
  • 확장 : 해당 언어로 포트 또는 Erlang 노드를 작성하여 모든 언어로 가능합니다.
도움이 되었습니까?

해결책

Erlang 자체는 Erlang에서 작성되었습니다. 이상하게 들리나요? 예, 부분적으로는 사실이기 때문입니다. 좋아, 더 자세히 살펴보십시오.

  1. Erlang Preprocessor는 Erlang에서 작성되었습니다.
  2. Erlang Parser는 Erlang에서 작성되었습니다.
  3. Erlang Compiler to Beam (Byte-Code VM)은 Erlang에서 작성되었습니다.
  4. Erlang Compiler to Hipe (Native VM Extension)는 Erlang에서 작성되었습니다.
  5. Erlang VM Beam과 Hipe는 대부분 C로 작성되었습니다.
  6. 링크 된 드라이버는 대부분 C로 작성됩니다 (VM에 연결되어 있으며 외부 세계와의 커뮤니케이션을 제공합니다.)
  7. OTP는 Erlang에서 작성되었습니다.
  8. 다른 포트 또는 노드는 모든 언어로 작성할 수 있습니다.

다른 팁

로부터 Erlang FAQ:

10.7 첫 번째 Erlang 컴파일러는 어떻게 작성 되었습니까?

(또는: Erlang은 어떻게 부트 스트랩 되었습니까?) Joe의 말로 :

먼저 Erlang을 실행하기 위해 추상 기계를 설계했습니다. 이것을 잼 기계라고 불렀습니다. Jam = Joe의 추상 기계.

그런 다음 Erlang에서 JAM까지 컴파일러를 썼고 기계가 작동하는지 확인했습니다. 이 두 가지 모두 프롤로그에서 작성되었습니다.

동시에 Mike Williams는 잼에 대한 C 에뮬레이터를 썼습니다.

그런 다음 Erlang의 Erlang-to-Jam 컴파일러를 다시 작성하고 Prolog 컴파일러를 사용하여 컴파일했습니다. 결과 객체 코드는 C 에뮬레이터에서 실행되었습니다. 그런 다음 우리는 프롤로그를 버렸습니다.

  • Erlang 코드의 65.9%가 Erlang에서 작성되었습니다.
  • Erlang의 13.4%가 XML로 작성되었습니다.
  • Erlang의 13.6%가 C로 작성되었습니다.
  • Erlang의 1.4%가 C ++로 작성되었습니다
  • ...

라이브 및 업데이트 통계를 볼 수 있습니다 오, 오를로 이 보고서는 Main Erlang Git 저장소에서 생성됩니다.

라이센스 : CC-BY-SA ~와 함께 속성
제휴하지 않습니다 StackOverflow
scroll top