Rust

Итак, Rust — это новый язык программирования, разрабатываемый в компании Mozilla, который обладает большим количеством интересных функциональных свойств и возможностей, среди которых особенно выделяются средства обеспечения безопасности программного кода. Очевидны попытки автора языка расширить ту категорию ошибок, которые могут быть выявлены компилятором, и таким образом предотвратить, а следовательно уменьшить количество ошибок, проникающих в готовую конечную версию программы.

Rust представляет собой язык программирования с блочной структурой, где блоки выделяются фигурными скобками, и внешне напоминает С-подобные языки, но тем не менее, существенно отличается от них как синтаксически, так и семантически. Уже при проектировании Rust ориентировался на цели крупномасштабного (корпоративного) программирования. Основные цели этого языка — обеспечение целостности, параллельности и безопасности.

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

1. Предварительный обзор функциональных возможностей языка
Характеристики системы типов данных: static, nominal, linear, algebraic, locally inferred (локально выводимые).

Безопасная работа с памятью обеспечивается отстутствием null-указателей или «висящих» указателей, также исключено переполнение буферов.

Обобщённая настраиваемая параметризация типов с использованием классов типов.

Обработка исключений выполняется без восстановления состояния, без «обратной раскрутки» (unwinding), с изоляцией (обрабатываемой) задачи.

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

Компилятор и все вспомогательные инструментальные средства публикуются под двойной лицензией: MIT / Apache 2.

2. Краткая история
Rust начинался, как личный проект разработчика компании Mozilla Грэйдона Хоара (Graydon Hoare) в 2006 году. Компания заинтересовалась разработкой в 2009 г. и взяла проект под свою опеку. В 2010 г. основной акцент разработки был перенесён на создание компилятора rustc, который мог бы компилировать себя сам (до этого компилятор для сборки Rust был написан на языке OCaml), в это же время впервые была опубликована информация о новом языке программирования Rust. И уже в 2011 г. задача самокомпиляции была успешно решена. В качестве бэкэнда rustc использует LLVM.

В январе 2012 г. был представлен первый альфа-релиз компилятора Rust. На момент написания данной статьи текущей являлась версия 0.6, выпущенная в апреле 2013 г. Грэйдон Хоар и компания Mozilla планируют представить первую стабильную версию языка в конце 2013 года.

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

.