συναρτησεις και διαδικασιες χωρις ορισματα

Ξεκίνησε από JohnyF, 10 Μαρ 2016, 01:55:30 ΜΜ

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

alkisg

Παράθεση από: Βιβλίο μαθητή, σελίδα 115
Συντακτικό είναι το σύνολο των κανόνων που καθορίζει τη νομιμότητα
της διάταξης και της σύνδεσης των λέξεων της γλώσσας για τη δημιουρ-
γία προτάσεων.
Η σημασιολογία (Semantics) είναι το σύνολο των κανόνων που καθορίζει
το νόημα των λέξεων και κατά επέκταση των εκφράσεων και προτάσεων
που χρησιμοποιούνται σε μία γλώσσα.

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

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

evry

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

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

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