Obre el menú principal

Rust (llenguatge de programació)

llenguatge de programació

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]

Infotaula de llenguatge de programacióRust
Rust programming language black logo.svg
Tipus llenguatge 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 Tradueix
Data de creació 7 juliol 2010 i 2006
Disseny Graydon Hoare
Desenvolupador Mozilla i Graydon Hoare
Epònim Uredinal
Darrera versió estable 1.39.0 ()
1.40.0-beta ()
1.41.0-alpha ()
Llenguatge de programació Rust
Influenciat per Alef, C++, C♯, Cyclone, Erlang, Haskell, Limbo, Newsqueak, OCaml, Scheme, ML Estàndard, Swift, Hermes, NIL i Ruby
Sistema operatiu multiplataforma, Linux, macOS, Microsoft Windows, FreeBSD, iOS, Android i WebAssembly
Extensió dels fitxers rs i rlib
Codi font Codi font
Llicència Llicència Apache, versió 2.0 i Llicència MIT
Etiqueta d'Stack Exchange Etiqueta
Pàgina web Web oficial
Modifica les dades a Wikidata

CaracterístiquesModifica

  • 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ènciesModifica

  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.