What is Erlang written in?
From the Erlang FAQ:
10.6 How did the first Erlang compiler get written?
(or: how was Erlang bootstrapped?) In Joe's words:
First I designed an abstract machine to execute Erlang. This was called the JAM machine; JAM = Joe's Abstract Machine.
Then I wrote a compiler from Erlang to JAM and an emulator to see if the machine worked. Both these were written in prolog.
At the same time Mike Williams wrote a C emulator for the JAM.
Then I rewrote the erlang-to-jam compiler in Erlang and used the prolog compiler to compile it. The resultant object code was run in the C emulator. Then we threw away prolog.
Erlang itself is written in Erlang. Sounds strange? Yes, because it is only partially true. OK look at it in more detail:
- Erlang preprocessor is written in Erlang.
- Erlang parser is written in Erlang.
- Erlang compiler to BEAM (byte-code VM) is written in Erlang.
- Erlang compiler to HiPE (native VM extension) is written in Erlang.
- Erlang VM BEAM and HiPE is written mostly in C.
- Linked-in drivers are written mostly in C. (They are plugged to VM and serves communication with outside world.)
- OTP is written in Erlang.
- Another ports or nodes can be written in any language.
- 65.9% of erlang code is written in Erlang.
- 13.4% of erlang is written in XML.
- 13.6% of erlang is written in C.
- 1.4% of erlang is written in C++
- ...
You can see a live and update statistics in ohloh site, this report generate from main erlang git repository.