ΜΕ_ΒΗΜΑ 0

Ξεκίνησε από ApoAntonis, 13 Οκτ 2019, 03:50:27 ΜΜ

« προηγούμενο - επόμενο »

alkisg

Παράθεση από: pgrontas στις 14 Οκτ 2019, 06:29:21 ΜΜ
...είναι λογικά λάθη, άλλων προγραμματιστών όμως.

Είχα σκεφτεί να το γράψω αυτό αλλά φοβήθηκα μην μακρυγορώ. Αν συμφωνείς και στο παρακάτω, τότε συμφωνούμε τελείως:
"Υπάρχουν λάθη εκτέλεσης που δεν είναι λογικά λάθη".

Για παράδειγμα, όταν η εκφώνηση μου λέει να θεωρήσω ότι όλοι οι αριθμοί είναι θετικοί, και ο χρήστης μου δίνει αρνητικό, και εγώ πάω να υπολογίσω την τετραγωνική του ρίζα, τότε το λάθος εκτέλεσης που θα εμφανιστεί είναι εξ' ολοκλήρου ευθύνη του χρήστη. Εγώ σαν προγραμματιστής ικανοποίησα τις απαιτήσεις που μου δόθηκαν και φυσικά οι βιβλιοθήκες/γλώσσες που χρησιμοποιώ δεν έκαναν κάτι λάθος.

Άλλα παραδείγματα: ανέβηκε η θερμοκρασία του επεξεργαστή, τελείωσε ο χώρος του δίσκου σε real time video capture κλπ. Εκεί το λειτουργικό ή η γλώσσα μπορούν να σηκώσουν interrupt/exception κλπ, και ο προγραμματιστής της εφαρμογής να μην το κάνει handle, γιατί ουσιαστικά δεν έχει να προσφέρει κάτι περισσότερο στο επίπεδο της εφαρμογής. Π.χ. στην python σε πολλές περιπτώσεις προτείνουν να ΜΗΝ γίνεται try/except αλλά να αφήνουμε επίτηδες να συμβεί runtime error, αφού η ίδια η γλώσσα θα δώσει περισσότερες πληροφορίες για το τι συνέβηκε (stack trace κλπ).

Αν κάποιο λάθος χρόνου εκτέλεσης, αφού μελετηθεί, ΔΕΝ θέλουμε να διορθωθεί αλλά επιθυμούμε να συνεχίσει να συμβαίνει, τότε δεν είναι λογικό λάθος.

pgrontas

Παράθεση από: alkisg στις 14 Οκτ 2019, 07:05:25 ΜΜ
Είχα σκεφτεί να το γράψω αυτό αλλά φοβήθηκα μην μακρυγορώ. Αν συμφωνείς και στο παρακάτω, τότε συμφωνούμε τελείως:
"Υπάρχουν λάθη εκτέλεσης που δεν είναι λογικά λάθη".
Επί της αρχής συμφωνώ. Σχετικά με τα παραδείγματα - από τη δική μου σκοπιά -  το θέμα δεν είναι ότι αφήνουμε κάποιο λάθος εκτέλεσης να συνεχιστεί αφού μελετηθεί, αλλά το ότι είναι τόσο απρόβλεπτες οι πιθανές αλληλεπιδράσεις των διαφόρων συστημάτων, που είναι αδύνατο να τις προβλεψουμε και να τις μελετήσουμε και να κάνουμε προδιαγραφές για τέτοιες περιπτώσεις. Έτσι απλά αποδεχόμαστε λάθη χρόνου εκτέλεσης. Αυτα είναι εκτός προδιαγραφών άρα δεν είναι λογικά λάθη και η αιτία τους είναι συστημική.
Programs must be written for people to read, and only incidentally for machines to execute - Harold Abelson