Новости IT, хостинга
  Android, Apple, Facebook, Google, Linux, Microsoft, Samsung, Twitter, Интернет, Россия, браузеры, обновление ПО, онлайн-сервисы, операционные системы, планшеты, рынок ИТ, сделки, смартфоны, социальные сети, уязвимости  
  новостей: 10356
  комментариев: 2242

Выпуск языка программирования Rust 0.9, развиваемого проектом Mozilla


Проект Mozilla представил выпуск Rust 0.9, экспериментального языка программирования со строгой типизацией, сфокусированного на безопасной работе с памятью и обеспечению высокого параллелизма выполнения заданий (возможность порождать тысячи и даже миллионы подпроцессов). Исходные тексты проекта распространяются под лицензией MIT. Параллельно с Rust совместно с компанией Samsung развивается экспериментальный браузерный движок Servo, написанный на языке Rust и отличающийся поддержкой многопоточного рендеринга web-страниц и распараллеливанием операций с DOM (Document Object Model).

С момента прошлого выпуска внесено около 1800 изменений. Наиболее заметные улучшения внесены в runtime-компоненты и подсистему организации ввода/вывода. Добавлена поддержка статического связывания и оптимизаций на стадии компоновки (link-time optimization). Сокращено разнообразие замыканий в языке, в замыканиях теперь может быть использовано ключевое слово return. Внесены финальные изменения в методы обработки указателей, которые ознаменовали добавление в стандартную библиотеку "умных" типов указателей (smart pointer) и перевод в разряд устаревших встроенного типа управляемых указателей (managed pointer) и сопровождающего его знака "@".

По структуре язык Rust напоминает C++, но существенно отличается в некоторых деталях реализации синтаксиса и семантики, а также ориентацией на блочную организацию структуры кода, которая позволяет реализовать задачи в виде легковесных сопрограмм. Автоматическое управление памятью избавляет разработчика от манипулирования указателями и защищает от проблем, возникающих из-за низкоуровневой работы с памятью, таких как обращение к области памяти после её освобождения, разыменование нулевых указателей, выход за границы буфера и т.п. Rust поддерживает смесь императивных процедурных и объектно-ориентированных методов с такими парадигмами, как функциональное программирование и модель акторов, а также обобщённое программирование и метапрограммирование, в статических и динамических стилях.

Базовые возможности языка:

Ориентация на безопасность:
Аккуратная работа с памятью - никаких нулевых и потерянных указателей. Автоматическое управление памятью;
Контроль изменчивости. Объекты неизменяемы (Immutable) по умолчанию;
Безопасность динамического выполнения: обработка сбоев, исключения, ведение лога, RAII / dtors;
Typestate: возможность определения сложных инвариантов, контролирующих структуры данных.
Ориентация на параллельность и эффективность кода:
Явный контроль памяти, контролирование схемы распределения памяти;
Крайне легкие задачи, формируемые в виде сопрограмм. Лёгкость в порождении тысяч и миллионов подпроцессов;
Итераторы стека (фактически лямбда-блоки без распределения кучи);
Статическая, нативная компиляция с созданием исполняемых файлов ELF, PE, Mach-o;
Прямой и простой интерфейс для кода на языке Си;
Ориентация на практическое применение:
Мультипарадигмальный, функциональный, императивно-процедурный, объектно-ориентированный, поддерживающий параллельную actor-модель;
Функции высшего порядка с биндингами;
Нет номинальных типов или иерархии типов;
Мультиплатформенный, поддерживается Windows, Linux, Mac OS X, *BSD;
Хранение строк в UTF8, разнообразие низкоуровневых типов;
Работает с существующими нативными наборами инструментов: GDB, Valgrind, Shark и т.д.;
Практическая возможность нарушения правил: возможность игнорирования правил безопасности, если чётко указано, когда и как их нарушать.


Источник: opennet.ru

  12 января 2014 489
Версия для печати

← предыдущая новость следующая новость →

Мой комментарий
Ваше имя*:
Email:
Комментарий*:
Зарегистрироваться автоматически: Вы будете зарегистрированы на сайте автоматически при добавлении комментария. Обязательно заполните поле Email для этого.
Сумма чисел 4 и 18*:            


Хостеры (2444)
HostDB (35)
Софт (2640)
Железо (993)
Интернет (1435)
Статистика и аналитика (3324)




Отправить сообщение администратору

Сумма чисел 17 и 7*:


Яндекс цитирования
сообщить о неточности