W czym jest napisane Erlang?

111

Jaka jest implementacja Erlang i Erlang / OTP firmy Ericsson napisana i skompilowana? Czy to Assembly, C czy Erlang?

Aktualizacja 1: Dzięki DrJokepu. Jeśli dobrze rozumiem, kompilator Erlang source-to-VM jest napisany w samym Erlangu. Ale maszyna wirtualna jest napisana w C.

Aktualizacja 2: Hynek-Pichi-Vychodil zwrócił uwagę na wiele szczegółów.

  • Sterowniki współpracujące z VM i HW: w C.
  • Kompilator (do VM) i biblioteki: w Erlang.
  • Rozszerzenia: możliwe w dowolnym języku, pisząc port lub węzeł Erlang w tym języku.
CDR
źródło
17
Erlang jest oprogramowaniem typu open source. Idź, sprawdź kod i spójrz!
rfunduk

Odpowiedzi:

140

Sam Erlang jest napisany w Erlang. Brzmi dziwnie? Tak, ponieważ jest to tylko częściowo prawda. OK, spójrz na to bardziej szczegółowo:

  1. Preprocesor Erlang jest napisany w języku Erlang.
  2. Parser Erlang jest napisany w języku Erlang.
  3. Kompilator Erlang do BEAM (VM z kodem bajtowym) został napisany w Erlangu.
  4. Kompilator Erlang do HiPE (natywne rozszerzenie maszyny wirtualnej) jest napisany w Erlang.
  5. Erlang VM BEAM i HiPE są napisane głównie w C.
  6. Podłączone sterowniki są napisane głównie w C. (są podłączone do maszyny wirtualnej i służą do komunikacji ze światem zewnętrznym).
  7. OTP jest napisane w Erlang.
  8. Inne porty lub węzły można napisać w dowolnym języku.
Hynek -Pichi- Vychodil
źródło
91

Z FAQ Erlanga :

10.6 Jak powstał pierwszy kompilator Erlanga?

(lub: jak został załadowany Erlang? ) W słowach Joe:

Najpierw zaprojektowałem abstrakcyjną maszynę do wykonania Erlanga. Nazywało się to maszyną JAM; JAM = abstrakcyjna maszyna Joe.

Następnie napisałem kompilator z Erlanga do JAM-a i emulator, aby sprawdzić, czy maszyna działa. Oba zostały napisane w prologu.

W tym samym czasie Mike Williams napisał emulator C dla JAM-a.

Następnie przepisałem kompilator erlang-to-jam w Erlangu i użyłem kompilatora prolog, aby go skompilować. Wynikowy kod obiektowy został uruchomiony w emulatorze C. Potem wyrzuciliśmy prolog.

Tamas Czinege
źródło
1
Dzięki! Jakie jest źródło tego cytatu?
Max Heiber
15
  • 65,9% kodu erlang jest napisanych w języku Erlang.
  • 13,4% erlang jest napisanych w XML.
  • 13,6% erlang jest napisane w C.
  • 1,4% erlang jest napisanych w C ++
  • ...

Możesz zobaczyć na żywo i zaktualizować statystyki na stronie ohloh , ten raport generuje z głównego repozytorium erlang git.

Saeed Zarinfam
źródło
Jestem po prostu ciekawy, które części są napisane w języku c ++.
csyangchen
@csyangchen none, to jest fałszywie dodatni wynik wykrywania typu pliku licznika linii.
Hauleth
Części powiązań WX są napisane w C ++.
Roger Lipscombe
-1

Mogę powiedzieć, że Erlang został początkowo napisany w C / C ++, ponieważ nie mogę powiedzieć, że Java jest napisana w javie ... ale jest to framework i niektóre biblioteki. O Erlangu, As Its jest preferowanym językiem programowania i nadaje się do systemu Telecom ... aby zachować szybkość (np. W chat-botach) wiem, że jego kompilator lub PreProcessor jest napisany w Erlangu. Ale inne cechy języka są napisane w językach niskiego poziomu.

Gadrawin
źródło