Erlang ne yazıyor?


111

Ericsson'un yazılan ve derlenen Erlang ve Erlang / OTP uygulaması nedir? Assembly mi, C mi yoksa Erlang mı?

Güncelleme 1: DrJokepu'ya teşekkürler. Doğru anlarsam, Erlang kaynağından VM'ye derleyici Erlang'ın kendisinde yazılır. Ancak sanal makine C'de yazılmıştır.

Güncelleme 2: Hynek-Pichi-Vychodil birçok detaya dikkat çekti.

  • VM ve HW etkileşimli sürücüler: C.
  • Derleyici (VM'ye) ve kitaplıklar: Erlang.
  • Uzantılar: Herhangi bir dilde bir bağlantı noktası veya bir Erlang düğümü yazarak mümkündür.

17
Erlang açık kaynak kodludur. Kodu kontrol edin ve bir göz atın!
rfunduk

Yanıtlar:


140

Erlang'ın kendisi Erlang ile yazılmıştır. Tuhaf geliyor? Evet, çünkü sadece kısmen doğrudur. Tamam, daha ayrıntılı olarak bakın:

  1. Erlang önişlemcisi Erlang dilinde yazılmıştır.
  2. Erlang ayrıştırıcı Erlang dilinde yazılmıştır.
  3. BEAM için Erlang derleyicisi (bayt kodu VM) Erlang dilinde yazılmıştır.
  4. HiPE (yerel VM uzantısı) için Erlang derleyicisi Erlang dilinde yazılmıştır.
  5. Erlang VM BEAM ve HiPE çoğunlukla C ile yazılmıştır.
  6. Bağlantılı sürücüler çoğunlukla C dilinde yazılır (VM'ye takılırlar ve dış dünya ile iletişim sağlarlar.)
  7. OTP, Erlang dilinde yazılmıştır.
  8. Başka bağlantı noktaları veya düğümler herhangi bir dilde yazılabilir.

91

Gönderen Erlang SSS :

10.6 İlk Erlang derleyicisi nasıl yazıldı?

(veya: Erlang nasıl başlatıldı? ) Joe'nun sözleriyle:

İlk önce Erlang'ı yürütmek için soyut bir makine tasarladım. Buna JAM makinesi deniyordu; JAM = Joe'nun Soyut Makinesi.

Sonra Erlang'dan JAM'a bir derleyici ve makinenin çalışıp çalışmadığını görmek için bir emülatör yazdım. Her ikisi de prolog olarak yazılmıştır.

Aynı zamanda Mike Williams, JAM için bir C emülatörü yazdı.

Sonra Erlang'da erlang-to-jam derleyicisini yeniden yazdım ve derlemek için prolog derleyicisini kullandım. Ortaya çıkan nesne kodu C öykünücüsünde çalıştırıldı. Sonra prologu attık.


1
Teşekkürler! Bu alıntının kaynağı nedir?
Max Heiber

15
  • Erlang kodunun% 65.9'u Erlang dilinde yazılmıştır.
  • Erlang'ın% 13,4'ü XML ile yazılmıştır.
  • Erlang'ın% 13,6'sı C ile yazılmıştır.
  • Erlang'ın% 1,4'ü C ++ ile yazılmıştır
  • ...

Ohloh sitesinde canlı ve güncelleme istatistiklerini görebilirsiniz , bu rapor ana erlang git deposundan üretilir.


Sadece hangi bölümlerin c ++ ile yazıldığını merak ediyorum.
csyangchen

@csyangchen yok, bu yanlış pozitif satır sayacı dosya türü algılamasıdır.
Hauleth

WX bağlamalarının bölümleri C ++ ile yazılmıştır.
Roger Lipscombe

-1

Erlang'ın başlangıçta C / C ++ ile yazıldığını söyleyebilirim çünkü Java'nın java'da yazıldığını söyleyemem .... ama bu çerçeve ve Bazı kütüphaneler. Erlang Hakkında, Tercih edilen programlama dili olduğundan ve Telekom sistemine uygun olduğundan ... hızlılığı korumak için (örneğin: chat-bot'larda) Derleyicisinin veya Ön İşlemcisinin Erlang ile yazıldığını biliyorum. Ancak dilin diğer özellikleri Alt Seviye dillerde yazılmıştır.

Sitemizi kullandığınızda şunları okuyup anladığınızı kabul etmiş olursunuz: Çerez Politikası ve Gizlilik Politikası.
Licensed under cc by-sa 3.0 with attribution required.