2010-10-31

EBCDIC

Någonsin hört denna förkortning? Det är, enkelt uttryckt, IBM:s alternativ till ASCII, som i sin tur, mycket enkelt uttryckt, är den standard som alla världens datorer använder för att vara överens om vilka siffror som är vilka bokstäver. Om en dator skickar iväg 01000001, som decimalt skrivet talet 65, så är det stora bokstaven A enligt ASCII-tabellen. Självklart? - Idag ja, men historiskt sett inte alls.

Att vi kan använda datorer och internet som vi gör bygger på myriader sådana här överenskommelser och standarder. Det har ofta krävts blod, svett och tårar - bildligt eller bokstavligt - för dem att sätta sig.

Idag är ASCII så självklart att det verkar märkligt att någon alls kunnat ifrågasätta det. Inte ens Microsoft i sina glansdagar hade kunnat komma på någon sådan idé (vad jag vet), så hur kunde firman IBM göra det? - Därför att IBM under flera årtionden var synonymt med datorer, på ett sätt som varken Microsoft, Google, eller vilka ni vill ens skulle kunna börja drömma om. Jag gissar vilt att det, säg, 1970 fanns fler datorer på planeten från IBM än från alla andra tillverkare tillsammans. Det är ingen slump att persondatorerna fick luft under vingarna på allvar 1981, då IBM lanserade sin Personal Computer, den PC-arkitektur som de flesta datorer som detta läses på fortfarande bygger på.

EBCDIC är för övrigt en jävla dum standard, och det är skönt att den aldrig slog igenom utanför IBM-världen (den lanserades f.ö. efter ASCII). Jag har personligen aldrig haft närmare bekantskap med den än enstaka filer som enkelt kunnat konverteras, men inser att kodmakare i en EBCDIC-värld hade fått lära sig att skriva ytterligare några rader när vissa standardoperationer ska utföras. Som att bokstäverna a-i kodas 129-137, men att man sedan gör ett hopp till blocket j-r på 145-153? Och därefter ännu ett till s-z på 162-169. Anledningen lär faktiskt vara att IBM utgick ifrån en standard som konstruerats utifrån de krav, behov och möjligheter som hålkorten erbjöd. Det skulle exempelvis kunna förklara de till synes godtyckliga grupperingarna av bokstäverna.

Visst kan sådana problem lösas i standardbibliotek. Datarevolutionen och webben hade kunnat bygga även på denna grund (inte för att ASCII är perfekt). Men det är alltid skönt att kunna konstatera att mänskligheten åtminstone ibland valt den bredare rakare vägen, när alternativet erbjudits.

Den enda anledningen till att EBCDIC alls förekommer verkar vara att den användes i IBM:s System/360, en serie maskiner som lanserades 1964 och tog den dåvarande marknaden med ungefär lika mycket storm som sedemera PCn. Vad monopolets välsignelser beträffar, kan man meditera över det faktum att ett antal inbördes inkompatibla varianter på EBCDIC lanserades.


Wikipedia: Extended Binary Coded Decimal Interchange Code

Läs mer på faktoid-bloggen om Bokföringsmaskiner, de icke-elektroniska datorer som IBM konkurrerade med långt innan ENIAC såg dagens ljus.

5 kommentarer:

Anders Dahnielson sa...

Åh, EBCDIC. Har en gång i tiden skrivit en klient i Java för att hämta kreditupplysningar från en mainframe över TCP/IP, vars protokoll naturligtivis krävde EBCDIC. Plågsamma minnen.

Kurt sa...

Oftast verkar det ju snarast kräva stor summor i mutor, och inte "blod, svett och tårar" för att skapa en standard!

Lena Synnerholm sa...

Jag tror Peter syftade på ansträngningen, att skapa själva kodspråket.

Hexmaster sa...

Kurt: Har du något exempel från det aktuella området?

Kurt sa...

http://www.idg.se/2.1085/1.118473
http://www.idg.se/2.1085/1.118337