Αποστολέας Θέμα: Η χρήση στοίβας στην κλήση διαδικασιών (Λάθος σχολικού;)  (Αναγνώστηκε 2335 φορές)

gtk

  • Νέος
  • *
  • Μηνύματα: 6
στη σελ. 219 το παράδειγμα του σχολικού γράφει:
Για παράδειγμα, έστω ότι μία διαδικασία a  καλεί τη διαδικασία b, που με τη σειρά της καλεί τη διαδικασία c  κοκ. Στην περίπτωση αυτή οι διευθύνσεις επιστροφής εμφανίζονται στη στοίβα με σειρά c,b,a.
Μήπως η σωστή διατύπωση πρέπει να είναι:
Για παράδειγμα, έστω ότι μία διαδικασία a  καλεί τη διαδικασία b, που με τη σειρά της καλεί τη διαδικασία c  κοκ. Στην περίπτωση αυτή οι διευθύνσεις επιστροφής εμφανίζονται στη στοίβα με σειρά γ, β, α και όχι τα ονόματα των διαδικασιών όπως σαφέστατα φαίνεται στο σχήμα του σχολικού βιβλίου;

Παναγιώτης Τσιωτάκης

  • Ομάδα Νέου Λυκείου
  • *
  • Μηνύματα: 3219
  • I love you 3000
    • Panagiotis Tsiotakis
στη στοίβα χρόνου εκτέλεσης μπαίνουν οι διευθύνσεις επιστροφής, όχι τα ονόματα των υποπρογραμμάτων

gtk

  • Νέος
  • *
  • Μηνύματα: 6
Συμφωνούμε λοιπόν ότι πράγματι υπάρχει αστοχία του σχολικού βιβλίου...

gthal

  • Ομάδα διαγωνισμάτων 2017
  • *
  • Μηνύματα: 892
Επίσης, μόλις παρατήρησα ότι το βιβλίο λέει:
Παράθεση
Όταν μία διαδικασία ή συνάρτηση καλείται από
το κύριο πρόγραμμα, τότε η αμέσως επόμενη διεύθυνση του κύριου προ-
γράμματος, που ονομάζεται διεύθυνση επιστροφής (return address), α-
ποθηκεύεται από το μεταφραστή σε μία στοίβα που ονομάζεται στοίβα
χρόνου εκτέλεσης (execution time stack).
Ποιος είναι πάλι ο μεταφραστής ? Έχει ξαναμιλήσει για μεταφραστή?
Μπας και εννοεί το μεταγλωττιστή ή διερμηνευτή ?
Και εντάξει, ο διερμηνευτής μπορεί να έχει αυτό το "καθήκον". Ο μεταγλωττιστής όμως ????   :D
Φιλικά,
Γιώργος Θαλασσινός

Παναγιώτης Τσιωτάκης

  • Ομάδα Νέου Λυκείου
  • *
  • Μηνύματα: 3219
  • I love you 3000
    • Panagiotis Tsiotakis
στην αρχή της παραγράφου 6.7 αναφέρει πως μεταφραστικά προγράμματα είναι ο μεταγλωττιστής και ο διερμηνευτής

gthal

  • Ομάδα διαγωνισμάτων 2017
  • *
  • Μηνύματα: 892
Ωραία, αλλά ο μεταγλωττιστής όμως δεν μπορεί να κάνει τέτοια δουλειά !
Φιλικά,
Γιώργος Θαλασσινός

sstergou

  • Γενικός διαχειριστής
  • *****
  • Μηνύματα: 983
  • Program or be Programmed
    • pseudoglossa.gr
Σίγουρα υπάρχει πρόβλημα σε αυτό το σημείο.
Το θέμα έχει ξανασυζητηθεί https://alkisg.mysch.gr/steki/index.php?topic=1878.0

Γιατί όμως δεν μπορεί ο μεταγλωττιστής να το κάνει;
Στάθης Στέργου - sstergouATgmailDOTcom - http://www.pseudoglossa.gr

gthal

  • Ομάδα διαγωνισμάτων 2017
  • *
  • Μηνύματα: 892
Γιατί αυτά συμβαίνουν σε real time κατά την εκτέλεση του προγράμματος και όχι κατά τη μεταγλώττιση.
Πού να ξέρει ο μεταγλωττιστής αν θα γίνει κλήση στο υποπρόγραμμα, πότε θα γίνει και από ποιο σημείο;
Φιλικά,
Γιώργος Θαλασσινός

tom

  • Δεινόσαυρος
  • *****
  • Μηνύματα: 488
Παιδιά νομίζω πως η διαχείριση της στοίβας χρόνου εκτέλεσης γίνεται από το Λ.Σ, οπότε μην τσακώνεστε.  :)
Θωμάς Σκυλογιάννης

- Ζήσε σα να' ταν να πεθάνεις αύριο. Μάθε σα να' ταν να ζεις για πάντα.
                                                                                     Μαχάτμα Γκάντι

sdancer75

  • Οπαδός
  • **
  • Μηνύματα: 15
  • “I am easily satisfied only with the very best.”
    • Paradox Interactive
στη σελ. 219 το παράδειγμα του σχολικού γράφει:
Για παράδειγμα, έστω ότι μία διαδικασία a  καλεί τη διαδικασία b, που με τη σειρά της καλεί τη διαδικασία c  κοκ. Στην περίπτωση αυτή οι διευθύνσεις επιστροφής εμφανίζονται στη στοίβα με σειρά c,b,a.
Μήπως η σωστή διατύπωση πρέπει να είναι:
Για παράδειγμα, έστω ότι μία διαδικασία a  καλεί τη διαδικασία b, που με τη σειρά της καλεί τη διαδικασία c  κοκ. Στην περίπτωση αυτή οι διευθύνσεις επιστροφής εμφανίζονται στη στοίβα με σειρά γ, β, α και όχι τα ονόματα των διαδικασιών όπως σαφέστατα φαίνεται στο σχήμα του σχολικού βιβλίου;

Αφού ξεκαθαρίζει ότι στη στοίβα μπαίνουν οι διευθύνσεις επιστροφής με τη σειρά που αναφέρει ποιο είναι το πρόβλημα ? Δεν λέει ότι στη στοίβα μπαίνουν τα ονόματα των διαδικασιών έλεος !
G. Papaioannou

gtk

  • Νέος
  • *
  • Μηνύματα: 6
Αγαπητέ συνάδελφε sdancer75, το σχολικό λέει :
Για παράδειγμα, έστω ότι μία διαδικασία a  καλεί τη διαδικασία b , που με τη σειρά της καλεί τη διαδικασία c . Στην περίπτωση αυτή οι διευθύνσεις επιστροφής εμφανίζονται στη στοίβα με σειρά c, b, a. Άρα στο κείμενο αυτό  c, b, a είναι διευθύνσεις επιστροφής ή ονόματα διαδικασιών;
Το σωστό για μένα είναι το γ,β,α.
Και τέλος, χαρακτηρισμοί του τύπου ...έλεος... δεν νομίζω ότι είναι δόκιμος όρος. Πρόσεξε καλύτερα την έκφρασή σου και κοίταξε το σχολικό βιβλίο πιο προσεκτικά.
Ευχαριστώ
Μάχιμος εκπαιδευτικός (gtk)