Chiarimento sugli errori a runtime

di il
5 risposte

Chiarimento sugli errori a runtime

Vorrei avere una delucidazione a livello teorico sui bug che si possono riscontrare in un programma. Se io creo un programmino molto semplice, per esempio che fà la somma fra due numeri, è possibile che il computer in migliai di esecuzioni sbagli almeno una di queste dando un risultato errato o qualsiasi altro bug,è possibile avere bug a livelli hardware, oppure si ci sono bug è solo colpa del programmatore? Ovviamente questa idea si estende a software che eseguono calcoli molto complessi. Grazie in anticipo per chi mi chiarirà questa cosa.

5 Risposte

  • Re: Chiarimento sugli errori a runtime

    La colpa é sempre del programma
  • Re: Chiarimento sugli errori a runtime

    Meglio, la colpa e' SEMPRE del programmatore.

    Esiste, ovviamente, la possibilita' che ci sia un errore a livello hardware, ma e'piu' probabile incontrare un alieno che rilevare un errore del genere.

    Per quanto riguarda i calcoli complessi, mettiamola in modo piu' preciso:

    che tipo di errori si possono avere in un algoritmo che cicla miliardi di volte?

    Errori di arrotondamento: poiche' i numeri con la virgola sono rappresentati con un numero fisso di cifre decimali, anche un piccolo errore, se lo moltiplichi per 10^9 (o valori anche piu' grandi) prima o poi puo' diventare talmente grande da nascondere il VERO valore che si voleva calcolare.

    MA esiste un'intero settore dell'informatica, quello che si chiama calcolo numerico, che si occupa, appunto, di identificare i modi piu' intelligenti per fare i conti in modo da minimizzare l'accumulto di questi errori.
  • Re: Chiarimento sugli errori a runtime

    La domanda è un po' troppo generica e forse mal posta.

    Sono esistiti casi (vedi il "Pentium bug" https://it.wikipedia.org/wiki/Pentium_FDIV_bu ) causati dall'hardware, ma che si presentavano in maniera ripetitiva e precisa, non una volta ogni tanto.

    Ogni tanto gli alieni si incontrano ...
  • Re: Chiarimento sugli errori a runtime

    Il punto é che la programmazione non é magia; in caso di comportamenti strani di solito il problema é riconducibile a:
    - variabili non inizializzate
    - puntatori che puntano in aree non inizializzate
    - chiamate a funzione senza controllo del valore di ritorno (chi controlla il valore di ritorno di una fscanf()? eppure può portare ad un loop infinito, e la malloc()? tipico é non controllare il risultato della fopen() così il programma va in crash se ci dimentichiamo di piazzare un certo file in una certa posizione)
    ... e chi più ne ha più ne metta.
    Credere che il problema sia dell'hardware o del sistema operativo non fa altro che distogliere l'attenzione dalla ricerca del vero problema.
  • Re: Chiarimento sugli errori a runtime

    Grazie mille per queste informazioni.
Devi accedere o registrarti per scrivere nel forum
5 risposte