Προσομοιωτής Πεπερασμένης Κατάστασης (FSM)
Προσομοιώστε ντετερμινιστικό πεπερασμένο αυτόματο με κανόνες, αρχική κατάσταση και είσοδο. Δείτε διαδρομή και τελική κατάσταση. Η επεξεργασία γίνεται τοπικά…
Έναρξη χρήσης
Χαρακτηριστικά και δυνατότητες
Το εργαλείο αυτό προσομοιώνει έναν ντετερμινιστικό πεπερασμένο αυτόματο (DFA) χωρίς καταστάσεις αποδοχής. Κάθε κανόνας πρέπει να περιέχει ακριβώς τρία πεδία διαχωρισμένα με κόμμα: τρέχουσα κατάσταση, χαρακτήρας εισόδου και επόμενη κατάσταση. Ο αριθμός κανόνων πρέπει να είναι από 1 έως 200. Τα ονόματα καταστάσεων δεν πρέπει να είναι κενά και το μήκος τους δεν μπορεί να υπερβαίνει τους 50 χαρακτήρες. Κάθε σύμβολο εισόδου πρέπει να είναι ακριβώς ένα σημείο κώδικα Unicode.
Παράδειγμα εργασίας
Έστω οι κανόνες:
q0,0,q0 q0,1,q1 q1,0,q0 q1,1,q1
με αρχική κατάσταση q0 και είσοδο 1011. Η προσομοίωση θα δώσει τη διαδρομή q0 -> q1 -> q0 -> q1 -> q1 και τελική κατάσταση q1.
Περιορισμοί
- Δεν υποστηρίζονται έψιλον μεταβάσεις, μη ντετερμινισμός, καταστάσεις αποδοχής ή μετατροπή σε κανονική έκφραση.
- Η συμβολοσειρά εισόδου περιορίζεται σε 10000 μονάδες κώδικα UTF-16.
- Αν λείπει μετάβαση για κάποιο ζεύγος κατάστασης-χαρακτήρα, η προσομοίωση σταματά με σφάλμα σε εκείνο το σημείο.
- Τα κόμματα είναι δομικά και δεν μπορούν να εμφανίζονται μέσα σε ονόματα καταστάσεων ή σύμβολα.
Συχνές ερωτήσεις
Τι συμβαίνει αν εισάγω δύο κανόνες με το ίδιο ζεύγος κατάστασης και συμβόλου;
Το εργαλείο απορρίπτει διπλότυπους κανόνες και εμφανίζει σφάλμα, αντί να αντικαταστήσει σιωπηλά τον προηγούμενο κανόνα.
Μπορώ να χρησιμοποιήσω πολυσύλλαβα σύμβολα εισόδου;
Όχι, κάθε σύμβολο εισόδου πρέπει να είναι ακριβώς ένα σημείο κώδικα Unicode. Για παράδειγμα, ο χαρακτήρας U+1F600 δεν επιτρέπεται επειδή είναι εκτός του βασικού πολυγλωσσικού επιπέδου.
Γιατί η έξοδος είναι πολύ μεγάλη για μεγάλη είσοδο;
Η έξοδος περιλαμβάνει ολόκληρη τη διαδρομή των καταστάσεων. Για μεγάλες εισόδους, η διαδρομή μπορεί να είναι μακρά. Συνιστάται να δοκιμάσετε πρώτα μικρή είσοδο και να συγκρίνετε κάθε μετάβαση με τον πίνακα κανόνων.
Λίστα ελέγχου
- Βεβαιωθείτε ότι κάθε κανόνας έχει ακριβώς δύο κόμματα.
- Ελέγξτε ότι τα ονόματα καταστάσεων δεν περιέχουν κόμματα.
- Επιβεβαιώστε ότι η αρχική κατάσταση υπάρχει στους κανόνες.
- Χρησιμοποιήστε μόνο χαρακτήρες ενός σημείου κώδικα για σύμβολα εισόδου.
- Ελέγξτε ότι δεν υπάρχουν διπλότυπα ζεύγη κατάστασης-συμβόλου.
Η επεξεργασία γίνεται τοπικά στον πρόγραμμα περιήγησης σας.