Неліктен EBCDIC-те әріптер бірізді емес?

ASCII стандарты 1963 жылы қабылданған және қазір бірінші 128 таңбасы ASCII-ден ерекшеленетін кодтауды ешкім пайдаланбайды. Дегенмен, өткен ғасырдың аяғына дейін EBCDIC белсенді түрде қолданылды - IBM негізгі компьютерлері мен олардың кеңестік клондары EC компьютерлері үшін стандартты кодтау. EBCDIC қазіргі IBM Z негізгі фреймдеріне арналған стандартты операциялық жүйе болып табылатын z/OS жүйесіндегі негізгі кодтау болып қала береді.

EBCDIC-ке қараған кезде бірден көзге түсетін нәрсе - әріптер бір қатарда емес: арасында I и J және арасында R и S пайдаланылмаған позициялар болды (осы интервалдар үшін ES компьютерінде таратылды кириллица таңбалары). Көрші әріптер арасында тең емес бос орындар бар әріптерді кодтау кім ойлаған?

Неліктен EBCDIC-те әріптер бірізді емес?

EBCDIC («кеңейтілген BCDIC») атауының өзі бұл кодтау - ASCII-ден айырмашылығы - нөлден жасалмағанын, бірақ содан бері қолданылып келе жатқан алты биттік BCDIC кодтауына негізделгенін білдіреді. IBM 704 (1954):

Неліктен EBCDIC-те әріптер бірізді емес?

Бірден кері үйлесімділік жоқ: EBCDIC-ке көшу кезінде жоғалған BCDIC-тің ыңғайлы ерекшелігі сандар болды. 0-9 0-9 кодтарына сәйкес келеді. Дегенмен, олардың арасында жеті кодтың алшақтықтары бар I и J және арасындағы сегіз кодта R и S BCDIC-те болды. Олар қайдан келді?

(E)BCDIC тарихы IBM тарихымен бір мезгілде - электронды есептеуіш машиналардан көп бұрын басталады. IBM төрт компанияның бірігуі нәтижесінде құрылды, олардың ішінде ең дамығаны 1896 жылы өнертапқыш Герман Холлерит негізін қалаған «Tabulating Machine Company» болды. табулятор. Алғашқы табуляторлар белгілі бір жерде тесілген перфокарталардың санын жай ғана санады; бірақ 1905 жылы Холлерит өндірісін бастады ондық табуляторлар. Ондық табуляторға арналған әрбір карта ерікті ұзындықтағы өрістерден тұрды және бұл өрістерде әдеттегі ондық түрінде жазылған сандар бүкіл палуба бойынша жинақталды. Картаны өрістерге бөлу табулятордың патч панеліндегі сымдарды қосу арқылы анықталды. Мысалы, осы Холлерит перфокартасында, сақталады Конгресс кітапханасында 23456789012345678 саны анық мөрленген, өрістерге бөлінгені белгісіз:

Неліктен EBCDIC-те әріптер бірізді емес?

Ең зейінді адам Холлерит картасында саңылаулар үшін 12 жол бар екенін байқаған болуы мүмкін, бірақ сандар үшін он жеткілікті; және BCDIC-те ең маңызды екі биттің әрбір мәні үшін 12 мүмкін кодтың тек 16-сі ғана пайдаланылады.

Әрине, бұл кездейсоқтық емес. Бастапқыда Холлерит «арнайы белгілер» үшін қосылмаған, бірақ жай ғана есептелетін қосымша жолдарды ойластырды - алғашқы табуляторлардағыдай. (Бүгін біз оларды «биттік өрістер» деп атайтын едік.) Сонымен қатар, «арнайы белгілер» арасында топтық көрсеткіштерді орнатуға болады: егер кестелеу тек соңғы сомаларды ғана емес, сонымен қатар аралықтарды да қажет етсе, онда таблицатор тоқтаған кезде тоқтайды. ол топ индикаторларының кез келгенінің өзгерісін анықтады және операторға сандық тақталардағы аралық қорытындыларды қағазға қайта жазуға, тақтаны қалпына келтіруге және кестені қайта бастауға тура келді. Мысалы, бухгалтерлік балансты есептеу кезінде карточкалар тобы бір күнге немесе бір контрагентке сәйкес келуі мүмкін.

1920 жылға қарай, Холлерит зейнеткерлікке шыққан кезде, телетайпқа қосылған және оператордың араласуын қажет етпей-ақ аралық қорытындыларды басып шығара алатын «теру табуляторлары» қолданыла бастады. Ендігі қиындық басып шығарылған сандардың әрқайсысының нені білдіретінін анықтау болды. 1931 жылы IBM әріптерді көрсету үшін «арнайы белгілерді» қолдануды шешті: 12-ші қатардағы белгі A қарай I, 11-де - бастап J қарай R, нөлде - бастап S қарай Z. Жаңа «алфавит табуляторы» аралық қорытындылармен бірге карталардың әрбір тобының атын басып шығара алады; бұл жағдайда үзілмеген баған таңбалар арасындағы бос орынға айналды. Назар аударыңыз S 0+2 саңылау комбинациясы арқылы белгіленеді және 0+1 комбинациясы бір бағандағы бір-біріне жақын орналасқан екі тесік оқырманда механикалық ақауларды тудыруы мүмкін деп қорқу үшін бастапқыда пайдаланылмады.

Неліктен EBCDIC-те әріптер бірізді емес?

Енді сіз BCDIC кестесіне сәл басқа бұрыштан қарай аласыз:

Неліктен EBCDIC-те әріптер бірізді емес?

0 және бос орын кері ауыстырылғанын қоспағанда, ең маңызды екі бит 1931 жылдан бері сәйкес таңба үшін перфокартаға тесілген «арнайы белгіні» анықтайды; ал ең аз маңызды төрт бит картаның негізгі бөлігіне тесілген цифрды анықтайды. Символдық қолдау & - / 1930 жылдары IBM табуляторларына қосылды және бұл таңбалардың BCDIC кодтауы олар үшін тесілген тесік комбинацияларына сәйкес келеді. Таңбалардың одан да көп санын қолдау қажет болғанда, 8-жол қосымша «арнайы белгі» ретінде тесілді - осылайша бір бағанда үш тесікке дейін болуы мүмкін. Перфокарталардың бұл пішімі ғасырдың соңына дейін іс жүзінде өзгеріссіз қалды. КСРО-да олар IBM компаниясының латын және тыныс белгілерін кодтауын қалдырды, ал кириллица әріптері үшін олар 12, 11, 0 жолдарда бірден бірнеше «арнайы белгілерді» тесіп тастады - бір бағандағы үш тесікпен шектелмейді.

IBM 704 компьютері жасалған кезде, олар оның таңбаларын кодтау туралы көп ойланбады: олар сол кезде перфокарталарда қолданылған кодтауды алып, тек «оны орнына қойды». 0 жылы BCDIC-тен EBCDIC-ке көшу кезінде әрбір символдың төменгі ретті төрт разряды өзгеріссіз қалдырылды, бірақ жоғары ретті разрядтар аздап араластырылды. Осылайша, өткен ғасырдың басында Холлерит таңдаған перфокарта пішімі IBM Z-ге дейінгі барлық IBM компьютерлерінің архитектурасына әсер етті.

Ақпарат көзі: www.habr.com

пікір қалдыру