[Date Prev][Date Next] [Thread Prev][Thread Next] [Date Index] [Thread Index]

Re: Rust



On 03/06/2015 16:55, Gian Uberto Lauri wrote:
Federico Di Gregorio writes:
  > On 03/06/2015 14:28, Gian Uberto Lauri wrote:
  > > Federico Di Gregorio writes:
  > >
  > >   > 1) il compilatore tiene traccia della "vita" dei dati e in fase di
  > >   > compilazione da errori se fai qualcosa di inconsistente (tipo usare
  > >   > della memoria dopo averla liberata).
  > >
  > > Questa era una delle cose buone introdotte da Java...
  >
  > Si, ma Java e tutti gli altri linguaggi, sia precedenti (LISP, per dirne

Ti devo correggere. Java fa moltissimi controlli a compile time,
compresa l'inizializzazione dei riferienti agli oggetti.

Si, si, in questo senso hai ragionissimo. Quello che intendevo è che Java delega al runtime la garbage collection - ovvero il compilatore in generale non sa quando la memoria puntata da un riferimento (un oggetto) verrà liberata. Un programma Java "sano e normale" non rischia SIGSEGV perché il runtime garantisce che la memoria venga liberata solo quando non più raggiungibile.

Il bello di Rust è che questi controlli vengono fatti al momento della compilazione. Da un punto di vista pratico Rust, come il C, non ha un "runtime": ha solo una libreria di base che puoi anche eliminare del tutto, se preferisci (che è come compilare senza libc).

federico

--
Federico Di Gregorio                         federico.digregorio@dndg.it
Di Nunzio & Di Gregorio srl                               http://dndg.it
 When people say things are a lot more complicated than that, they
  means they're getting worried that they won't like the truth.
                                                    -- Granny Weatherwax


Reply to: