Apa Erlang tertulis?

111

Apa implementasi Erlang dan Erlang / OTP yang ditulis dan dikompilasi oleh Ericsson? Apakah assembly, C atau Erlang itu sendiri?

Pembaruan 1: Terima kasih kepada DrJokepu. Jika saya mengerti dengan benar, kompiler sumber-ke-VM Erlang ditulis dalam Erlang itu sendiri. Tetapi VM ditulis dalam C.

Pembaruan 2: Hynek-Pichi-Vychodil menunjukkan banyak detail.

  • VM dan HW berinteraksi driver: di C.
  • Compiler (ke VM) dan pustaka: di Erlang.
  • Ekstensi: Dimungkinkan dalam bahasa apa pun dengan menulis port atau simpul Erlang dalam bahasa itu.
CDR
sumber
17
Erlang adalah open source. Periksa kodenya dan lihat!
rfunduk

Jawaban:

140

Erlang sendiri ditulis dalam bahasa Erlang. Terdengar aneh? Ya, karena itu hanya sebagian yang benar. Oke lihat lebih detail:

  1. Preprocessor Erlang ditulis dalam bahasa Erlang.
  2. Pengurai Erlang ditulis dalam bahasa Erlang.
  3. Kompiler Erlang menjadi BEAM (byte-code VM) ditulis dalam Erlang.
  4. Compiler Erlang untuk HiPE (ekstensi VM asli) ditulis dalam bahasa Erlang.
  5. Erlang VM BEAM dan HiPE sebagian besar ditulis dalam C.
  6. Driver yang terhubung sebagian besar ditulis dalam C. (Mereka terhubung ke VM dan melayani komunikasi dengan dunia luar.)
  7. OTP ditulis dalam bahasa Erlang.
  8. Port atau node lain dapat ditulis dalam bahasa apa pun.
Hynek -Pichi- Vychodil
sumber
91

Dari FAQ Erlang :

10.6 Bagaimana kompilator Erlang pertama ditulis?

(atau: bagaimana Erlang di-bootstrap? ) Dalam kata-kata Joe:

Pertama saya merancang mesin abstrak untuk mengeksekusi Erlang. Ini disebut mesin JAM; JAM = Mesin Abstrak Joe.

Kemudian saya menulis kompiler dari Erlang ke JAM dan emulator untuk melihat apakah mesin bekerja. Keduanya ditulis dalam prolog.

Pada saat yang sama Mike Williams menulis emulator C untuk JAM.

Kemudian saya menulis ulang kompiler erlang-to-jam di Erlang dan menggunakan kompiler prolog untuk mengkompilasinya. Kode objek yang dihasilkan dijalankan di emulator C. Lalu kami membuang prolog.

Tamas Czinege
sumber
1
Terima kasih! Dari mana sumber kutipan ini?
Max Heiber
15
  • 65,9% kode erlang ditulis dalam bahasa Erlang.
  • 13,4% erlang ditulis dalam XML.
  • 13,6% dari erlang ditulis dalam C.
  • 1.4% dari erlang ditulis dalam C ++
  • ...

Anda dapat melihat statistik live dan update di situs ohloh , laporan ini dihasilkan dari repositori erlang git utama.

Saeed Zarinfam
sumber
Saya hanya penasaran bagian mana yang ditulis dalam c ++.
csyangchen
@csyangchen tidak ada, ini adalah deteksi jenis berkas penghitung sebaris positif palsu.
Hauleth
Bagian dari binding WX ditulis dalam C ++.
Roger Lipscombe
-1

Saya dapat mengatakan bahwa Erlang awalnya ditulis dalam C / C ++ karena saya tidak dapat mengatakan bahwa Java ditulis dalam java .... tetapi Ini kerangka kerja dan Beberapa perpustakaan. Tentang Erlang, Karena Ini adalah bahasa pemrograman yang disukai dan cocok untuk sistem Telecom ... untuk menjaga kecepatan (misalnya: di chat-bot) saya tahu bahwa compiler atau PreProcessornya ditulis dalam Erlang. Tetapi fitur bahasa lainnya ditulis dalam bahasa Tingkat Rendah.

Gadrawin
sumber