Rust este un limbaj de programare axat pe siguranță, în special concurența sigură. Rust este similar sintactic cu C++, dar este conceput pentru a oferi o mai bună siguranță a memoriei, menținând în același timp performanțe ridicate.
Rust a fost proiectat inițial de Graydon Hoare la Mozilla Research, cu contribuții de la Dave Herman, Brendan Eich și alții. Designerii au perfecționat limbajul în timp ce scriau macheta Servo sau motorul browserului, și compilatorul Rust. Compilatorul este un software gratuit și open-source cu licență dublă sub Licența MIT și Licența Apache 2.0.
Rust a fost „cel mai îndrăgit limbaj de programare” de la Stack Overflow Developer Survey în fiecare an începând cu 2016.
Design Rustul este destinat să fie un limbaj pentru sisteme foarte concurente și extrem de sigure, și programarea în mare, adică crearea și menținerea de limite care păstrează integritatea sistemului mare. Acest lucru a dus la un set de caracteristici cu accent pe siguranță, controlul dispunerii memoriei și concurență.
Performanța Rust idiomatic Performanța Rust idiomatic este comparabilă cu performanța idiomatică C ++.
Sintaxă Sintaxa concretă a Rust este similară cu C și C++, cu blocuri de cod delimitate de paranteze cretate și cuvinte cheie de control, cum ar fi if, else, while, și for. Nu toate cuvintele cheie C sau C ++ sunt implementate, însă unele funcții Rust (cum ar fi utilizarea potrivirii cuvintelor cheie pentru potrivirea modelului) vor fi mai puțin familiare cu cele versate în aceste limbi. În ciuda asemănării superficiale cu C și C ++, sintaxa Rust în sens mai profund este mai aproape de cea a familiei ML de limbi și a limbii Haskell. Aproape fiecare parte a unui corp de funcții este o expresie, controlează chiar și operatorii de flux. De exemplu, expresia obișnuită dacă if și locul condiționatului ternar al lui C. O funcție nu trebuie să se termine cu o expresie return: în acest caz, dacă punctul virgulă este omis, ultima expresie din funcție creează valoarea returnare.
Securitatea memoriei Rust-ul este proiectat să fie în siguranță pentru memorie și, prin urmare, nu permite indicatoarele nule, indicatoarele sau cursele de date în cod sigur. Valorile datelor pot fi inițializate doar printr-un set fix de formulare, care necesită deja inițializarea intrărilor lor. Pentru a reproduce funcția în alte limbi de pointeri, fie valabilă sau NULL, cum ar fi în structurile de date de listă legată sau în arborele binar, biblioteca de bază Rust oferă un tip de opțiune, care poate fi utilizat pentru a testa dacă un pointer are Some valoari sau None. De asemenea, Rust introduce sintaxa suplimentară pentru a gestiona viața de viață, iar compilatorul motivează acest lucru prin intermediul verificatorului său de împrumut.
Gestionarea memoriei Rust nu utilizează un sistem automat de colectare a gunoiului precum cele utilizate de Go, Java sau .NET Framework. În schimb, memoria și alte resurse sunt gestionate prin convenția de achiziție a resurselor este inițializarea (RAII), cu numărarea de referință opțională. Rust asigură gestionarea deterministă a resurselor, cu cheltuieli generale foarte scăzute. Rust-ul favorizează, de asemenea, alocarea stivei de valori și nu realizează implicit box.
Există, de asemenea, un concept de referințe (folosind simbolul &), care nu implică numărarea de referințe în timp de rulare. Siguranța utilizării acestor indicatoare este verificată la timp de compilare de către verificatorul împrumutului, prevenind indicatoarele și alte forme de comportament nedefinit.
Proprietate Rust are un sistem de proprietate în care toate valorile au un proprietar unic, iar sfera valorii este aceeași cu sfera proprietarului. Valorile pot fi transmise prin referință imuabilă, folosind &T, prin referință mutabilă, folosind &mut T, sau prin valoare, folosind T. În orice moment, pot fi fie mai multe referințe imuabile, fie o referință mutabilă (o blocare implicită pentru cititori-scriitori). Compilatorul Rust aplică aceste reguli la timp de compilare și, de asemenea, verifică dacă toate referințele sunt valide.
Exemple Hello World Iată un simplu „Program Hello, world!” program scris în Rust. println! macro imprimă mesajul la ieșire standard. fn main() { println!("Hello World!"); }
Funcția factorială Recursivă fn factorial(i: u64) -> u64 { match i { 0 => 1, n => n * factorial(n-1)
Repetată fn factorial(i: u64) -> u64 { let mut acc = 1; for num in 2..=i { acc *= num;
acc }
Folosirea iteratoarelor fn factorial(i: u64) -> u64 { (1..=i).product() }
Note
Legături externe
Categorie:Mozilla Categorie:Limbaje de programare