Доступен язык программирования Rust 1.8
В состав нового выпуска принято более 1400 изменений, из которых выделяется два улучшения языка. Первым улучшением языка является возможность перегрузки операторов присвоения, таких как "+=" и "-=", что позволяет адаптировать их для манипуляции со сложными структурами данных, например, организовать суммирование элементов ассоциативных массивов. Второе изменение в языке связано с определением структур, не содержащих полей, выражение "struct Bar { }" теперь не приводит к выводу ошибки.
Из других улучшений отмечается перевод в разряд стабильных около 20 функций и методов, в основном связанных с обработкой строк UTF-16, работой со временем и перегрузкой операторов. Кроме того, представлена начальная реализация новой системы сборки, написанной на языке Rust и основанной на пакетном менеджере Cargo, который уже давно применяется для сборки программ на языке Rust. Что касается самого Cargo, то в нём представлено несколько новых команд: "cargo init" для запуска проекта в текущей директории (без создания поддиректории как в "cargo new") и "cargo metadata" для извлечения метаданных о проекте. На платформах Linux и BSD добавлена защита от исполнения кода в стеке.
Напомним, что язык Rust сфокусирован на безопасной работе с памятью и обеспечении высокого параллелизма выполнения заданий. При этом Rust обходится без использования сборщика мусора или runtime, что делает возможным создания на Rust библиотек, которые могут выступать в роли прозрачной замены библиотекам для языка Си. Для распространения библиотек на языке Rust, обеспечения сборки и управления зависимостями проектом развивается пакетный менеджер Cargo, позволяющий получить нужные для программы библиотеки в один клик. Для размещения библиотек введён в строй репозиторий crates.io.
По структуре язык Rust напоминает C++, но существенно отличается в некоторых деталях реализации синтаксиса и семантики. Автоматическое управление памятью избавляет разработчика от манипулирования указателями и защищает от проблем, возникающих из-за низкоуровневой работы с памятью, таких как обращение к области памяти после её освобождения, разыменование нулевых указателей, выход за границы буфера и т.п. Rust поддерживает смесь императивных, процедурных и объектно-ориентированных методов с такими парадигмами, как функциональное программирование и модель акторов, а также обобщённое программирование и метапрограммирование, в статических и динамических стилях.
Источник: http://www.opennet.ru/opennews/art.shtml?num=44251
|
0 | Tweet | Нравится |
|