Newsgroup: it.comp.lang.c++
Titolo: sicurezza del C++

ciao a tutti,
vorrei sapere se possibile se vi siete mai scontrati con le possibili
'failure'
del C++ (run time, intendo).
Mi spiego meglio: se io devo scrivere un software per applicazioni, diciamo,
spaziali, devo essere
PERFETTAMENTE sicuro che le varie risoluzioni on-line del polimorfismo, le
varie new o derivate,
....e chi piu' ne ha piu' ne metta...... vadano a buon fine.
Sapete se vi sono documenti in merito?
Avete qualche suggerimento da fare? Per es: le new potrebbero attingere
memoria da un megavettore
dichiarato precedentemente (dovro' gestire la G.C....)
grazie
--
Tiberio Grasso

....e chi piu' ne ha piu' ne metta...... vadano a buon fine.
Vuoi la luna o mi sbaglio?
Nessun linguaggio di programmazione ti dà una tale sicurezza, perché se la
memoria è esaurita non c'è modo di recuperarla se non tramite scelte che tu
stesso devi effettuare (la sicurezza del codice dipende quindi da te).
Per quanto riguarda il late binding (è questo quello che volevi sapere?) è
sicuro al 99,999999999999 %, ma il 100% di sicurezza è prerogativa di DIO
;-)
Ciao
Domenico

Direi che devi affrontare due problemi distinti: Uno e' l'affidabilita'
della piattaforma da te scelta, in particolare del compilatore e delle
librerie ad esso associate (e non del linguaggio in quanto tale); il
secondo e' l'adozione di tecniche di disegno e programmazione adatte al
grado di affidabilita' che richiedi.
Per il primo non puoi che rifarti alla documentazione del fornitore, ma
sappi che nessun produttore di software si impegnera' mai a dare le
garanzie che chiedi.
Per il secondo non so aiutarti, salvo che al link seguente puoi leggere
a proposito di cose da *non* fare :-)
http://java.sun.com/people/jag/Ariane5.html
Ciao,
Nicola

 grado di affidabilita' che richiedi.
e' questo che cercavo!
grazie
tib

 Supponiamo che tutto il sistema di sviluppo sia "certificato"
Il problema e' che una certificazione del genere ti puo' portare in
tribunale se qualcosa va storto. Pensa se si potesse dimostrare che
Chernobyl fu causato da un errore nella libreria standard del
compilatore!
Ciao,
Nicola

 Ovviamente questo implica la gestione del segmento privato.
Probabilmente erri, perché il gestore di memoria del sistema operativo
sicuramente lo ha scritto un programmatore con le contropalle, o magari l'ha
scritto un incapace ma è stato debuggato per mesi prima di metterlo in
commercio, e si suppone abbia una certa affidabilità, visto che parecchie
cose si basano su quello. Raggiungere lo stesso livello di efficienza e
affidabilità con del codice scritto da te, anche se sei un abile
programmatore, potrebbe non essere semplice.
Massimo

corretto
tib

dove c'e' scritto?
Che cosa, che DIO possiede la sicurezza al 100% o che il late binding lo č
al 99,9 periodico  ;-) ?
Ciao
Domenico

programmatore, potrebbe non essere semplice.
Ho interpretato quello che ha scritto riberio in modo diverso:
*Se* io so quanta memorio ho bisogno la posso allocare tutta all'inizio;
in questa maniera ( se riesco allocarla tutta ) so gia' che non avro' piu'
problemi di memoria esaurita. Certo poi ho la "rogna" di dovermela gestire
...
Notare l'ipotesi iniziale che mi pare MOLTO pesante

 Notare l'ipotesi iniziale che mi pare MOLTO pesante
Perche? A quel punto alloca la memoria staticamente, a costo
sostanzialmente zero. In effetti e' una tecnica di cui ho gia' sentito
parlare; direi che ha senso solo se uno non e' poi costretto a scriversi
un gestore della memoria ad hoc, ma puo' destinare in partenza diverse
aree di memoria alle diverse necessita'.
Ciao,
Nicola

Notare l'ipotesi iniziale che mi pare MOLTO pesante
A parte l'ipotesi iniziale molto restrittiva, ritengo importante
notare che l'iniziale mancanza di risorse non e` condizione
sufficiente a dire che l'applicazione non potra` funzionare.
Altre risorse potrebbero rendersi disponibili durante l'esecuzione,
perche` qualcun altro le libera.
Paolo
-------------------------------------------
  Paolo Marotta
 
http://web.tiscalinet.it/paolo_marotta/
-------------------------------------------