limbaj de programare From Wikipedia, the free encyclopedia
Rust este un limbaj de programare[17] axat pe siguranță, în special concurența sigură.[18][19] Rust este similar sintactic cu C++,[20] dar este conceput pentru a oferi o mai bună siguranță a memoriei, menținând în același timp performanțe ridicate.
Această pagină (secțiune) necesită o verificare. De verificat: termanii informatici Ștergeți eticheta numai după rezolvarea problemelor. |
Rust | |
Rust logo | |
Extensii fișiere | .rs, .rlib |
---|---|
Paradigmă | Multi-paradigm, calcul simultan, funcțional, generic, imperativă, structurată |
Apărut în | 7 iulie 2010 |
Proiectat de | Graydon Hoare |
Dezvoltator | Mozilla |
Ultima versiune | 1.82.0[1] |
Tipare | inference typing[*] nominative typing[*] static typing[*] strong typing[*] linear typing[*] Hindley–Milner[*] |
Influențat de | Alef,[2] C#,[2] C++,[2] Cyclone,[2][3] Erlang,[2] Haskell,[2] Limbo,[2] Newsqueak,[2] OCaml,[2] Ruby,[2] Scheme,[2] Standard ML,[2] Swift[2][4] |
Influențe | Crystal, Elm,[5] Idris,[6] Spark,[7] Swift,[8] Project Verona[9] |
Platformă | ARM, IA-32, x86-64, MIPS, PowerPC, SPARC, RISC-V[10][11] |
Sistem de operare | Linux, macOS, Windows, FreeBSD, OpenBSD,[12] Redox, Android, iOS[13] |
Licență | MIT or Apache 2.0[14] |
Tip MIME | text/x-rust[15] text/rust[16][15] |
Prezență online | www.rust-lang.org |
Modifică date / text |
Rust a fost proiectat inițial de Graydon Hoare la Mozilla Research, cu contribuții de la Dave Herman, Brendan Eich și alții.[21][22] Designerii au perfecționat limbajul în timp ce scriau macheta Servo sau motorul browserului,[23] ș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.[24][25][26][27]
Rustul este destinat să fie un limbaj pentru sisteme foarte concurente și extrem de sigure,[28] și programarea în mare, adică crearea și menținerea de limite care păstrează integritatea sistemului mare.[29] Acest lucru a dus la un set de caracteristici cu accent pe siguranță, controlul dispunerii memoriei și concurență.
Performanța Rust idiomatic este comparabilă cu performanța idiomatică C ++.[30][31]
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,[32] 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.
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.[33][34][35][36] Valorile datelor pot fi inițializate doar printr-un set fix de formulare, care necesită deja inițializarea intrărilor lor.[37] 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.
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.
Rust are un sistem de proprietate în care toate valorile au un proprietar unic, iar sfera valorii este aceeași cu sfera proprietarului.[38][39] 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.
Iată un simplu „Program Hello, world!” program scris în Rust. println!
macro imprimă mesajul la ieșire standard.
fn main() {
println!("Hello World!");
}
fn factorial(i: u64) -> u64 {
match i {
0 => 1,
n => n * factorial(n-1)
}
}
fn factorial(i: u64) -> u64 {
let mut acc = 1;
for num in 2..=i {
acc *= num;
}
acc
}
fn factorial(i: u64) -> u64 {
(1..=i).product()
}
Seamless Wikipedia browsing. On steroids.
Every time you click a link to Wikipedia, Wiktionary or Wikiquote in your browser's search results, it will show the modern Wikiwand interface.
Wikiwand extension is a five stars, simple, with minimum permission required to keep your browsing private, safe and transparent.