На какво е написан Erlang?

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

Актуализация 1: Благодарение на DrJokepu. Ако разбирам правилно, компилаторът източник към VM на Erlang е написан на самия Erlang. Но VM е написан на C.

Актуализация 2: Hynek-Pichi-Vychodil посочи много подробности.

  • VM и HW взаимодействащи драйвери: в C.
  • Компилатор (към VM) и библиотеки: в 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 (байт-код VM) е написан на Erlang.
  4. Компилаторът Erlang към HiPE (родно разширение на VM) е написан на Erlang.
  5. Erlang VM BEAM и HiPE е написан предимно на C.
  6. Свързаните драйвери са написани предимно на C. (Те са включени към VM и обслужват комуникация с външния свят.)
  7. OTP е написан на Erlang.
  8. Други портове или възли могат да бъдат написани на всеки език.
person Hynek -Pichi- Vychodil    schedule 13.02.2009

От често задавани въпроси за Erlang:

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

(или: как беше стартиран Erlang?) По думите на Джо:

Първо проектирах абстрактна машина за изпълнение на Erlang. Това се нарича JAM машина; JAM = Абстрактната машина на Джо.

След това написах компилатор от Erlang към JAM и емулатор, за да видя дали машината работи. И двете са написани в пролог.

По същото време Майк Уилямс написа C емулатор за JAM.

След това пренаписах компилатора erlang-to-jam в Erlang и използвах компилатора prolog, за да го компилирам. Полученият обектен код беше стартиран в 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, този отчет се генерира от основното хранилище на git на erlang .

person Saeed Zarinfam    schedule 11.06.2013
comment
Просто съм любопитен кои части са написани на c++. - person csyangchen; 06.10.2015
comment
@csyangchen няма, това е фалшиво-положителното откриване на файловия тип на брояча в ред. - person Hauleth; 19.10.2019
comment
Части от WX свързванията са написани на C++. - person Roger Lipscombe; 22.11.2019

Мога да кажа, че Erlang първоначално е написан на C/C++, тъй като не мога да кажа, че Java е написана на java... но това е рамка и някои библиотеки. Относно Erlang, тъй като е предпочитан език за програмиране и е подходящ за телекомуникационна система... за да се поддържа бързина (напр.: в чат-ботове), знам, че неговият компилатор или препроцесор е написан на Erlang. Но други характеристики на езика са написани на езици от ниско ниво.

person Gadrawin    schedule 22.11.2019