Edukira joan

Rust (programazio-lengoaia)

Wikipedia, Entziklopedia askea
 Rust (programazio-lengoaia)
Jatorria
Sorrera-urtea2006
Argitaratze-data2010
Azken bertsioa1.79.0
Honen izena daramaHerdoil
Aurkitzailea edo asmatzaileaGraydon Hoare
Ezaugarriak
EuskarriaMicrosoft Windows, Linux, macOS, FreeBSD, iOS, Android, Plataforma-anitz eta WebAssembly (en) Itzuli
Programazio paradigmasystems programming (en) Itzuli, Programazio funtzional, Programazio konkurrente, generic programming (en) Itzuli, Programazio inperatibo eta Objektuetara bideratutako programazioa
Media motatext/x-rust eta text/rust
Egile-eskubideakcopyrightduna
LizentziaApache Lizentzia 2.0. eta MIT lizentzia
Deskribapena
Honen eragina jaso duAlef (en) Itzuli, C++, C Sharp, Cyclone, Erlang (en) Itzuli, Haskell, Limbo (en) Itzuli, Newsqueak (en) Itzuli, OCaml (en) Itzuli, Ruby, Scheme (en) Itzuli, Standard ML (en) Itzuli eta Swift (en) Itzuli
Ekoizpena
DiseinatzaileaGraydon Hoare
GaratzaileaMozilla, Graydon Hoare eta Rust Foundation (en) Itzuli
MaskotaFerris (en) Itzuli

rust-lang.org
Twitter: rustlang Mastodon: rust@social.rust-lang.org Youtube: UCaYhcUwRBNscFNUKTjgPFiA GitHub: rust-lang Edit the value on Wikidata
Iturri-kodeahttps://github.com/rust-lang/rust

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.

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]

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.

Rust-en erabiltzaileek (k)rustazeo izena erabiltzen dute haien burua dfinitzeko, eta Ferris maskota ikur gisa.

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

[aldatu | aldatu iturburu kodea]

Kaixo mundua programa

[aldatu | aldatu iturburu kodea]

Kaixo mundua da lengoaien sintaxia adierazteko erabili ohi den lehen adibidea.

fn main() {
    println!("Kaixo mundua!");
}

Kode-blokeak eta egiturak

[aldatu | aldatu iturburu kodea]
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

[aldatu | aldatu iturburu kodea]
  1. The Mozilla Manifesto. .
  2. Peter Bright. (3 de abril de 2013). Samsung teams up with Mozilla to build browser engine for multicore machines. .
  3. Rust Contributors. .
  4. 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).
  5. (Ingelesez) «Linus Torvalds: Rust For The Kernel Could Possibly Be Merged For Linux 5.20» www.phoronix.com (Noiz kontsultatua: 2022-12-15).
  6. Walton, Patrick. (5 de diciembre de 2010). C++ Design Goals in the Context of Rust. .
  7. Rosenblatt, Seth. (3 de abril de 2013). Samsung joins Mozilla's quest for Rust. .
  8. Brown, Neil. (17 de abril de 2013). A taste of Rust. .
  9. Doc language FAQ. 14 de septiembre de 2010.
  10. Lenguajes de programacion para Bitcoins: Hablan los desarrolladores.. .

Kanpo estekak

[aldatu | aldatu iturburu kodea]