Llenguatge De Programació Rust: Llenguatge de programació

Rust és un llenguatge de programació de sistemes multi-paradigma estàtic.

Està dissenyat amb garanties de seguretat, això ho aconsegueix gràcies a un seguit de regles que el compilador comprova amb el borrow checker, gràcies a aquestes garanties es pot escriure codi segur i concurrent sense por.

Infotaula de llenguatge de programacióRust
Llenguatge De Programació Rust: Història, Característiques, Referències
Llenguatge De Programació Rust: Història, Característiques, Referències
Tipusllenguatge de programació procedural, llenguatge de programació funcional, llenguatge de programació multiparadigma, llenguatge de programació imperatiu, llenguatge de programació de sistemes, programari lliure i de codi obert, Llenguatge de programació compilat i llenguatge de programació Modifica el valor a Wikidata
Data de creació2006 i 23 juliol 2006 Modifica el valor a Wikidata
DissenyGraydon Hoare Modifica el valor a Wikidata
DesenvolupadorMozilla, Graydon Hoare i Rust Foundation Modifica el valor a Wikidata
EpònimUredinal Modifica el valor a Wikidata
Paradigma de programaciósystems programming (en) Tradueix, programació funcional, computació concurrent, programació genèrica, llenguatge imperatiu i programació orientada a objectes Modifica el valor a Wikidata
Darrera versió estable1.77.2 () Modifica el valor a Wikidata
Influenciat perAlef, C++, C#, Cyclone, Erlang, Haskell, Limbo, Newsqueak, OCaml, Ruby, Scheme, ML Estàndard i Swift Modifica el valor a Wikidata
Extensió dels fitxersrs i rlib Modifica el valor a Wikidata
Codi fontCodi font Modifica el valor a Wikidata
LlicènciaLlicència Apache, versió 2.0 i llicència MIT Modifica el valor a Wikidata
Etiqueta d'Stack ExchangeEtiqueta Modifica el valor a Wikidata
Pàgina webrust-lang.org Modifica el valor a Wikidata

Igual que C++, no fa servir recollida de memòria brossa.

Rust és software de codi obert amb doble llicència (Apache License 2.0 i MIT).

A més de ser segur, també és molt ràpid, comparable amb C i C++.

Rust ha estat el llenguatge de programació "més estimat" segons l'enquesta de Stack Overflow des del 2016.

Història

Rust va ser concebut per Graydon Hoare amb el suport de l'empresa Mozilla l'any 2006.

L'any 2019 va ser el primer any de pèrdues econòmiques per a la Fundació Mozilla, comportant l'abandó de molts dels seus projectes i el 2020 gran quantitat de treballadors foren acomiadats, entre ells, molts desenvolupadors de Rust.

El febrer de 2021 va nàixer la Rust Foundation, una entitat sense ànim de lucre que porta per lema "el bon programari és creat per persones alegres i ben ajudades". Entre les empreses que donen suport econòmic a la Rust Fundation hi ha la mateixa Mozilla, Amazon Web Services, Google, Huawei o Microsoft.

Característiques

Seguretat en la gestió de memòria

Rust està dissenyat per ser segur quant a la gestió de memòria, no permet valors nuls, punters que apunten a memòria retornada al sistema, data races.

Aquesta seguretat l'aconsegueix analitzant el codi en temps de compilació, gràcies a les regles del borrow checker, les quals algunes estan demostrades formalment.

Té una sintaxi similar a C++, però la majoria d'elements són expressions, inclús els operadors de control de flux.

En comptes de classes té estructures, similar al struct de C, aquestes estructures poden implementar interfícies abstractes mitjançant els traits.

Les macros en rust treballen en AST directament, on en C++ el preprocessador actua sobre text.

Aquest petit programa pinta la tira "Hello, world!" a la sortida estàndard:

