2013-04-03 6 views
8

Un article I saw today parla del linguaggio di programmazione Rust (sviluppato da Mozilla) e di come intende sostituire C++. Uno dei vantaggi citati di Rust è la mancanza di letture pre-memoria. Citando Mozilla CTO Brendan Eich ...Che cos'è una lettura pre-memoria in C++?

"Non ci sono letture pre-memoria" in Rust, ha detto, ma ci sono in C++. Questi problemi "portano a molte vulnerabilità del browser" e sarebbero risolti da Rust.

È interessante notare che ci sono solo 4 risultati su Google in questo momento per la frase "letture pre-memoria", che fanno riferimento all'articolo stesso. Cos'è una pre-memoria letta in C++ e perché è cattiva?

+11

Penso che dovrai aspettare Brendan Eich per chiarire cosa intende. Per quanto ne so, la frase non ha alcun significato comunemente inteso rispetto al C++. –

+0

puoi collegare l'articolo? – David

+0

@Dave Questo è l'unico risultato che appare su Google quando ho cercato la citazione: http://reviews.cnet.com/8301-3514_7-57577639/samsung-joins-mozillas-quest-for-rust/ – JBentley

risposta

10

Sembra esserci stata una correzione dell'articolo. Il corrected quote è il seguente:

Egli ha osservato che ogni anno i browser sono vittime di hacker nel concorso annuale Pwn2Own alla conferenza CanSecWest. "Non c'è la memoria libera legge" in Rust, ha detto, ma ci sono in C++. Questi problemi "portano a molte vulnerabilità del browser" e sarebbero risolti da Rust, che è un linguaggio auto-compilante.

Penso che questo lo spieghi.

+2

La citazione nel link dice "letture pre-memoria" (come per l'OP), non "letture di memoria libera". Dove lo vedi? – JBentley

+0

@JBentley: ho provato ad aprire il collegamento nella mia risposta utilizzando vari browser (incluso Chrome in modalità di navigazione in incognito) e ogni volta che vedo "letture di memoria libere". Allo stesso tempo il link nella domanda mostra "letture pre-memoria". Non ho idea di cosa sta succedendo. – NPE

+2

Sto vedendo la stessa cosa di @NPE - "Non ci sono letture di memoria libere" in Rust, ha detto – crashmstr

6

Questo articolo contiene anche questa citazione, che è chiaramente sbagliata:

C++ non è sicura by design ", ha detto. 'E ti porta fino al metallo', un termine che significa che il codice viene eseguito in modo nativo e non deve essere compilato prima che la CPU possa comprenderlo, "ma non è sicuro.

Quindi, penso che sia sicuro dire che l'articolo è inaffidabile, e forse lo ha citato male.

+0

"scende al metal" ha sempre significato avere un accesso di basso livello all'hardware. Quale C++ ha. Almeno fino al livello dell'indirizzo di memoria (ovviamente il modello di memoria C++ non concede l'accesso al livello di registro senza estensioni del compilatore). Ma anche se prendiamo la tua definizione, è vera. Il codice compilato da C++ può essere eseguito in modo nativo sulla CPU. A differenza di Java per esempio. – slebetman

+0

@slebetman Non capisco il tuo commento. Non ho fornito la mia definizione, e la citazione che ho fatto riferimento afferma che il codice C++ può essere compreso dalla CPU * senza * essere compilato. – JBentley

+0

Ah. OK. Quindi l'autore dell'articolo non sa di cosa sta parlando. – slebetman