Pergunta

O que é a implementação de Erlang e Erlang / OTP da Ericsson escrito e compilado em? É é montagem, C ou Erlang si?

Update 1: Graças a DrJokepu. Se bem entendi, Erlang compilador fonte-para-VM está escrito em si Erlang. Mas a VM é escrito em C.

Update 2: Hynek-Pichi-Vychodil apontou um monte de detalhes

.
  • VM e HW interagindo drivers:. Em C
  • Compiler (a VM) e bibliotecas:. Em Erlang
  • Extensões:. Possível em qualquer idioma, escrevendo um porto ou um nó Erlang nesse idioma
Foi útil?

Solução

si Erlang é escrito em Erlang. Soa estranho? Sim, porque é apenas parcialmente verdadeiro. olhar OK para ele com mais detalhes:

  1. Erlang pré-processador é escrito em Erlang.
  2. parser
  3. Erlang é escrito em Erlang.
  4. Erlang compilador para BEAM (byte-code VM) é escrito em Erlang.
  5. Erlang compilador para HiPE (extensão nativa VM) é escrito em Erlang.
  6. Erlang VM BEAM e HiPE é escrito principalmente em C.
  7. Linked-in drivers são escritos principalmente em C. (Eles estão conectados a VM e serve comunicação com o mundo exterior.)
  8. OTP é escrito em Erlang.
  9. Outro portos ou os nós podem ser escritos em qualquer idioma.

Outras dicas

A partir da Erlang FAQ :

10,7 Como o primeiro compilador Erlang são escritos?

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

Em primeiro lugar eu projetei uma máquina abstrata para executar Erlang. Isto foi chamado a JAM máquina; JAM = Resumo de Joe Máquina.

Então eu escrevi um compilador de Erlang para JAM e um emulador para ver se o máquina funcionou. Ambos estes foram escrito em Prolog.

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

Então eu reescrevi o erlang-se jam compilador em Erlang e utilizado o Prolog compilador para compilá-lo. o resultante código de objecto foi executado no emulador C. Em seguida, jogou fora prolog.

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

Você pode ver um ao vivo e atualizar estatísticas em Ohloh local , este relatório gerar a partir principal erlang git repositório.

Licenciado em: CC-BY-SA com atribuição
Não afiliado a StackOverflow
scroll top