fn main() {  // El signe '!' afegit a un identificador indica crida a una macro  println!("Hello, world!"); } 

Operacions amb vectors (arrays) :

use std::mem;  // Aquesta és una funció sobre una subseqüència (ang: slice)  fn analyze_slice(slice: &[i32]) {  println!("first element of the slice: {}", slice[0]);  println!("the slice has {} elements", slice.len()); }  fn main() {  // Vector de mida fixa; la signatura és supèrflua  let xs: [i32; 5] = [1, 2, 3, 4, 5];  // Tots els elements inicialitzats al mateix valor  let ys: [i32; 500] = [0; 500];   // La indexació comença pel zero.  println!("primer element de l'array: {}", xs[0]);  println!("segon element de l'array: {}", xs[1]);   // `len` retorna la mida del vector  println!("mida del array: {}", xs.len());   // Els vectors del tipus Array són allotjats a la pila  println!("l'array ocupa {} bytes", mem::size_of_val(&xs));   // Els vectors (Array) poden ser prestats com a subseqüència   println!("borrow the whole array as a slice");  analyze_slice(&xs);   // Les subseqüències (Slices) apunten a una secció d'un vector  println!("borrow a section of the array as a slice");   analyze_slice(&ys[1 .. 4]);   // La indexació fora de marges dispara l'error 'pànic'  println!("{}", xs[5]); } 


Exemple dels lifetimes en Rust:

// Declarem el lifetime 'a, qualsevol referencia continguda al struct  // que utilitza aquest lifetime ha de viure fins que MyStruct es destrueix. struct MyStruct<'a> {  pub valor: &'a str, }  fn main() {  // Aquí 'a' té un lifetime 'static, aquest significa que viurà fins al final del programa.  let a = "hello world";   // Vàlid  let b = MyStruct {  valor: a  };   let c;  {  let d = String::from("hello world");  c = &d;  }   // Error al compilar: El valor que c referencia   // ja s'ha destruït perquè ha sortit de la scope.  let d = MyStruct {  valor: c  }; }  /* Al compilar:  error[E0597]: `d` does not live long enough  --> src/main.rs:19:13  | 19 | c = &d;  | ^^ borrowed value does not live long enough 20 | }  | - `d` dropped here while still borrowed ... 23 | valor: c  | - borrow later used here  error: aborting due to previous error; 2 warnings emitted  For more information about this error, try `rustc --explain E0597`. error: could not compile `playground` * / 

Referències

Tags:

Llenguatge De Programació Rust HistòriaLlenguatge De Programació Rust CaracterístiquesLlenguatge De Programació Rust ReferènciesLlenguatge De Programació RustMulti-paradigma

🔥 Trending searches on Wiki Català:

Taula periòdicaComtats catalansSudanÀlberBaix LlobregatDansaManel (grup)JudaismeMick JaggerEspies de veritatMishimaPaula Badosa GibertEdgar González i EstradaMaixabel Lasa IturriozPrimera divisió espanyola de futbolSerp blancaOques GrassesAitana Ocaña MoralesEl paradís de les senyoresEstadi Olímpic Lluís CompanysRojuuFrancisco Martínez SoriaBakúLledonerHorta de Sant JoanChemtrailEl PescaíllaDiada de Sant JordiOscar al millor soVallès OccidentalSant Miquel del FaiPablo AlboránManel Gasch i HuriosPresó Model de BarcelonaEdat mitjanaJusto Bueno PérezSaltamartíThe Fly (pel·lícula de 1958)Ramiro OliverosTerrassaToixóMichiganLlista de personatges de Bola de DracNova YorkJames HornerThe BeatlesMaria Nicolau i RocabayeraGosLluís Domènech i MontanerEufòria (programa de televisió)Sebastián YatraLlista d'episodis de Detectiu ConanJoan Maragall i GorinaÀngels GonyalonsMarrocFrancesc Fuentes i TriquellMontblancLa llegenda de TarzanEstocolmJudy GarlandSant JordiPilar Juncosa IglesiasCatarismeOliveraRevolució FrancesaVancouverBen AffleckEdat antigaPotències de l'EixMaternitat d'ElnaGuardians of the Galaxy Vol. 2Luz CasalRosalíaRamon Berenguer IVMarc (evangelista)Josep Vallverdú i AixalàTranvía a la Malvarrosa🡆 More