¿En qué está escrito Erlang?

111

¿En qué está escrita y compilada la implementación de Ericsson de Erlang y Erlang / OTP? ¿Es montaje, C o Erlang en sí?

Actualización 1: Gracias a DrJokepu. Si lo entiendo correctamente, el compilador de fuente a máquina virtual de Erlang está escrito en Erlang. Pero la VM está escrita en C.

Actualización 2: Hynek-Pichi-Vychodil señaló muchos detalles.

  • Controladores interactivos VM y HW: en C.
  • Compilador (a VM) y bibliotecas: en Erlang.
  • Extensiones: posible en cualquier idioma escribiendo un puerto o un nodo Erlang en ese idioma.
CDR
fuente
17
Erlang es de código abierto. ¡Ve a ver el código y echa un vistazo!
rfunduk

Respuestas:

140

Erlang en sí está escrito en Erlang. ¿Suena extraño? Sí, porque es solo parcialmente cierto. Bien, míralo con más detalle:

  1. El preprocesador de Erlang está escrito en Erlang.
  2. El analizador de Erlang está escrito en Erlang.
  3. El compilador de Erlang para BEAM (VM de código de bytes) está escrito en Erlang.
  4. El compilador de Erlang para HiPE (extensión nativa de VM) está escrito en Erlang.
  5. Erlang VM BEAM e HiPE está escrito principalmente en C.
  6. Los controladores vinculados están escritos principalmente en C. (Están conectados a la VM y sirven para comunicarse con el mundo exterior).
  7. OTP está escrito en Erlang.
  8. Otros puertos o nodos se pueden escribir en cualquier idioma.
Hynek -Pichi- Vychodil
fuente
91

De las preguntas frecuentes de Erlang :

10.6 ¿Cómo se escribió el primer compilador de Erlang?

(o: ¿cómo se inició Erlang? ) En palabras de Joe:

Primero diseñé una máquina abstracta para ejecutar Erlang. Esto se llamó la máquina JAM; JAM = Máquina abstracta de Joe.

Luego escribí un compilador de Erlang a JAM y un emulador para ver si la máquina funcionaba. Ambos fueron escritos en prólogo.

Al mismo tiempo, Mike Williams escribió un emulador de C para JAM.

Luego reescribí el compilador erlang-to-jam en Erlang y usé el compilador prolog para compilarlo. El código objeto resultante se ejecutó en el emulador C. Luego tiramos el prólogo.

Tamas Czinege
fuente
1
¡Gracias! ¿Cuál es la fuente de esta cita?
Max Heiber
15
  • El 65,9% del código erlang está escrito en Erlang.
  • El 13,4% de erlang está escrito en XML.
  • El 13,6% de erlang está escrito en C.
  • 1.4% de erlang está escrito en C ++
  • ...

Puede ver estadísticas en vivo y actualizadas en el sitio de ohloh , este informe se genera desde el repositorio principal de erlang git.

Saeed Zarinfam
fuente
Solo tengo curiosidad por saber qué partes están escritas en c ++.
csyangchen
@csyangchen none, esta es la detección de tipo de archivo de contador de línea falsa positiva.
Hauleth
Partes de los enlaces WX están escritas en C ++.
Roger Lipscombe
-1

Puedo decir que Erlang fue escrito inicialmente en C / C ++ ya que no puedo decir que Java esté escrito en java ... pero es framework y algunas bibliotecas. Acerca de Erlang, As Its es el lenguaje de programación preferido y adecuado para el sistema Telecom ... para mantener la rapidez (por ejemplo: en chat-bots) Sé que su compilador o preprocesador está escrito en Erlang. Pero otras características del lenguaje están escritas en idiomas de bajo nivel.

Gadrawin
fuente