Вопрос

Другой нить была эта цитата

  1. Erlang VM BEAM и HiPE написаны в основном на C.
  2. Связанные драйверы написаны в основном на C.(Они подключены к виртуальной машине и служат общению с внешним миром.)

Я читал некоторые мнения о том, что строгая типизация Ады, модульность, проверка во время выполнения, параллельная обработка и т. д.и т. д.лучше, чем у C.

Будет ли Erlang, скомпилированный с использованием Ada, заметно лучше или хуже, чем Erlang, созданный с помощью C?

Просто гипотетический вопрос.

Это было полезно?

Решение

Обычно я бы бросил в тебя кучу грубых словечек на подобную тему, но оказывается именно этот вопрос был изучен (это файл .doc.Извини).

У Rational был компилятор с большим объемом кода на обоих языках и большим объемом данных, собранных за несколько лет о частоте ошибок, времени исправления и т. д.Из любопытства один из их инженеров подсчитал цифры.

Ответ был: «Затраты на разработку C превышают затраты на Ada».Если вы прочитаете заголовок краткого изложения, вы увидите, что они решили написать тот же код на Ada стоил им примерно вдвое дешевле, чем написание его на C.

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

Другие советы

«Лучше» в каком смысле?Лучше, как быстрее?Лучше, чем меньше ошибок?Лучше, чем более портативный?Лучше как более читаемый?Лучше, как более расширяемый?

Для любого подходящего определения «лучшего» аргументы могут быть приведены в любом случае.Однако это священное писание, что ни один компилируемый язык не является более переносимым, чем C.Таким образом, если одна из ваших целей — сделать ваше приложение легко переносимым, C — отличный выбор.

Больше людей понимают C, чем Ada.Написание расширений erlang могло бы быть намного сложнее, если бы они были написаны на Ada, просто потому, что с этим языком знакомо меньше людей.

Код C может быть высокопроизводительным, но мне не известно о каких-либо сравнениях между C и Ada с оптимизацией компилятора.

Проверка типов в Аде может оказаться полезной, а может стать настоящей проблемой.Предполагается, что виртуальная машина выполняет собственную проверку типов тех частей, которые для нее важны.Накладные расходы на RTTC в Ada могут стать совершенно ненужной нагрузкой.

Возможно, но на каком языке был написан ваш компилятор Ады?Ада?А как насчет компилятора, который напишет ваш ПЕРВЫЙ компилятор Ada?

В какой-то момент, когда вы создаете программное обеспечение, формальная семантика и программные процессы становятся гораздо более важными, чем то, на каком языке что-то было написано.

Лицензировано под: CC-BY-SA с атрибуция
Не связан с StackOverflow
scroll top