Rust (programlingvo)
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 | |
---|---|
proceda programlingvo • funkcia programlingvo • multparadigma programlingvo • ordonema programlingvo • porsistema programlingvo • libera kaj malfermitkoda programaro • tradukata programlingvo • programlingvo | |
Paradigmo: | imperativa, Objektema, funkcia, kunrulo |
Paradigmo(j): systems programming • funkcia programado • kunrula komputado • komuna programado • ordonema programado • objektema 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 |
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
redaktifn 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
);
}