высокопроизводительная среда выполнения

Я впервые задаю вопрос на этом форуме. Я задаю общий вопрос. Мне не нужно разрабатывать приложение для конкретной цели. После долгих поисков в Google я все еще не нашел язык / среду выполнения / скриптовый движок / виртуальную машину, которые соответствовали бы этим 5 требованиям:

  1. выделение памяти переменных / значений или объектов, очищаемых во время выполнения (например, как C ++, которые используют удаление ключевого слова или освобождение в C)
  2. язык (и, следовательно, программа) представляет собой сценарий или псевдо-скомпилированный а-ля байтовый код, который должен быть переносимым в основную операционную систему (windows, linux, * bsd, solaris) и платформу (32 / 64bit)
  3. родное использование многоядерности (движок / время выполнения)
  4. нет ограничений на использование кучи
  5. библиотека для сети

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

Извините за мой плохой английский.

Люк


person user1202456    schedule 10.02.2012    source источник
comment
Я не понимаю, почему C ++ не работает. Вы читали о RAII? В противном случае можно использовать интеллектуальные указатели. Очень редко вам нужно использовать new или delete.   -  person Cody Gray    schedule 10.02.2012
comment
@CodyGray он говорит о переносимости двоичного уровня во втором своем требовании.   -  person Sedat Kapanoglu    schedule 10.02.2012
comment
@ user1202456, можете ли вы оправдать свое первое требование? зачем тебе это нужно?   -  person Sedat Kapanoglu    schedule 10.02.2012
comment
Спасибо за внимание. Я просто хотел знать, может ли быть скриптовый движок или виртуальная машина без сборщика мусора, но с мгновенной очисткой объектов после использования. Это ограничило бы бесполезную трату памяти во время выполнения (и без задержек из-за очистки), однако я понимаю, что этот язык был бы намного опаснее.   -  person user1202456    schedule 12.02.2012


Ответы (1)


Я думаю, что Erlang может соответствовать вашим требованиям:

  1. большая часть данных либо размещается в локальных областях, и поэтому сразу же удаляется после использования, либо содержится в постоянном хранилище на основе библиотеки, таком как ETS, DETS или Mnesia. Хотя есть сборка мусора, но парадигма языка делает необходимость в ней не столь важной.
  2. the Erlang compiler compiles the source code to the BEAM virtual machine byte code, which, unlike Java is register-based and thus much faster. The VM is available for:
    • Solaris (including 64 bit)
    • BSD
    • Linux
    • OSX
    • TRU64
    • Windows NT / 2000/2003 / XP / Vista / 7
    • VxWorks
  3. Erlang был разработан для распределенных систем, параллелизма и надежности с первого дня.
  4. Куча Erlang растет вместе с вашими потребностями, она изначально ограничена и автоматически расширяется (есть множество настроек, которые вы можете использовать для настройки для каждой виртуальной машины)
  5. Erlang имеет опыт работы в сети и предоставляет множество библиотек от IP до протоколов более высокого уровня.
person jupp0r    schedule 13.02.2012
comment
большое спасибо! только сомнение: что вы подразумеваете под надежностью с первого дня? - person user1202456; 14.02.2012
comment
Я имею в виду, что эти функции были фундаментальным критерием дизайна, а не функцией, добавленной позже, как в других языках / системах. - person jupp0r; 14.02.2012