Factor — Αναλυτικός οδηγός εξάσκησης — DedSec Project
Factor — εξήγησε τη στοίβα βήμα προς βήμα Μία είσοδος και μία έξοδος Το ( n -- n ) δηλώνει μία τιμή εισόδου και μία εξόδου. Η dup διπλασιάζει το 5, ο πολλαπλασιασμός καταναλώνει δύο…
Factor — εξήγησε τη στοίβα βήμα προς βήμα
Μία είσοδος και μία έξοδος
USING: kernel math prettyprint ;
IN: square-lab
: square ( n -- n ) dup * ;
5 square .
Το ( n -- n ) δηλώνει μία τιμή εισόδου και μία εξόδου. Η dup διπλασιάζει το 5, ο πολλαπλασιασμός καταναλώνει δύο πεντάρια και αφήνει 25. Η εντολή εκτύπωσης χρησιμοποιεί το στοιχείο της στοίβας. Κατάγραψε πώς φορτώνεται το vocabulary στη δική σου έκδοση.
Εντοπισμός underflow
Άλλαξε τον ορισμό σε σκέτο *. Απαιτούνται πλέον δύο τιμές ενώ ο καλών προσφέρει μία. Εξήγησε τη σύγκρουση του stack effect. Μετά δοκίμασε dup dup * και παρατήρησε ότι μένει επιπλέον στοιχείο, ακόμη και αν το αποτέλεσμα που τυπώνεται φαίνεται σωστό.
Αυτόνομη άσκηση
Όρισε word για έλεγχο άρτιου ακεραίου και εξέτασε 0, -2 και 7. Για κάθε εντολή γράψε κατάσταση στοίβας πριν και μετά. Σημείωσε έκδοση interpreter και πραγματικές παρατηρήσεις: δεν έχει γίνει δοκιμή Factor εδώ.
Εντόπισε την επιπλέον τιμή στη στοίβα
Ξεκίνα από κενή στοίβα και ακολούθησε την ακολουθία 5 dup dup *. Μετά τις δύο dup έχεις 5 5 5 και ο πολλαπλασιασμός καταναλώνει δύο κορυφαία στοιχεία, αφήνοντας 5 25. Άρα δεν υπάρχει μόνο ένα αποτέλεσμα. Αν επόμενη λέξη υποθέσει ακριβώς μία τιμή, το υπόλοιπο 5 θα επηρεάσει άλλη πράξη. Το σχόλιο stack effect περιγράφει συμβόλαιο αλλά δεν επαληθεύει την υλοποίηση. Δημιούργησε δεύτερο word που δέχεται δύο αριθμούς και υπολογίζει μέσο όρο. Διερεύνησε ποια αριθμητική πράξη επιστρέφει ακέραιο ή κινητής υποδιαστολής στη δική σου έκδοση και κατέγραψε τη στοίβα μετά από κάθε στάδιο.
Factor
Συνήθης χρήση: Συναρτησιακός προγραμματισμός.
Προτεινόμενη επέκταση αρχείου: .factor.
Εκτέλεση / περιβάλλον: Φόρτωσέ το στο περιβάλλον της γλώσσας Factor.
Αρχικό παράδειγμα
USING: io ;
IN: scratchpad
"Hello, Ada!" print
Πώς διαβάζεται
Η Factor βασίζεται σε συνένωση· μην τη μπερδεύεις με την εντολή Unix factor.
Συνηθισμένο λάθος
Η Factor βασίζεται σε συνένωση· μην τη μπερδεύεις με την εντολή Unix factor. Έλεγξε την έκδοση διερμηνευτή/μεταγλωττιστή και μην εκλαμβάνεις το δείγμα ως έτοιμη εφαρμογή παραγωγής.