Αποστολέας Θέμα: ΜΕ_ΒΗΜΑ 0  (Αναγνώστηκε 752 φορές)

alkisg

  • Τεχνικός / καθαρίστρια
  • *****
  • Μηνύματα: 5141
    • Ο Διερμηνευτής της ΓΛΩΣΣΑΣ
Απ: ΜΕ_ΒΗΜΑ 0
« Απάντηση #15 στις: 14 Οκτ 2019, 07:05:25 μμ »
...είναι λογικά λάθη, άλλων προγραμματιστών όμως.

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

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

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

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

pgrontas

  • Ομάδα διαγωνισμάτων 2016
  • *
  • Μηνύματα: 1326
  • There are always possibilities...
Απ: ΜΕ_ΒΗΜΑ 0
« Απάντηση #16 στις: 14 Οκτ 2019, 07:21:06 μμ »
Είχα σκεφτεί να το γράψω αυτό αλλά φοβήθηκα μην μακρυγορώ. Αν συμφωνείς και στο παρακάτω, τότε συμφωνούμε τελείως:
"Υπάρχουν λάθη εκτέλεσης που δεν είναι λογικά λάθη".
Επί της αρχής συμφωνώ. Σχετικά με τα παραδείγματα - από τη δική μου σκοπιά -  το θέμα δεν είναι ότι αφήνουμε κάποιο λάθος εκτέλεσης να συνεχιστεί αφού μελετηθεί, αλλά το ότι είναι τόσο απρόβλεπτες οι πιθανές αλληλεπιδράσεις των διαφόρων συστημάτων, που είναι αδύνατο να τις προβλεψουμε και να τις μελετήσουμε και να κάνουμε προδιαγραφές για τέτοιες περιπτώσεις. Έτσι απλά αποδεχόμαστε λάθη χρόνου εκτέλεσης. Αυτα είναι εκτός προδιαγραφών άρα δεν είναι λογικά λάθη και η αιτία τους είναι συστημική.
A man provided with paper, pencil, and rubber, and subject to strict discipline is in effect a universal machine - Alan Turing