Rust (gjuhë programimi)
E projektuar nga | Graydon Hoare |
---|---|
Doli më | maj 15, 2015 |
Emetimi i fundit | 1.82.0[1] / tetor 17, 2024 |
Tipi i disciplinës | Affine|
inferred| nominal| static|strong| |
Ndikuar nga | Stampa:Cslist |
Ndikoi në | Stampa:Cslist |
Implementation language | Rust |
Platform | Cross-platform[note 1] |
SO | Cross-platform[note 2] |
Licenca | MIT dhe Apache 2.0[note 3] |
Filename extension(s) | .rs , .rlib |
Website | rust-lang |
Rust është një gjuhë programimi shumëparadigmëshe, e qëllimeve të përgjithshme që thekson performancën, sigurinë e tipit dhe njëkohshmërinë . Ai forcon sigurinë e kujtesës —duke siguruar që të gjitha referencat të tregojnë tek kujtesa të vlefshme—pa kërkuar përdorimin e një garbage collector-i ose numërimin e referencave, teknika këto të pranishme në gjuhë të tjera të sigurta për kujtesën. Për të fuqizuar njëkohësisht sigurinë e kujtesës dhe për të parandaluar garat e njëkohshme të të dhënave, "kontrolluesi i huazimit" gjurmon jetëgjatësinë e objektit të të gjitha referencave në një program gjatë kompilimit. Rust huazon ide nga programimi funksional, duke përfshirë tipet statike, pandryshueshmërinë, funksionet e rendeve të larta dhe llojet e të dhënave algjebrike . Është popullarizuar për programimin e sistemeve . [5] [6] [7]
Zhvilluesi i softuerit Graydon Hoare e krijoi Rust si një projekt personal ndërsa punonte në Mozilla Research në 2006. Mozilla e sponsorizoi zyrtarisht projektin në vitin 2009. Që nga publikimi i parë i qëndrueshëm në maj 2015, Rust është përqafuar nga kompani të tilla si Amazon, Discord, Dropbox, Facebook ( Meta ), Google ( Alfabet ) dhe Microsoft . Në dhjetor 2022, ajo u bë gjuha e parë përveç C dhe assembly që u mbështet në zhvillimin e kernelit Linux .
Rust është shquar për rritjen e tij si një gjuhë më e re [8] [9] dhe ka qenë objekt i kërkimit akademik të gjuhëve të programimit . [10] [11] [12]
Sintaksa dhe veçoritë
[Redakto | Redakto nëpërmjet kodit]Sintaksa e Rust është e ngjashme me atë të C dhe C++, [13] [14] edhe pse shumë nga veçoritë e tij u ndikuan nga gjuhë programimi funksionale si OCaml . [15] Hoare e përshkroi Rust si "të synuar për 'zhvilluesit e frustruar të C++' " dhe theksoi veçori të tilla si siguria, kontrolli i paraqitjes së kujtesës dhe njëkohësisë . [16] Siguria në Rust përfshin garancitë e sigurisë së kujtesës, sigurinë e tipit dhe mungesën e garave të të dhënave.
Më poshtë është një program "Përshëndetje, Botë!" në Rust. Fjala kyçe fn tregon një funksion, dhe println! makro (shih Rust (gjuhë programimi) § Macros ) printon mesazhin në daljen standarde . [15] Deklaratat në Rust ndahen me pikëpresje.
fn main() {
println!("Hello, World!");
}
Ndryshoret
[Redakto | Redakto nëpërmjet kodit]Ndryshoret në Rust përcaktohen përmes fjalës kyçe let . [17] Shembulli i mëposhtëm i cakton një vlerë variablit me emrin foo
.
fn main() {
let foo = 10;
println!("The value of foo is {foo}");
}
Variablat janë të pandryshueshme vetvetiu, dhe shtimi i fjalës kyçe mut lejon që ndryshorja të ndryshohet. [17] Shembulli i mëposhtëm përdor //
, që tregon fillimin e një komenti . [17]
fn main() {
let mut foo = 10; // Ky kod nuk do të përpilohej pa shtuar "mut".
println!("Vlera e foor është {foo}");
foo = 20;
println!("Vlera e foo është {foo}");
}
Shprehjet e shumëfishta let
mund të përcaktojnë ndryshore të shumta me të njëjtin emër, të njohura si hijezim i ndryshoreve . Hijëzimi i ndryshoreve lejon transformimin e variablave pa pasur nevojë që ato të emërtohen ndryshe. [17] Shembulli i mëposhtëm deklaron një ndryshore të re me të njëjtin emër që është dyfishi i vlerës origjinale:
fn main() {
let foo = 10;
println!("Vlera e foo është {foo}");
let foo = foo * 2;
println!("Vlera e foo është {foo}");
}
Hijëzimi i ndryshoreve është gjithashtu e mundur për vlera të llojeve të ndryshme, duke shkuar nga një stringë në gjatësinë e saj:
fn main() {
let spaces = " ";
let spaces = spaces.len();
}
- ^ "Announcing Rust 1.82.0" (në anglisht). 17 tetor 2024. Marrë më 17 tetor 2024.
- ^ a b "Platform Support". The rustc book. Marrë më 2022-06-27.
{{cite web}}
: Mungon ose është bosh parametri|language=
(Ndihmë!) - ^ "The Rust Programming Language". The Rust Programming Language. 19 tetor 2022.
{{cite web}}
: Mungon ose është bosh parametri|language=
(Ndihmë!) - ^ Gabim referencash: Etiketë
<ref>
e pavlefshme; asnjë tekst nuk u dha për refs e quajturalegal
- ^ Eshwarla, Prabhu (2020-12-24). Practical System Programming for Rust Developers: Build fast and secure software for Linux/Unix systems with the help of practical examples (në anglisht). Packt Publishing Ltd. ISBN 978-1-80056-201-1.
- ^ Blandy, Jim; Orendorff, Jason (2017-11-21). Programming Rust: Fast, Safe Systems Development (në anglisht). "O'Reilly Media, Inc.". ISBN 978-1-4919-2725-0.
- ^ Blanco-Cuaresma, Sergi; Bolmont, Emeline (2017-05-30). "What can the programming language Rust do for astrophysics?". Proceedings of the International Astronomical Union (në anglisht). 12 (S325): 341–344. arXiv:1702.02951. Bibcode:2017IAUS..325..341B. doi:10.1017/S1743921316013168. ISSN 1743-9213.
- ^ Perkel, Jeffrey M. (2020-12-01). "Why scientists are turning to Rust". Nature (në anglisht). 588 (7836): 185–186. Bibcode:2020Natur.588..185P. doi:10.1038/d41586-020-03382-2. PMID 33262490. Arkivuar nga origjinali më 6 maj 2022. Marrë më 15 maj 2022.
- ^ "Rust". TIOBE.com. Arkivuar nga origjinali më 3 mars 2022. Marrë më 2022-05-15.
{{cite web}}
: Mungon ose është bosh parametri|language=
(Ndihmë!) - ^ "Computer Scientist proves safety claims of the programming language Rust". EurekAlert! (në anglisht). Arkivuar nga origjinali më 24 shkurt 2022. Marrë më 2022-05-15.
- ^ Jung, Ralf; Jourdan, Jacques-Henri; Krebbers, Robbert; Dreyer, Derek (2017-12-27). "RustBelt: securing the foundations of the Rust programming language". Proceedings of the ACM on Programming Languages. 2 (POPL): 66:1–66:34. doi:10.1145/3158154. Arkivuar nga origjinali më 11 qershor 2022. Marrë më 15 maj 2022.
{{cite journal}}
: Mungon ose është bosh parametri|language=
(Ndihmë!) - ^ Jung, Ralf (2020). Understanding and evolving the Rust programming language (Tezë) (në anglisht). Saarland University. doi:10.22028/D291-31946.
- ^ Proven, Liam (2019-11-27). "Rebecca Rumbul named new CEO of The Rust Foundation". The Register (në anglisht). Marrë më 2022-07-14.
Both are curly bracket languages, with C-like syntax that makes them unintimidating for C programmers.
- ^ Vigliarolo, Brandon (2021-02-10). "The Rust programming language now has its own independent foundation". TechRepublic (në anglishte amerikane). Arkivuar nga origjinali më 2023-03-20. Marrë më 2022-07-14.
- ^ a b Klabnik & Nichols 2019.
- ^ Avram, Abel (2012-08-03). "Interview on Rust, a Systems Programming Language Developed by Mozilla". InfoQ. Arkivuar nga origjinali më 2013-07-24. Marrë më 2013-08-17.
{{cite web}}
: Mungon ose është bosh parametri|language=
(Ndihmë!) - ^ a b c d Klabnik & Nichols 2023.
Gabim referencash: Etiketat <ref>
ekzistojnë për një grup të quajtur "note", por nuk u gjet etiketa korresponduese <references group="note"/>