Εκσφαλμάτωση - Υποπρογράμματα

Ξεκίνησε από lala, 26 Μαρ 2026, 02:37:18 ΜΜ

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

lala

Ήθελα να ρωτήσω η κλήση διαδικάσιας με δεδομένα διαφορετικού τύπου στις πραγματικές παραμέτρους απ' ότι στις τυπικές είναι συντακτικό ή κατα την εκτέλεση?

pgrontas

Programs must be written for people to read, and only incidentally for machines to execute - Harold Abelson

Kost_kp

Σε βοήθημα πάντως που έχω, λέει ότι διαφορετικός Τύπος σε πραγματικές τυπικές είναι κατά την εκτέλεση ενώ διαφορετικό πλήθος μεταβλητών σε πραγματικές - τυπικές είναι συντακτικό. Τι να ισχύει τελικά;

Καραμαούνας Πολύκαρπος


evry

Ισχύει ότι τα "βοηθήματα" δεν είναι τα επίσημα εγχειρίδια του μαθήματος και τα χρησιμοποιείτε με δική σας ευθύνη.
What I cannot create I do not understand -- Richard Feynman
http://evripides.mysch.gr

gpapargi

Κανονικά (αν ξεφύγουμε από το πλαίσιο του μαθήματος) είναι σημασιολογικό λάθος. Στο μάθημα όμως, οτιδήποτε συμβεί κατά τη μετάφραση θεωρείται συντακτικό σφάλμα. Άρα στο πλαίσιο του μαθήματος είναι συντακτικό.

Μπορείς να κάνεις μια δοκιμή στο Διερμηνευτή. Θα δεις ότι δε θα ξεκινήσει να το τρέχει το πρόγραμμα αλλά θα το πιάσει κατά τον έλεγχο. Αφού δεν έχει ξεκινήσει η εκτέλεση του προγράμματος δεν μπορεί να είναι λάθος κατά την εκτέλεση.

Εξαίρεση είναι αν πας να βάλεις ακέραιους σε πραγματικές μεταβλητές που θα τρέξει κανονικά.
Γιώργος Παπαργύρης

pgrontas

Παράθεση από: gpapargi στις Σήμερα στις 09:55:11 ΠΜΚανονικά (αν ξεφύγουμε από το πλαίσιο του μαθήματος) είναι σημασιολογικό λάθος. Στο μάθημα όμως, οτιδήποτε συμβεί κατά τη μετάφραση θεωρείται συντακτικό σφάλμα. Άρα στο πλαίσιο του μαθήματος είναι συντακτικό.
Σωστά. Το συγκεκριμένο πρόβλημα μας έχει απασχολήσει εξαιρετικά στο Στέκι και προτείνω στον @lala να ανατρέξει στις σχετικές συζητήσεις.

Προσωπικά έχω καταλήξει στο ότι ακόμα και στις κανονικές γλώσσες τα όρια μεταξύ σύνταξης και σημασιολογίας είναι αρκετά δισδιάκριτα και ευμετάβλητα ανάλογα με την γλώσσα.
Στα πλαίσια του μαθήματος, η συμβουλή που δίνω στους μαθητές μου είναι ότι αν ο πηγαίος κώδικας περιέχει πληροφορία που θα μπορέσει να βοηθήσει κάποιον προσεκτικό αναγνώστη του να εντοπίσει το λάθος, τότε είναι συντακτικό (δηλαδή μπορεί να εντοπιστεί πριν την εκτέλεση).
Programs must be written for people to read, and only incidentally for machines to execute - Harold Abelson

George Eco

Αν οι πραγματικές παράμετροι είναι άλλου τύπου από τις τυπικές, είναι συντακτικό.

Αν είναι ίδιος ο τύπος, τότε τό πρόβλημα μεταφέρεται στο όταν λαμβάνουν τιμή αυτές.
Αν Χ ακέραια και σε μία εντολή ΔΙΑΒΑΣΕ Χ αντί για ακέραιο βάλεις ένα όνομα σαν το 'ΜΕΝΕΛΑΟΣ' τότε είναι σφάλμα κατά την εκτέλεση, που οδηγεί σε αντικανονικό τερματισμό.  Άρα το πρόβλημα ΠΡΟΗΓΕΙΤΑΙ της διαδικασίας.

Οπότε είναι συντακτικό στα πλαίσια του μαθήματος.

 

petrosp13

Κι αν σχεδιάσουμε έναν μεταγλωττιστή που δεν ελέγχει την αντιστοιχία των τύπων των παραμέτρων;

:D :D :D
Παπαδόπουλος Πέτρος
Καθηγητής Πληροφορικής