Почему сборки erlang включают исходники .c и .erl? - PullRequest
0 голосов
/ 05 января 2012

Я даже не новичок в Erlang, я просто использую RabbitMQ, который написан на Erlang. После того, как я запустил configure / make / make install, выходные каталоги build содержат множество файлов .c и .erl. Это необходимо? Что за этим стоит? некоторые примеры:

  • . / Библиотека / Erlang / Библиотека / erl_interface-3.7.6 / SRC / разное / show_msg.c
  • . / Библиотека / Erlang / Библиотека / cosNotification-1.1.18 / SRC / oe_CosNotification.erl

1 Ответ

2 голосов
/ 06 января 2012

Да, это необходимо.Система времени исполнения Erlang написана на C, а большая часть стандартной библиотеки написана на Erlang.

В чем причина этого?

Какая альтернатива?Чтобы выполнить любой код Erlang, вы должны иметь уже запущенную систему времени выполнения, и поэтому она не может быть написана на Erlang.Он может быть написан на:

  1. Сборка

  2. C

  3. C ++ или на другом языке

  4. Erlang может выполняться без времени выполнения

Сборка, очевидно, является плохим выбором: вам придется почти полностью переписать ее для любого нового процессорацель, и это будет гораздо сложнее поддерживать.

C обеспечивает отличную производительность и портативность, и в любом случае потребуется возможность вызова кода C из Erlang.Это выбор, сделанный не только Erlang, но и Python, Ruby, Perl и т. Д.

C ++ усложняет переносимость (в некоторых ОС доступны компиляторы C, но нет компиляторов C ++; качество компиляторов C ++ варьируетсяБольше);другие языки - даже в большей степени (наряду с производительностью, возможно, требующей их собственной среды выполнения и т. д.).

Последний вариант сделает Erlang совершенно другим языком.

Добро пожаловать на сайт PullRequest, где вы можете задавать вопросы и получать ответы от других членов сообщества.
...