Rust (programlingvo)

programlingvo
3 ŝanĝoj en ĉi tiu versio atendas kontrolon. La stabila versio estis patrolita je 31 dec. 2021.

Rust estas ĝeneralcela, plurparadigma, tradukita programlingvo kreita de Mozilla por konsistigi "sekuran, kunrulan, praktikan lingvon". Ĝi subtenas interalie pure funkcian, kunrulan agantan, ordoneman-procedureman kaj objekteman stilojn.

Rust
Logobildo de Rust
Logobildo de Rust
proceda programlingvo • funkcia programlingvo • multparadigma programlingvo • ordonema programlingvo • porsistema programlingvo • libera kaj malfermitkoda programaro • tradukata programlingvoprogramlingvo
Paradigmo: imperativa, Objektema, funkcia, kunrulo
Paradigmo(j): systems programming • funkcia programado • kunrula komputado • komuna programado • ordonema programadoobjektema programado
Klaso: tradukila
Aperis en: 2010
Aŭtoro(j): Graydon Hoare
Tipa sistemo: statika, strikta
Kreita sub la influo de: C++, Erlang, Haskell, Scala...
Permesilo(j): MIT-permesilo / Apaĉa Permesilo
Retejo: rust-lang.org
vdr

La lingvo kreskis el persona projekto de Graydon Hoare, dungato de Mozilla. En 2009 Mozilla mem eksubtenis la projekton kaj unue anoncis ĝin en 2010. La saman jaron, laboro reorientiĝis de la unua tradukilo (skribita en OCaml) al la singastiga tradukilo, skribita en Rust. La singastiga tradukilo uzas LLVM interne.

La unua numerita eldono de la Rusta tradukilo okazis en januaro 2012. La unua stabila eldono, Rust 1.0, eldoniĝis la 15-an de majo 2015.

Oni evoluigas Ruston tute malfermite kaj petas rimarkojn kaj kontribuojn de la komunumo. Oni rafinis la fasonadon de Rust pro la spertoj de verkado de la aspektiga modulo Servo kaj la Rusta tradukilo. Kvankam ĝian evoluigadon subtenas Mozilla, Rust estas komunuma projekto. Granda procento da nunaj enmetoj venas de komunumanoj.

Ekzempla programo

redakti
fn main() {
    let programo = "+ + * - /";
    let mut akumulilo = 0;

    for jetono in programo.chars() {
        match jetono {
            '+' => akumulilo += 1,
            '-' => akumulilo -= 1,
            '*' => akumulilo *= 2,
            '/' => akumulilo /= 2,
            _ => { /* ignoru ĉion alian */ }
        }
    }

    println!(
        "La programo \"{}\" kalkulis la valoron {}",
        programo, akumulilo
    );
}
  NODES
INTERN 1