Rust (programazio-lengoaia)
Rust programazio-lengoaia konpilatu bat da, xede orokorrekoa eta paradigma anitzekoa, eta Rust Fundazioaren eskutik garatzen ari dena. Programazio-lengoaia multiparadigmatikoa izanik, programazio funtzional purua onartzen du, baita inperatiboa eta objektuetara bideratua ere.
Rust (programazio-lengoaia) | |
---|---|
Jatorria | |
Sorrera-urtea | 2006 |
Argitaratze-data | 2010 |
Azken bertsioa | 1.76.0 |
Honen izena darama | Herdoil |
Aurkitzailea edo asmatzailea | Graydon Hoare |
Ezaugarriak | |
Euskarria | Microsoft Windows, Linux, macOS, FreeBSD, iOS, Android, Plataforma-anitz eta WebAssembly (en) |
Programazio paradigma | systems programming (en) , Programazio funtzional, Programazio konkurrente, generic programming (en) , Programazio inperatibo eta Objektuetara bideratutako programazioa |
Media mota | text/x-rust eta text/rust |
Egile-eskubideak | copyrightduna |
Lizentzia | Apache Lizentzia 2.0. eta MIT lizentzia |
Deskribapena | |
Honen eragina jaso du | Alef (en) , C++, C Sharp, Cyclone, Erlang (en) , Haskell, Limbo (en) , Newsqueak (en) , OCaml (en) , Ruby, Scheme (en) , Standard ML (en) eta Swift (en) |
Ekoizpena | |
Diseinatzailea | Graydon Hoare |
Garatzailea | Mozilla, Graydon Hoare eta Rust Foundation (en) |
Maskota | Ferris (en) |
rust-lang.org | |
Iturri-kodea | https://github.com/rust-lang/rust |
Mozillaren politikari jarraituz, Rust modu irekian garatzen da eta komunitatearen iritziak eta ekarpenak sustatzen ditu.[1] Lengoaiaren diseinua hobetuz joan da Servo nabigatzailearen motorra garatu ahala, baita Rust-en konpiladorearen garapenean metatutako esperientzian oinarrituta.[2] Mozillak eta Samsung-ek garatu eta babesten badute ere, proiektu komunitarioa da. Kontribuzio gehienak komunitateko kideenak dira.[3]
Helburua C eta C++-ren ezaugarriekin baina segurtasun arazoak konpontzen dituen lengoaia bat sortzea izan zen. Horregatik, sistema eragileen garatzaileen interesa ere piztu du.[4] Linuxeko kernelean laster integratuko dutela esan du Linus Torlvaldsek.[5]
Deskribapena
Rust lengoaiaren helburua da Interneteko bezero zein zerbitzarietako programa handiak sortzeko lengoaia egokia izatea. Horri begira ezaugarri multzo bat definitu da, garrantzia berezia emanez segurtasunari, memoriaren banaketaren kontrolari eta konkurrentziari. Kode seguruaren errendimendua C++ lengoaiaren bidezkoarena baino motelagoa izan daiteke, baina C++ kodea egokituz gero Rust-ek hartzen dituen segurtasuneko neurriak har ditzan, Rust azkarrago ere izan dezake.[6]
Rust-aren sintaxia Cren eta C++-en antzekoa da: giltzek mugatzen dituzte kode-blokeak, eta if, else,
do
, while
eta for
egiturak erabiltzen dira fluxu-kontrolerako. C eta C++-en egitura guztiak ez dira onartzen, eta beste batzuk, baldintza anitzeko adarkatzerako match
gakoa esaterako, ez dira hain familiarrak izango lengoaia haietako programatzaileentzat.
Memoriarako atzipen segurua izateko diseinatuta dago, eta ez du onartzen erakusle nulurik edo erakusle esekirik.[7][8] Datuen balioak balio-multzo finko baten bidez baino ezin dira hasieratu, eta beti hasieratuta egon behar dute.[9]
Datu-moten aldetik "traits" izeneko klaseak onartzen ditu, Haskell lengoaian zuzenean oinarrituta. Poliformismo berezia onartzen du (ad-hoc polimorfismoa), non aldagaien erazagupenean murriztapenak erants daitezkeen. Haskellen beste ezaugarri batzuk, mota desberdineko polimorfismoa (higher-kinded) barne, ez dira onartzen.
Historia
Graydon Hoare Mozillako langileak 2006an hasitako proiektu pertsonal batetik sortu zen lengoaia. 2009an Mozilla hasi zen proiektua babesten eta 2010ean iragarri zuen. Rust-en konpiladorearen alfa aurreko lehen bertsio zenbakitua 2012ko urtarrilean sortu zen, eta Rust 1.0 egonkorra 2015eko maiatzaren 15ean. Ondoren, sei astean behin bertsio berriak agertzen dira.
Rust hirugarren lengoaia maitatuena izan zen Stack Overflow-en 2015eko urteko inkestan, eta lehena 2016-2020 tartean.
2020rako, programazio-lengoaia erabilienetako bat da kriptodiruaren arloan, bereziki meatze-lanetarako.[10]
Sintaxia eta semantika
Kaixo mundua programa
Kaixo mundua da lengoaien sintaxia adierazteko erabili ohi den lehen adibidea.
fn main() { println!("Kaixo mundua!"); }
Kode-blokeak eta egiturak
fn main() { let mut values = vec![1, 2, 3, 4]; for value in &values { println!("balioak = {}", value); } if values.len() > 5 { println!("Zerrendak bost osagai baino gehiago ditu"); } // Pattern matching match values.len() { 0 => println!("Hutsa"), 1 => println!("Balio bat"), 2..=10 => println!("Bi eta hamar balioen artean"), _ => println!("Balio asko"), }; // while gakoa begiztarako eta let gakoa pattern matching-erako while let Some(value) = values.pop() { println!("value = {value}"); // giltzak erabiltzen dira aldagai lokalak formateatzeko } }
Erreferentziak
- The Mozilla Manifesto. .
- Peter Bright. (3 de abril de 2013). Samsung teams up with Mozilla to build browser engine for multicore machines. .
- Rust Contributors. .
- González, Diego Germán; González, Diego Germán. (2022-12-10). «Zer da Rust eta nola erabili Linux-en» Linux Adictos (Noiz kontsultatua: 2022-12-15).
- (Ingelesez) «Linus Torvalds: Rust For The Kernel Could Possibly Be Merged For Linux 5.20» www.phoronix.com (Noiz kontsultatua: 2022-12-15).
- Walton, Patrick. (5 de diciembre de 2010). C++ Design Goals in the Context of Rust. .
- Rosenblatt, Seth. (3 de abril de 2013). Samsung joins Mozilla's quest for Rust. .
- Brown, Neil. (17 de abril de 2013). A taste of Rust. .
- Doc language FAQ. 14 de septiembre de 2010.
- Lenguajes de programacion para Bitcoins: Hablan los desarrolladores.. .