O que está escrito em Erlang?


111

Qual é a implementação de Erlang e Erlang / OTP da Ericsson escrita e compilada? É a montagem, C ou o próprio Erlang?

Atualização 1: Graças ao DrJokepu. Se bem entendi, o compilador fonte-para-VM Erlang é escrito no próprio Erlang. Mas a VM é escrita em C.

Atualização 2: Hynek-Pichi-Vychodil apontou muitos detalhes.

  • Drivers que interagem com VM e HW: em C.
  • Compilador (para VM) e bibliotecas: em Erlang.
  • Extensões: Possíveis em qualquer idioma, escrevendo uma porta ou um nó Erlang nesse idioma.

17
Erlang tem código aberto. Vá verificar o código e dê uma olhada!
rfunduk

Respostas:


140

O próprio Erlang é escrito em Erlang. Soa estranho? Sim, porque é apenas parcialmente verdadeiro. OK, veja com mais detalhes:

  1. O pré-processador Erlang é escrito em Erlang.
  2. O analisador Erlang é escrito em Erlang.
  3. Compilador Erlang para BEAM (código de byte VM) é escrito em Erlang.
  4. O compilador Erlang para HiPE (extensão VM nativa) é escrito em Erlang.
  5. Erlang VM BEAM e HiPE é escrito principalmente em C.
  6. Os drivers vinculados são escritos principalmente em C. (eles são conectados à VM e fornecem comunicação com o mundo externo).
  7. OTP é escrito em Erlang.
  8. Outras portas ou nós podem ser escritos em qualquer idioma.

91

Do Erlang FAQ :

10.6 Como o primeiro compilador Erlang foi escrito?

(ou: como o Erlang foi bootstrapped? ) Nas palavras de Joe:

Primeiro, projetei uma máquina abstrata para executar Erlang. Isso foi chamado de máquina JAM; JAM = Máquina Abstrata de Joe.

Então escrevi um compilador de Erlang para JAM e um emulador para ver se a máquina funcionava. Ambos foram escritos em prólogo.

Ao mesmo tempo, Mike Williams escreveu um emulador C para o JAM.

Então eu reescrevi o compilador erlang-to-jam em Erlang e usei o compilador Prolog para compilá-lo. O código do objeto resultante foi executado no emulador C. Então jogamos fora o prólogo.


1
Obrigado! Qual é a fonte desta citação?
Max Heiber

15
  • 65,9% do código erlang é escrito em Erlang.
  • 13,4% do erlang é escrito em XML.
  • 13,6% do erlang é escrito em C.
  • 1,4% do erlang é escrito em C ++
  • ...

Você pode ver as estatísticas ao vivo e atualizadas no site ohloh , este relatório é gerado a partir do repositório principal erlang git.


Estou apenas curioso para saber quais partes são escritas em c ++.
csyangchen

@csyangchen nenhum, esta é a detecção de tipo de arquivo do contador em linha falso-positivo.
Hauleth

Partes das ligações WX são escritas em C ++.
Roger Lipscombe

-1

Posso dizer que Erlang foi escrito inicialmente em C / C ++, pois não posso dizer que Java é escrito em java .... mas é um framework e algumas bibliotecas. Sobre Erlang, Como sua linguagem de programação preferida e adequada para sistema de Telecom ... para manter a rapidez (ex: em chat-bots) eu sei que seu compilador ou PreProcessor é escrito em Erlang. Mas outros recursos da linguagem são escritos em linguagens de baixo nível.

Ao utilizar nosso site, você reconhece que leu e compreendeu nossa Política de Cookies e nossa Política de Privacidade.
Licensed under cc by-sa 3.0 with attribution required.