Rust

Rust on mitmeparadigmaline süsteemi programmeerimiskeel, mis keskendub peamiselt turvalisusele, eriti turvalisele samaaegsusele. Rust on süntaksi poolest sarnane C++ga, kuid on disainitud, et tagada parem mälu turvalisus hoides kõrget sooritustaset.

Algselt oli Rust disainitud Graydon Hoare'i poolt Mozilla uurimisasutuses, kaasa aitasid ka Dave Herman, Brendan Eich ja teised. Disainerid arendasid keelt samal ajal kui nad kirjutasid koodi Servo paigutuse või brauserimootori ja Rust kompileerija jaoks. 

Rust on alates 2016. aastast olnud igal aastal Stack Overflow arendajate küsitluses olnud "kõige rohkem armastatud programmeerimiskeel".

Disain
Rust on ette nähtud väga tihedalt koos töötavate ja väga turvaliste süsteemide jaoks ning suurte programmide loomiseks.

Süntaks
Rusti süntaks on sarnane keeltega C ja C++, kus koodiblokid on eraldatud loogeliste sulgude ja käsuvoo märksõnadega nagu näiteks if, else, while ja for.Siiski pole kõik C ja C++ märksõnad rakendatud ning mõned Rust funktsioonid (nagu näiteks match mustrite sobitamiseks) näivad võõratena nendele, kes on neid keeli õppinud. Vaatamata Rusti pealiskaudsele sarnasusele C ja C++ga on Rusti süntaks sügavamas mõistes sarnane ML perekonda kuuluvate keeltega ja Haskell keelega. Peaaegu iga osa funktsioonist on väljend, isegi käsuvoo operaator. Näiteks tavaline if lause toimub C keele kolmepoolses tingimuslikus operaatoris. Funktsioon ei pea lõppema return väljendiga, mis juhul loob viimane väljend funktsioonis tagastusväärtuse kui semikoolon on ära jäetud.

Mälu ohutus
Süsteem on disainitud olema ohutu mälule ning ei luba kasutada null viitajaid, rippuvaid viitajaid, ega andmete võidujooksu ohutus koodis. Andmete väärtuseid võib lähtestada vaid läbi kindlate blankettide, kus kõikide sisendid peavad olema juba lähtestatud.

Ajalugu
Keel kasvas välja Graydon Hoare'i 2006. aastal alguse saanud isiklikust projektist. Mozilla alustas projekti sponsoreerimist 2009. aastal ning kuulutas selle välja aastal 2010. Samal aastal liikus töö algsest kompileerijast (kirjutatud OCaml keeles) iseseisvale kompileerijale, mis oli kirjutatud Rust keeles.

Kõige esimene nummerdatud alfaeelne versioon anti välja 2012 aasta jaanuaris. Rust 1.0, kõige esimene stabiilne versioon, anti välja 15 mai 2015. Pärast seda antakse välja uus stabiilne versioon iga kuue nädala tagant.

Näited

Tere maailm

Lihtne "Tere maailm!" programm kirjutatud Rust keeles.
fn main() {
    println!("Tere maailm!");
}

Faktoriaalne funktsioon

Rekursiivne
fn factorial(i: u64) -> u64 {
    match i {
        0 => 1,
        n => n * factorial(n-1)
    }
}

Iteratiivne
fn factorial(i: u64) -> u64 {
    let mut acc = 1;
    for num in 2..=i {
        acc *= num;
    }
    acc
}

Iteraatoreid kasutades
fn factorial(i: u64) -> u64 {
    (1..=i).product()
}

Viited

Programmeerimiskeeled