rexx — συγκεντρωτικός οδηγός — DedSec Project
rexx — συγκεντρωτικός οδηγός REXX Έννοια Η REXX χρησιμοποιείται για scripts και host integration, συχνά σε ιστορικά και mainframe περιβάλλοντα, με έμφαση σε strings. Παράδειγμα πηγαίου…
REXX
Έννοια
Η REXX χρησιμοποιείται για scripts και host integration, συχνά σε ιστορικά και mainframe περιβάλλοντα, με έμφαση σε strings.
Παράδειγμα πηγαίου κώδικα ή χρήσης
total = 0
do i = 1 to 3
total = total + i
end
say total
Άσκηση με συγκεκριμένο στόχο
Υπολόγισε το έξι της επανάληψης και ξεχώρισε εντολές host από τη βασική REXX.
Έλεγχος και διάγνωση
Οι case-insensitive identifiers δεν σημαίνουν φορητότητα των host APIs· σημείωσε runtime και περιβάλλον.
Σημείωσε την είσοδο, το αναμενόμενο αποτέλεσμα και το πραγματικό αποτέλεσμα στην εγκατεστημένη έκδοση της REXX. Αν ο κώδικας δεν είναι προσβάσιμος από το κινητό, κράτησε το παράδειγμα ως μη δοκιμασμένο και εξήγησε τη σημασιολογία αντί να ισχυριστείς επιτυχία. Κάνε μια δεύτερη δοκιμή που απομονώνει μόνο τον μηχανισμό της άσκησης και κράτησε ακριβές σφάλμα με τρόπο που να μην εκθέτει προσωπικά δεδομένα.
REXX — Αναλυτικός οδηγός εξάσκησης
Μικρή αφετηρία πηγαίου κώδικα
say "Hello, Ada!"
Περιβάλλον: Run with a REXX interpreter.. Κράτησε αντίγραφο του αρχικού κώδικα και σημείωσε έκδοση εργαλείου. Ξεχώρισε αν η εκτέλεση επιστρέφει τιμή, εμφανίζει κείμενο ή αλλάζει state. Για τις πρώτες δοκιμές χρησιμοποίησε απομονωμένο περιβάλλον, όχι πραγματικούς λογαριασμούς ή δεδομένα.
Ανάλυση του ιδιαίτερου μηχανισμού
Με PARSE ARG διάβασε ορίσματα, κανονικοποίησε κείμενο και μέτρησε tokens. Δοκίμασε αρχικά/διαδοχικά κενά.
Διάγνωση κρίσιμου ορίου
Classic REXX/ooRexx έχουν διαφορές. STEM variables, numeric precision και return codes εξωτερικών εντολών θέλουν έλεγχο.
REXX — Διαδρομή ουσιαστικής εξάσκησης
Διαφορές περιβάλλοντος
Η REXX χειρίζεται κυρίως συμβολοσειρές και έχει διαφορετικά runtimes, όπως z/OS REXX και Regina. Το παράδειγμα διαβάζει δύο παραμέτρους, ελέγχει την ποσότητα πριν την αριθμητική σύγκριση και επιστρέφει συγκεκριμένο αποτέλεσμα. Μια επιτυχής εκτέλεση σε έναν host δεν εγγυάται συμβατότητα όλων των εξωτερικών εντολών.
Παράδειγμα (check.rexx)
/* check.rexx: no file or system changes */
parse arg item qty
if item = '' then do
say 'missing item'
exit 1
end
if datatype(qty, 'W') = 0 then do
say 'quantity must be a whole number'
exit 2
end
if qty < 0 then do
say 'quantity cannot be negative'
exit 3
end
say item':' qty
exit 0
Για τις παραμέτρους bolt 4 αναμένεται bolt: 4, με πιθανές διαφορές στα κενά της εξόδου. Η DATATYPE με επιλογή W ελέγχει μορφή ακέραιου υπό τους αριθμητικούς κανόνες του interpreter· δεν υποκαθιστά έλεγχο ορίων ή πρόσβασης.
Δοκιμές βήμα προς βήμα
- Παράλειψε το item και έλεγξε exit code 1 χωρίς παρενέργειες σε αρχεία.
- Πέρασε qty=abc: η DATATYPE πρέπει να απορρίψει την τιμή πριν από το qty < 0.
- Πέρασε -1: σωστή αριθμητική μορφή, αλλά μη επιτρεπτή ποσότητα.
- Δοκίμασε πολύ μεγάλους αριθμούς και διαφορετικό NUMERIC DIGITS. Σύγκρινε την ακρίβεια αντί να υποθέτεις συνηθισμένο 64-bit integer.
- Κατάγραψε τον ακριβή τρόπο εκκίνησης και ανάγνωσης return code στο πραγματικό REXX runtime.
Τεκμήρια
Παράδωσε διάλεκτο, έκδοση interpreter, εντολή εκτέλεσης και πραγματική έξοδο/κωδικό επιστροφής για κάθε δοκιμή. Απόφυγε εντολές που αλλάζουν πραγματικά δεδομένα z/OS ή shell. Αναφορά: https://www.ibm.com/docs/en/zos/3.1.0?topic=functions-datatype