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

Kalli

  • Ομάδα διαγωνισμάτων 2010
  • *
  • Μηνύματα: 41
Η χρήση στοίβας στην κλήση διαδικασιών
« στις: 03 Μάι 2007, 12:02:51 μμ »
Μπορεί κάποιος να μου εξηγήσει πως υλοποιείται?Κάπως πιο κατανοητά από το βιβλίο

petrosp13

  • Ομάδα Νέου Λυκείου
  • *
  • Μηνύματα: 2225
Απ: Η χρήση στοίβας στην κλήση διαδικασιών
« Απάντηση #1 στις: 03 Μάι 2007, 01:29:10 μμ »
Το όλο νόημα είναι το εξής:
Όταν το κύριο πρόγραμμα καλεί στον κώδικα του ένα υποπρόγραμμα, που και αυτό με τη σειρά του καλεί ένα άλλο, και εκείνο ένα άλλο κοκ., ο μεταγλωττιστής της γλώσσας οφείλει να "θυμάται" την σειρά με την οποία κλήθηκαν τα υποπρογράμματα, ούτως ώστε, όταν τελειώσει το καθένα από αυτά, να γυρίζει σε εκείνο που το κάλεσε και ακριβώς σε εκείνο το σημείο που κλήθηκε.
Αυτό υλοποιείται με χρήση στοίβας. Αρχικά, στην στοίβα ωθείται το κύριο πρόγραμμα, από πάνω το υποπρόγραμμα που κάλεσε αυτό, από πάνω το υποπρόγραμμα που κάλεσε το τελευταίο κοκ.. Όταν το υποπρόγραμμα που κλήθηκε τελευταίο (και είναι στην κορυφή της στοίβας) ολοκληρώσει , απωθείται από την στοίβα και η ροή της εκτέλεσης μεταφέρεται στο επόμενο υποπρόγραμμα της στοίβας. Όταν και αυτό ολοκληρώσει, αφαιρείται από την στοίβα κοκ.
Τελικά, ο έλεγχος θα μεταφερθεί στο τελευταίο στοιχείο της στοίβας που είναι πάντα το κύριο πρόγραμμα και εκεί θα ολοκληρωθεί η εκτέλεση.

Καλύτερα τώρα;;
Παπαδόπουλος Πέτρος
Καθηγητής Πληροφορικής

Kalli

  • Ομάδα διαγωνισμάτων 2010
  • *
  • Μηνύματα: 41
Απ: Η χρήση στοίβας στην κλήση διαδικασιών
« Απάντηση #2 στις: 03 Μάι 2007, 07:14:05 μμ »
Ευχαριστώ πολύ!Να'σαι καλά!