Rust (llenguatge de programació)

De Viquipèdia
Salta a la navegació Salta a la cerca
Infotaula de llenguatge de programacióRust
Rust programming language black logo.svg
Tipusllenguatge de programació procedural, llenguatge de programació funcional, llenguatge de programació multiparadigma, llenguatge de programació imperatiu, llenguatge de programació de sistemes, programari lliure i compiled language (en) Tradueix modifica
Data de creació7 juliol 2010 i 2006 modifica
DissenyGraydon Hoare modifica
DesenvolupadorMozilla i Graydon Hoare modifica
EpònimUredinal modifica
Darrera versió estable1.41.0 () modifica
Llenguatge de programacióRust modifica
Influenciat perAlef, C++, C♯, Cyclone, Erlang, Haskell, Limbo, Newsqueak, OCaml, Scheme, ML Estàndard, Swift, Hermes, NIL i Ruby modifica
Sistema operatiumultiplataforma, Linux, macOS, Microsoft Windows, FreeBSD, iOS, Android i WebAssembly modifica
Extensió dels fitxersrs i rlib modifica
Codi fontCodi font modifica
LlicènciaLlicència Apache, versió 2.0 i Llicència MIT modifica
Etiqueta d'Stack ExchangeEtiqueta modifica
Pàgina webWeb oficial modifica

Rust en ciència de la computació, és un llenguatge de programació dinàmic d'alt nivell dissenyat per ser segur, concurrent i pràctic. Rust és sintàcticament similar al llenguatge C++, però es caracteritza per una major seguretat de gestió de memòria. Rust és de tipus codi obert i va ser concebut per Graydon Hoare amb el suport de l'empresa Mozilla l'any 2006.[1][2][3]

Característiques[modifica]

  • Sintaxi similar a  C i C++.
  • Seguretat en la gestió de memòria.
  • Tipus i polimorfisme.

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];

    // L'indexació comença pel zero.
    println!("first element of the array: {}", xs[0]);
    println!("second element of the array: {}", xs[1]);

    // `len` retorna la mida del vector
    println!("array size: {}", xs.len());

    // Els vectors del tipus Array són allotjats a la pila
    println!("array occupies {} 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]);
}

Referències[modifica]

  1. «Rust Documentation · The Rust Programming Language» (en anglès). https://www.rust-lang.org.+[Consulta: 9 octubre 2017].
  2. «The Rust programming language» (en anglès). https://developer.mozilla.org.+[Consulta: 9 octubre 2017].
  3. «How Rust Compares to Other Programming Languages - The New Stack» (en anglès). The New Stack, 02-05-2016.