Αυτόματα στοίβας

Τα πεπερασμένα αυτόματα δεν μπορούν να αναγνωρίσουν έναν μεγάλο αριθμό από γλώσσες που έχουν πρακτική σημασία στην πληροφορική (π.χ. όλες τις γλώσσες υψηλού επιπέδου). Για το λόγο αυτό ορίζουμε και εξετάζουμε τα ισχυρότερα αυτόματα στοίβας.

Τα αυτόματα στοίβας (ΑΣ) ορίζονται από την εξάδα Μ = (Κ, Σ, Γ, δ, q0, Z0)

K
Πεπερασμένο σύνολο καταστάσεων
Σ
Αλφάβητο εισόδου
Γ
Αλφάβητο για τη στοίβα
δ
Σύνολο κινήσεων που εκτελεί το αυτόματο
q0
Αρχική κατάσταση
Ζ0
Αρχική σύμβολο της στοίβας

Κάθε εντολή του ΑΣ ονομάζεται κίνηση (move). Η κίνηση ορίζεται από:

Όταν σε κάθε τριάδα αντιστοιχεί μια το πολύ κίνηση τότε το αυτόματο λέγεται ντετερμινιστικό αυτόματο στοίβας (ΝΑΣ) (deterministic stack automaton (DSA)). Αντίθετα, αν για κάποιες τιμές της δ υπάρχουν πολλές πιθανές κινήσεις τότε το αυτόματο καλείται μη ντετερμινιστικό αυτόματο στοίβας (ΜΑΣ) (non-deterministic stack automaton (NSA)). (Οι λέξη ντετερμινιστικό που εμφανίζεται στην ελληνική βιβλιογραφία είναι συνώνυμη με τη λέξη αιτιοκρατικό).

Η λειτουργία του ΑΣ ορίζεται από τρεις υποεντολές που εκτελούνται διαδοχικά:

  1. την υποεντολή της στοίβας
  2. την υποεντολή εισόδου
  3. την υποεντολή επόμενης κατάστασης
Οι εντολές μπορούν να εκτελέσουν τις παρακάτω λειτουργίες: