Что написано в Эрланге?
Что такое реализация Erlang и Erlang/OTP от Ericsson, написанная и скомпилированная? Является ли сборка, C или Erlang самой?
Обновление 1: Спасибо DrJokepu. Если я правильно понимаю, компилятор Erlang source-to-VM написан в самом Erlang. Но VM написано на C.
Обновление 2: Hynek-Pichi-Vychodil отметил много деталей.
- VM и HW взаимодействующие драйверы: в C.
- Компилятор (для VM) и библиотеки: в Erlang.
- Расширения: возможно на любом языке, написав порт или Erlang node на этом языке.
Ответы
Ответ 1
Сам Эрланг написан в Эрланге. Звучит странно? Да, потому что это отчасти верно. Осмотрите его более подробно:
- Препроцессор Erlang написан в Erlang.
- Парсер Erlang написан в Erlang.
- Компилятор Erlang для BEAM (байт-код VM) написан в Erlang.
- Компилятор Erlang для HiPE (собственное расширение VM) написан в Erlang.
- Erlang VM BEAM и HiPE написаны в основном в C.
- Входящие драйверы написаны в основном на C. (Они подключены к виртуальной машине и поддерживают связь с внешним миром.)
- OTP написан в Erlang.
- Другие порты или узлы могут быть записаны на любом языке.
Ответ 2
Из Часто задаваемые вопросы Erlang:
10.7 Как был записан первый компилятор Erlang?
(или: как был загружен Erlang?). Джо слова:
Сначала я разработал абстрактную машину для выполнения Эрланг. Это называлось Машина JAM; JAM = Joe Аннотация Машина.
Затем я написал компилятор из Erlang в JAM и эмулятор, чтобы увидеть, машина работала. Оба эти написанный в прологе.
В то же время Майк Уильямс написал C для JAM.
Затем я переписал erlang-to-jam компилятор в Erlang и использовал пролог компилятор для его компиляции. Полученный результат объект-код запускался в эмуляторе C. Затем мы выбросили пролог.
Ответ 3
- 65.9% кода erlang написано в Erlang.
- 13.4% erlang написано в XML.
- 13.6% erlang написано на C.
- 1.4% erlang написано на С++
- ...
Вы можете просмотреть статистику в реальном времени и обновления на ohloh, этот отчет создается из основного репозитория erlang git.