Мова програмування rust: утиліти, документація, ідеологія і синтаксис

Відео: 008. Rust - краще, ніж C ++ - Степан Кольцов

Утиліти і документація
Мова програмування Rust: утиліти, документація, ідеологія і синтаксис

На сьогоднішній день синтаксис Rust підтримується в vim і emacs за допомогою що поставляються разом з компілятором синтаксичних файлів.
Є також синтаксичні пакети для популярного пропрієтарного редактора Sublime Text 2 і вільного редактора Kate. Підтримки Rust в IDE поки немає. Підтримка отладчиков, судячи з усього, теж відсутня.

Разом з компілятором rustc поставляються наступні утиліти:
gt; rustdoc - утиліта для автоматичної генерації документації з вихідного коду на зразок Doxygen;
gt; rustpkg - менеджер пакетів, що дозволяє легко встановлювати додаткові пакети і бібліотеки;



gt; rusti - так звана REPL-утиліта (read-eval-print-loop). По суті це тестовий інтерпретатор, який приймає вираз на Rust з командного рядка, компілює його у внутрішнє представлення LLVM, виконує і виводить результат;
gt; rust - універсальна утиліта, яка запускає інші утиліти або компілятор в залежності від параметрів. У мене вона так і не запрацювала.




Вся доступна документація по мові зібрана на офіційному сайті rust-lang.org. Є докладний посібник (https://static.rust-lang.org/doc/tutorial.html) - вичерпна формальна документація з усіх нюансів синтаксису, моделі пам`яті, системі часу виконання і т.п., а також документація по вбудованій бібліотеці core і стандартної бібліотеці std. Вся документація англомовна. Російською мовою актуальних матеріалів немає, а пара наявних оглядових статей вже встигли сильно втратити свою актуальність.

Ідеологія і синтаксис

Rust відноситься до Сі-подібним мовам, які використовують фігурні дужки для виділення блоків коду. Мова є «мультіпарадігменним», тобто дозволяє писати код в імперативно-процедурної, об`єктно-орієнтованої, конкурентної або функціональної манері. Rust компілюється в нативний бінарний код на будь-який підтримуваної платформі (використовує LLVM як бекенда). В теорії код на Rust не повинен поступатися в швидкості коду на C / C ++. Rust позиціонується як системний мову, однак в ньому немає вбудованої підтримай блоків коду на асемблері як в «справжніх» системних мовах С, С ++ або D.

Модель пам`яті Rust спочатку не допускає появи нульових або «висячих» покажчиків і переповнень буфера. Є опціональний збирач сміття, що працює тільки в межах однієї нитки коду. У мови є вбудована підтримка легковагій багатозадачності і комунікацій між нитками за допомогою обміну повідомленнями. Розділяється пам`яті (shared memory) в Rust не існує в принципі. Всі змінні поділяються на стекові, змінні купи для даного потоку, і змінні так званої «обмінній» купи, які можуть читатися усіма потоками, але не можуть ними змінюватися. Це автоматично виключає «заклинювання» (deadlock), яке вважається бичем многопоточного програмування. ABI мови сумісний з Сі, тому програми на Rust можуть компонуватись з бібліотеками, написаними на Сі без додаткових обгорток. Для потреб низкоуровневого системного програмування і для забезпечення сумісності з Сі в мові є особливий «небезпечний» режим без перевірки коректності покажчиків. За своєю ідеологією Rust найближче до мови Go. Так само, як і в Go, основний акцент зроблено на простоті многопоточного програмування і швидкості розробки масштабних програм, а синтаксис місцями так само незвичний і в чомусь дивний. У той же час Rust не так мінімалістичний, як Go, і претендує на роль системного мови.

Синтаксис Rust здебільшого запозичений з С і С ++ з домішкою ідей з мов Go, C #, Haskell, Python і Ruby. Не буду вичерпно описувати синтаксис мови, а зупинюся лише на найбільш цікавих концепціях.

ІНШЕ

Clang і llvm - у gcc є конкурент фото

Clang і llvm - у gcc є конкурент

Відео: GCC or LLVM? Зв`язку Clang і LLVM часто згадують як заміну GCC - не зараз, але в перспективі. Що ж таке Clang і…

Знайомство з wix фото

Знайомство з wix

Відео: Презентація проекту і Знайомство Золотова Антоніна Ця стаття присвячена створенню настановних пакетів програмних…

Мова програмування go фото

Мова програмування go

Відео: Топ-4 Кращих Мови програмування для Початківців | ТОП Мова програмування Go (https://qoianq.org/) з`явився в 2007…

» » Мова програмування rust: утиліти, документація, ідеологія і синтаксис