Γιατί τα γράμματα δεν είναι στη σειρά στο EBCDIC;

Το πρότυπο ASCII υιοθετήθηκε το 1963 και τώρα σχεδόν κανείς δεν χρησιμοποιεί μια κωδικοποίηση της οποίας οι πρώτοι 128 χαρακτήρες διαφέρουν από το ASCII. Ωστόσο, μέχρι τα τέλη του περασμένου αιώνα, το EBCDIC χρησιμοποιήθηκε ενεργά - η τυπική κωδικοποίηση για τους μεγάλους υπολογιστές της IBM και τους σοβιετικούς κλώνους υπολογιστές EC. Το EBCDIC παραμένει η κύρια κωδικοποίηση στο z/OS, το τυπικό λειτουργικό σύστημα για τους σύγχρονους κεντρικούς υπολογιστές IBM Z.

Αυτό που σου τραβάει αμέσως το μάτι όταν κοιτάς το EBCDIC είναι ότι τα γράμματα δεν βρίσκονται στη σειρά: ανάμεσα I и J και μεταξύ R и S υπήρχαν αχρησιμοποίητες θέσεις (στον υπολογιστή ES για αυτά τα διαστήματα διανέμονται κυριλλικοί χαρακτήρες). Ποιος θα σκεφτόταν να κωδικοποιήσει γράμματα με άνισα κενά μεταξύ των διπλανών γραμμάτων;

Γιατί τα γράμματα δεν είναι στη σειρά στο EBCDIC;

Το ίδιο το όνομα EBCDIC ("Extended BCDIC") υποδηλώνει ότι αυτή η κωδικοποίηση - σε αντίθεση με το ASCII - δεν δημιουργήθηκε από την αρχή, αλλά βασίζεται στην κωδικοποίηση BCDIC έξι bit, η οποία χρησιμοποιείται από τότε IBM 704 (1954):

Γιατί τα γράμματα δεν είναι στη σειρά στο EBCDIC;

Δεν υπάρχει άμεση συμβατότητα προς τα πίσω: ένα βολικό χαρακτηριστικό του BCDIC που χάθηκε κατά τη μετάβαση στο EBCDIC ήταν ότι οι αριθμοί 0-9 αντιστοιχούν στους κωδικούς 0-9. Ωστόσο, υπάρχουν κενά επτά κωδικών μεταξύ τους I и J και σε οκτώ κωδικούς μεταξύ R и S έχουν ήδη πάει στο BCDIC. Από πού προέρχονται;

Η ιστορία του (E)BCDIC ξεκινά ταυτόχρονα με την ιστορία της IBM - πολύ πριν από τους ηλεκτρονικούς υπολογιστές. Η IBM δημιουργήθηκε ως αποτέλεσμα της συγχώνευσης τεσσάρων εταιρειών, εκ των οποίων η πιο προηγμένη τεχνολογικά ήταν η Tabulating Machine Company, που ιδρύθηκε το 1896 από τον Herman Hollerith, τον εφευρέτη. πινακοποιητής. Οι πρώτοι ταξινομητές απλώς μέτρησαν τον αριθμό των τρυπημένων φύλλων που τρυπήθηκαν σε μια συγκεκριμένη τοποθεσία. αλλά το 1905 ξεκίνησε η παραγωγή του Hollerith δεκαδικός πινακοποιητές. Κάθε κάρτα για τον δεκαδικό πίνακα αποτελούνταν από πεδία αυθαίρετου μήκους και οι αριθμοί που γράφτηκαν σε αυτά τα πεδία στη συνήθη δεκαδική μορφή αθροίζονταν σε ολόκληρη την τράπουλα. Η κατανομή του χάρτη σε πεδία προσδιορίστηκε συνδέοντας τα καλώδια στον πίνακα κώδικα του πίνακα. Για παράδειγμα, σε αυτό το χαρτί διάτρησης Hollerith, αποθηκευμένο στη Βιβλιοθήκη του Κογκρέσου, ο αριθμός 23456789012345678 είναι σαφώς σφραγισμένος, άγνωστος ως χωρισμένος σε πεδία:

Γιατί τα γράμματα δεν είναι στη σειρά στο EBCDIC;

Οι πιο προσεκτικοί μπορεί να παρατήρησαν ότι στον χάρτη Hollerith υπάρχουν 12 σειρές για τρύπες, αν και δέκα είναι αρκετές για αριθμούς. και στο BCDIC, για κάθε τιμή των δύο πιο σημαντικών bit, χρησιμοποιούνται μόνο 12 κωδικοί από τους 16 δυνατούς.

