Αποστολέας Θέμα: συναρτησεις και διαδικασιες χωρις ορισματα  (Αναγνώστηκε 4503 φορές)

alkisg

  • Τεχνικός / καθαρίστρια
  • *****
  • Μηνύματα: 5865
    • Ο Διερμηνευτής της ΓΛΩΣΣΑΣ
Απ: συναρτησεις και διαδικασιες χωρις ορισματα
« Απάντηση #30 στις: 05 Απρ 2021, 09:16:41 πμ »
Παράθεση από: Βιβλίο μαθητή, σελίδα 115
Συντακτικό είναι το σύνολο των κανόνων που καθορίζει τη νομιμότητα
της διάταξης και της σύνδεσης των λέξεων της γλώσσας για τη δημιουρ-
γία προτάσεων.
Η σημασιολογία (Semantics) είναι το σύνολο των κανόνων που καθορίζει
το νόημα των λέξεων και κατά επέκταση των εκφράσεων και προτάσεων
που χρησιμοποιούνται σε μία γλώσσα.

Η μεταγλώττιση ενός προγράμματος περιλαμβάνει συντακτικό αλλά και σημασιολογικό έλεγχο. Αναφέρονται σωστά στη σελίδα 115 του βιβλίου μαθητή.
Είναι λάθος μεταγλώττισης (στατικού ελέγχου) και συγκεκριμένα σημασιολογικό λάθος. Δεν είναι συντακτικό, δεν παραβιάζεται κανένας κανόνας σύνταξης.
Πιο τεχνικά, αφού η ΓΛΩΣΣΑ είναι strongly typed, ο σημασιολογικός αυτός έλεγχος είναι λογικό να γίνει ακριβώς μετά τον συντακτικό έλεγχο και την κατασκευή του abstract syntax tree, χωρίς να χρειαστεί να εκτελεστεί το πρόγραμμα.

Δυστυχώς το βιβλίο μαθητή τα λάθη χρόνου μεταγλώττισης τα λέει "λάθη κατά την υλοποίηση" στο κεφάλαιο της εκσφαλμάτωσης (σελ. 233),
ενώ το συμπληρωματικό υλικό (σελ. 116) περιορίζεται σε μια υποκατηγορία των λαθών χρόνου μεταγλώττισης, τα συντακτικά λάθη, οπότε μας αφήνει ακάλυπτους σε όλα τα σημασιολογικά λάθη.
Θεωρώ ότι πρέπει άμεσα να αλλαχθεί το διδακτικό πακέτο ώστε και οι δύο αυτές ενότητες να αναφέρονται σε "λάθη χρόνου μεταγλώττισης", ενώ μέχρι να γίνουν αυτές οι διορθώσεις, να μην μπει ερώτηση στις εξετάσεις που να ζητάει σημασιολογικά λάθη να χαρακτηριστούν ως συντακτικά.

evry

  • Γενικός διαχειριστής
  • *****
  • Μηνύματα: 3564
  • to Iterate is human to Recurse divine
Απ: συναρτησεις και διαδικασιες χωρις ορισματα
« Απάντηση #31 στις: 05 Απρ 2021, 10:16:52 πμ »
Με τα σημασιολογικά λάθη υπάρχει πράγματι θέμα, γιατί δυστυχώς πολλοί τα θεωρούν συντακτικά.
Ωστόσο δεν χρειάζεται να πάμε πολύ μακριά όσον αφορά τις εκχωρήσεις μεταξύ μεταβλητών/εκφράσεων διαφορετικών τύπων. Και το παρακάτω με βάση το βιβλίο λάθος είναι:

Κώδικας: ΓΛΩΣΣΑ
  1. ΠΡΟΓΡΑΜΜΑ ΓΛΩΣΣΑ_IS_SUPER_STRONGLY_STRICT_TYPED
  2. ΜΕΤΑΒΛΗΤΕΣ
  3.   ΠΡΑΓΜΑΤΙΚΕΣ: Χ
  4. ΑΡΧΗ
  5.     Χ <- 6 div 2
  6. ΤΕΛΟΣ_ΠΡΟΓΡΑΜΜΑΤΟΣ

What I cannot create I do not understand -- Richard Feynman
http://evripides.mysch.gr