Erlang เขียนด้วยภาษาอะไร?


111

การใช้งาน Erlang และ Erlang / OTP ของ Ericsson เป็นอย่างไร เป็นแอสเซมบลี C หรือ Erlang เอง?

อัปเดต 1: ขอบคุณ DrJokepu ถ้าฉันเข้าใจถูกต้องคอมไพเลอร์ Erlang source-to-VM จะเขียนด้วย Erlang เอง แต่ VM เขียนด้วยภาษาซี

อัปเดต 2: Hynek-Pichi-Vychodil ชี้ให้เห็นรายละเอียดมากมาย

  • ไดรเวอร์การโต้ตอบ VM และ HW: ใน C.
  • คอมไพเลอร์ (ถึง VM) และไลบรารี: ใน Erlang
  • ส่วนขยาย: เป็นไปได้ในภาษาใดก็ได้โดยการเขียนพอร์ตหรือโหนด Erlang ในภาษานั้น

17
Erlang เป็นโอเพ่นซอร์ส ไปตรวจสอบรหัสและดู!
rfunduk

คำตอบ:


140

Erlang เองเขียนด้วยภาษา Erlang ฟังดูแปลก ๆ ? ใช่เพราะมันเป็นความจริงเพียงบางส่วน ตกลงดูรายละเอียดเพิ่มเติม:

  1. พรีโพรเซสเซอร์ Erlang เขียนด้วย Erlang
  2. Erlang parser เขียนด้วยภาษา Erlang
  3. คอมไพเลอร์ Erlang ถึง BEAM (byte-code VM) ถูกเขียนด้วย Erlang
  4. คอมไพเลอร์ Erlang เป็น HiPE (ส่วนขยาย VM ดั้งเดิม) เขียนด้วย Erlang
  5. Erlang VM BEAM และ HiPE ส่วนใหญ่เขียนด้วยภาษา C
  6. ไดรเวอร์ที่เชื่อมโยงกันส่วนใหญ่เขียนด้วยภาษาซี (เสียบเข้ากับ VM และทำหน้าที่สื่อสารกับโลกภายนอก)
  7. OTP เขียนด้วยภาษา Erlang
  8. พอร์ตหรือโหนดอื่นสามารถเขียนในภาษาใดก็ได้

91

จากคำถามที่พบบ่อยของ Erlang :

10.6 คอมไพเลอร์ Erlang ตัวแรกเขียนอย่างไร?

(หรือ: Erlang bootstrapped ได้อย่างไร? ) ในคำพูดของ Joe:

ก่อนอื่นฉันออกแบบเครื่องนามธรรมเพื่อรัน Erlang สิ่งนี้เรียกว่าเครื่อง JAM JAM = เครื่องนามธรรมของ Joe

จากนั้นฉันเขียนคอมไพเลอร์จาก Erlang ถึง JAM และโปรแกรมจำลองเพื่อดูว่าเครื่องทำงานหรือไม่ ทั้งสองสิ่งนี้ถูกเขียนใน prolog

ในเวลาเดียวกันไมค์วิลเลียมส์เขียนโปรแกรมจำลอง C สำหรับ JAM

จากนั้นฉันเขียนคอมไพเลอร์ erlang-to-jam ใหม่ใน Erlang และใช้คอมไพเลอร์ prolog เพื่อคอมไพล์ โค้ดอ็อบเจ็กต์ผลลัพธ์ถูกรันในโปรแกรมจำลอง C จากนั้นเราก็โยน prolog ทิ้งไป


1
ขอบคุณ! แหล่งที่มาของคำพูดนี้คืออะไร?
Max Heiber

15
  • 65.9% ของรหัส erlang เขียนด้วยภาษา Erlang
  • 13.4% ของ erlang เขียนด้วย XML
  • 13.6% ของ erlang เขียนด้วยภาษาซี
  • 1.4% ของ erlang เขียนด้วย C ++
  • ...

คุณสามารถดูสถิติสดและอัปเดตในไซต์ohlohรายงานนี้สร้างจากที่เก็บ erlang git หลัก


ฉันแค่อยากรู้ว่าส่วนไหนเขียนด้วย c ++
csyangchen

@csyangchen ไม่มีนี่คือการตรวจจับประเภทไฟล์ตัวนับบรรทัดที่เป็นเท็จ
Hauleth

บางส่วนของการโยง WX เขียนด้วย C ++
Roger Lipscombe

-1

ฉันสามารถพูดได้ว่าตอนแรก Erlang เขียนด้วย C / C ++ เนื่องจากฉันไม่สามารถพูดได้ว่า Java เขียนด้วย java .... แต่เป็นกรอบและไลบรารีบางส่วน เกี่ยวกับ Erlang เนื่องจากเป็นภาษาโปรแกรมที่ต้องการและเหมาะสำหรับระบบโทรคมนาคม ... เพื่อรักษาความรวดเร็ว (เช่นในแชทบอท) ฉันรู้ว่าคอมไพเลอร์หรือ PreProcessor เขียนด้วย Erlang แต่คุณสมบัติอื่น ๆ ของภาษาเขียนด้วยภาษาระดับต่ำ

โดยการใช้ไซต์ของเรา หมายความว่าคุณได้อ่านและทำความเข้าใจนโยบายคุกกี้และนโยบายความเป็นส่วนตัวของเราแล้ว
Licensed under cc by-sa 3.0 with attribution required.