Αυτό βέβαια δεν είναι τυχαίο. Αρχικά, ο Hollerith σκόπευε πρόσθετες σειρές για «ειδικούς βαθμούς» που δεν προστέθηκαν, αλλά απλώς μετρήθηκαν - όπως στους πρώτους πίνακες. (Σήμερα θα τα ονομάζαμε "πεδία bit".) Επιπλέον, μεταξύ των "ειδικών σημείων" ήταν δυνατό να οριστούν δείκτες ομάδας: εάν ο πίνακας απαιτούσε όχι μόνο τα τελικά αθροίσματα, αλλά και τα ενδιάμεσα, τότε ο πίνακας θα σταματούσε όταν εντόπισε μια αλλαγή σε οποιονδήποτε από τους δείκτες της ομάδας και ο χειριστής έπρεπε να ξαναγράψει τα υποσύνολα από τους ψηφιακούς πίνακες σε χαρτί, να επαναφέρει τον πίνακα και να συνεχίσει τον πίνακα. Για παράδειγμα, κατά τον υπολογισμό των λογιστικών υπολοίπων, μια ομάδα καρτών θα μπορούσε να αντιστοιχεί σε μία ημερομηνία ή σε έναν αντισυμβαλλόμενο.

Μέχρι το 1920, όταν ο Hollerith είχε ήδη συνταξιοδοτηθεί, άρχισαν να χρησιμοποιούνται οι «tabulators πληκτρολόγησης», οι οποίοι ήταν συνδεδεμένοι με έναν τηλετύπο και μπορούσαν να εκτυπώσουν οι ίδιοι υποσύνολα χωρίς να απαιτείται η παρέμβαση του χειριστή. Η δυσκολία τώρα ήταν να προσδιοριστεί σε τι αναφερόταν κάθε ένας από τους τυπωμένους αριθμούς. Το 1931, η IBM αποφάσισε να χρησιμοποιήσει «ειδικά σημάδια» για να υποδείξει γράμματα: ένα σημάδι στη 12η σειρά έδειχνε το γράμμα από A να I, στο 11ο - από J να R, στο μηδέν - από S να Z. Ο νέος "πίνακας αλφαβήτου" θα μπορούσε να εκτυπώσει το όνομα κάθε ομάδας καρτών μαζί με υποσύνολα. σε αυτήν την περίπτωση, η αδιάσπαστη στήλη μετατράπηκε σε κενό μεταξύ χαρακτήρων. Παρακαλούμε να σημειώσετε ότι S ορίζεται από τον συνδυασμό οπών 0+2 και ο συνδυασμός 0+1 δεν χρησιμοποιήθηκε αρχικά από φόβο ότι δύο τρύπες η μία δίπλα στην άλλη στην ίδια στήλη θα προκαλούσαν μηχανικά προβλήματα στον αναγνώστη.

Γιατί τα γράμματα δεν είναι στη σειρά στο EBCDIC;

Τώρα μπορείτε να δείτε τον πίνακα BCDIC από μια ελαφρώς διαφορετική οπτική γωνία:

Γιατί τα γράμματα δεν είναι στη σειρά στο EBCDIC;

Εκτός από το ότι το 0 και το διάστημα αντιστρέφονται, τα πιο σημαντικά δύο μπιτ ορίζουν το "ειδικό σημάδι" που έχει μπει στην κάρτα διάτρησης για τον αντίστοιχο χαρακτήρα από το 1931. και τα λιγότερο σημαντικά τέσσερα bit καθορίζουν το ψηφίο που έχει τρυπηθεί στο κύριο μέρος της κάρτας. Υποστήριξη συμβόλων & - / προστέθηκε στους πινακοποιητές της IBM τη δεκαετία του 1930 και η κωδικοποίηση BCDIC αυτών των χαρακτήρων αντιστοιχεί στους συνδυασμούς οπών που διατρήθηκαν για αυτούς. Όταν χρειαζόταν υποστήριξη για ακόμη μεγαλύτερο αριθμό χαρακτήρων, η σειρά 8 διατρυπήθηκε ως πρόσθετο "ειδικό σημάδι" - επομένως, θα μπορούσαν να υπάρχουν έως και τρεις τρύπες σε μία στήλη. Αυτή η μορφή των διάτρητων καρτών παρέμεινε ουσιαστικά αμετάβλητη μέχρι το τέλος του αιώνα. Στην ΕΣΣΔ, άφησαν τις λατινικές κωδικοποιήσεις και τα σημεία στίξης της IBM, και για τα κυριλλικά γράμματα τρύπησαν πολλά «ειδικά σημάδια» ταυτόχρονα στις σειρές 12, 11, 0 - χωρίς να περιορίζονται σε τρεις τρύπες σε μία στήλη.

Όταν δημιουργήθηκε ο υπολογιστής IBM 704, δεν σκέφτηκαν πολύ για την κωδικοποίηση χαρακτήρων για αυτόν: πήραν την κωδικοποίηση που χρησιμοποιήθηκε ήδη σε διάτρητες κάρτες εκείνη την εποχή και μόνο «τον έβαλαν στη θέση του». Το 0, κατά τη μετάβαση από το BCDIC στο EBCDIC, τα τέσσερα bit χαμηλής τάξης κάθε συμβόλου παρέμειναν αμετάβλητα, αν και τα bit υψηλής τάξης ανακατεύτηκαν λίγο. Έτσι, η διάτρητη μορφή κάρτας που επέλεξε ο Hollerith στις αρχές του περασμένου αιώνα επηρέασε την αρχιτεκτονική όλων των υπολογιστών της IBM, μέχρι και του IBM Z.

Πηγή: www.habr.com

Προσθέστε ένα σχόλιο