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

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

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

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

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

person CDR    schedule 13.02.2009    source источник
comment
Erlang имеет открытый исходный код. Пойдите, проверьте код и посмотрите!   -  person rfunduk    schedule 17.10.2009


Ответы (4)


Сам 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. Другие порты или узлы могут быть написаны на любом языке.
person Hynek -Pichi- Vychodil    schedule 13.02.2009

Из FAQ по Erlang:

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

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

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

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

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

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

person Tamas Czinege    schedule 13.02.2009
comment
Спасибо! Каков источник этой цитаты? - person Max Heiber; 21.03.2020

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

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

person Saeed Zarinfam    schedule 11.06.2013
comment
Мне просто любопытно, какие части написаны на C ++. - person csyangchen; 06.10.2015
comment
@csyangchen none, это ложное срабатывание при обнаружении типа файла счетчика строк. - person Hauleth; 19.10.2019
comment
Части привязок WX написаны на C ++. - person Roger Lipscombe; 22.11.2019

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

person Gadrawin    schedule 22.11.2019