Есть ли язык со скоростью C / C ++, но без переполнения буфера и имеет сборщик мусора? - PullRequest
0 голосов
/ 30 июля 2011

Я ищу язык программирования, быстрый, как C и C ++, с сборщиком мусора и не подверженный переполнению буфера. Я ищу что-то между Java / C # и C / C ++. Есть ли такой язык?

Ответы [ 3 ]

3 голосов
/ 30 июля 2011

Проверка на переполнение буфера и сбор мусора имеет свою цену: если вам нужны эти функции, то вы не получите скорость C / C ++. Компромисс.

Java и C # очень, очень близки к скорости C ++ в большинстве типов приложений, поэтому, если вам не нужно что-то очень конкретное, я предлагаю вам использовать один из этих двух языков.

Если вам просто нужен сборщик мусора для C ++, вы можете получить его здесь .

2 голосов
/ 30 июля 2011

Язык "скорость" сильно зависит от приложения. JVM чертовски быстр для определенных видов кода - горячая точка может быть быстрее, чем собственный код. С другой стороны, функциональный стиль и хорошая оптимизация могут позволить вам добиться хорошей производительности при меньшем количестве кода - часто приложения на Haskell работают так же быстро, как и в C.

Для реального слияния Java / C # и C ++ лучше всего искать язык D. У него есть сборка мусора, опциональный доступ к malloc и free и даже встроенная сборка для производительности на уровне C. Он имеет достаточную безопасность, чтобы быть менее подверженным переполнению буфера, но вы все равно можете их иметь. http://www.digitalmars.com/d/2.0/index.html

Вы всегда можете собрать мусор C / C ++, но это будет стоить вам. Java, Haskell, ML, даже Python могут использовать сборщики мусора, которые знают, какие значения могут быть указателями, поэтому работают быстрее, чем использование сборщика для C, C ++ или D.

2 голосов
/ 30 июля 2011

Вы можете взглянуть на D . Это скомпилированный язык с большинством функций из C ++ в дополнение к сборке мусора и некоторым другим.

...