На чем написан Erlang?


111

В чем написана и скомпилирована реализация Erlang и Erlang / OTP от Ericsson? Это сборка, C или сам Erlang?

Обновление 1: Спасибо DrJokepu. Если я правильно понимаю, компилятор Erlang source-to-VM написан на самом Erlang. Но виртуальная машина написана на C.

Обновление 2: Хинек-Пичи-Выходил указала на множество деталей.

  • Драйверы, взаимодействующие с ВМ и HW: в C.
  • Компилятор (для ВМ) и библиотеки: в Erlang.
  • Расширения: возможно на любом языке, написав порт или узел Erlang на этом языке.

17
Erlang имеет открытый исходный код. Посмотрите код и посмотрите!
rfunduk

Ответы:


140

Сам Erlang написан на Erlang. Странно звучит? Да, потому что это правда лишь отчасти. Хорошо, посмотрите на это поподробнее:

  1. Препроцессор Erlang написан на Erlang.
  2. Парсер Erlang написан на Erlang.
  3. Компилятор Erlang для BEAM (виртуальная машина с байтовым кодом) написан на Erlang.
  4. Компилятор Erlang для HiPE (собственное расширение виртуальной машины) написан на Erlang.
  5. Erlang VM BEAM и HiPE написаны в основном на C.
  6. Связанные драйверы написаны в основном на C. (они подключаются к виртуальной машине и служат для связи с внешним миром).
  7. OTP написан на Erlang.
  8. Другие порты или узлы могут быть написаны на любом языке.

91

Из FAQ по Erlang :

10.6 Как был написан первый компилятор Erlang?

(или: как был загружен Erlang? ) По словам Джо:

Сначала я разработал абстрактную машину для выполнения Erlang. Это называлось JAM-машиной; JAM = Абстрактная машина Джо.

Затем я написал компилятор из Erlang в JAM и эмулятор, чтобы посмотреть, работает ли машина. Оба они были написаны в прологе.

В то же время Майк Уильямс написал эмулятор C для JAM.

Затем я переписал компилятор erlang-to-jam на Erlang и использовал компилятор пролога для его компиляции. Полученный объектный код был запущен в эмуляторе C. Потом выбросили пролог.


1
Спасибо! Каков источник этой цитаты?
Макс Хейбер,

15
  • 65,9% кода Erlang написано на Erlang.
  • 13,4% erlang написано на XML.
  • 13,6% erlang написано на C.
  • 1,4% erlang написано на C ++
  • ...

Вы можете увидеть текущую и обновленную статистику на сайте ohloh , этот отчет создается из основного репозитория erlang git.


Мне просто любопытно, какие части написаны на C ++.
csyangchen

@csyangchen none, это ложное срабатывание при обнаружении типа файла счетчика строк.
Hauleth

Части привязок WX написаны на C ++.
Роджер Липскомб

-1

Я могу сказать, что Erlang изначально был написан на C / C ++, поскольку я не могу сказать, что Java написана на java .... но это фреймворк и некоторые библиотеки. Что касается Erlang, так как это предпочтительный язык программирования и подходит для системы Telecom ... чтобы поддерживать скорость (например, в чат-ботах), я знаю, что его компилятор или препроцессор написан на Erlang. Но другие особенности языка написаны на языках низкого уровня.

Используя наш сайт, вы подтверждаете, что прочитали и поняли нашу Политику в отношении файлов cookie и Политику конфиденциальности.
Licensed under cc by-sa 3.0 with attribution required.