Codage des caractères sur carte perforée
Le codage des caractères sur carte perforée est la pratique consistant à associer à chaque caractère un ensemble différent de perforations, ce qui permet par exemple d'y enregistrer un texte.
Histoire
Aux États-unis, vers 1890, Herman Hollerith invente un moyen d'enregistrer les données du recensement sur un support qu'une machine peut relire, en mettant au point un marquage sur carte par perforation après avoir utilisé des bandes de papier[1],[2].
La correspondance entre les perforations et les caractères ainsi que la taille de la carte ne sont pas normalisées à cette époque. Il existe donc divers formats de cartes perforées pour divers usages.
Codage sur un nombre fixe de bits
Le codage de caractère sur un nombre fixe de bits apparaît dans le code Baudot, ainsi que la notion de séquence d'échappement.
Le codage de caractères sur un nombre fixe de bits est repris dans un contexte industriel sur des cartes perforées.
En raison de l'existence de brevets le codage Hollerith de IBM n'est pas utilisé par Bull. Ce manque d'interopérabilité fragmenta le marché entre "clients IBM" et "clients Bull".
Le codage Bull n'utilise que onze lignes de perforation, soit une de moins qu'IBM tout en codant autant de caractères[3]. En Bull, les chiffres de zéro à neuf sont utilisés pour le numérique. Les doubles combinaisons utilisées pour les lettres sont différentes et portent sur les bits 9, 8, 7. Ainsi le A était représenté par les combinaisons de perforations 7 et 11, B par 7 et 0, C par 7 et 1 etc.
Vers le changement de siècle, développement d'un codage performant sur cartes perforées pour le recensement étatique. Le produit fut ensuite commercialisé par le Tabulating Machine Co.[4].
- Western Union en utilisa une version modifiée jusque dans les années 1950. L'espace et la sonnerie avaient été ajoutés.
- Dans les années 1930, le CCITT a introduit le International Telegraph Alphabet No. 2 (ITA2) code comme standard international, basé sur l' Western Union code modifié. Les États-Unis ont standardisé une version de l'ITA2 comme American Teletypewriter code (USTTY) qui était une base de 5-bit teletypewriter codes jusqu'aux débuts de l'ASCII 7 bits en 1963.
- RADIX-50 (1959) : 40 codes, stocke 3 caractères dans un mot de 16 bits en big endian (PDP-11)
Six-bit BCD était utilisé par IBM sur les premiers ordinateurs comme le IBM 704 en 1954[5]. Par la suite, il donne naissance à l'EBCDIC.
Illustrations
1964
Cette carte de 1964 fait apparaître la correspondance entre les caractères et leur représentation binaire de l'époque.
Programmation des mainframes
Le Fortran est l'un des premiers langages de programmation pour les mainframes, où les cartes perforées permettaient l'entrée des lignes d'instructions analysées par le compilateur.
Le langage de programmation COBOL a également utilisé les cartes perforées pour programmer les mainframes.
L'utilisation des cartes perforées ne permettant pas d'écrire de lettres en minuscules et explique le fait que les noms et mots-clés dans ces deux langages de programmation soient en lettres capitales.
Standard 5081
Carte cyrillique
Les cartes cyrilliques soviétiques utilisaient le même principe de codage que les cartes anglaises ou américaines ; les caractères ne correspondant pas bénéficiaient de perforations supplémentaires.
IBM 96 caractères
Lorsque la perforation n'était plus une opération compliquée, il est devenu possible de perforer plus de bits simultanément pour un même caractère, comme cela se faisait déjà depuis longtemps dans le code Baudot. IBM l'a fait en convertissant le codage précédent pour les lettres et les chiffres.
- Chaque perforation de chiffre 0 à 9 des cartes perforées précédentes devenait codée en décimal codé binaire (DCB/BCD), il s'agit des lignes de bits 1, 2, 4 et 8 sur la carte, offrant 10 valeurs.
- Les deux perforations supérieures restantes offrent quatre possibilités[6] . Les mêmes caractères qui étaient auparavant codés sur douze bits n'étaient dès lors plus codés que sur six bits.
La carte perforée comporte 3 groupes de 32 caractères, soit 96 caractères au total, chacun sur 6 bits. Il y avait donc 64 caractères possibles. Ce type de carte était également utilisé pour encoder des caractères sur 8 bits en EBCDIC : le groupe du haut combiné avec 2 bits du groupe du bas, ainsi que le groupe du milieu avec 2 autres bits du groupe inférieur formaient 2 groupes de 32 caractères sur 8 bits, soit 64 caractères 8 bits par carte perforées[7].
Notes et références
- http://www.kerleo.net/computers/mecanographie.htm
- Frank da Cruz, « Herman Hollerith », sur Columbia University Computing History, Columbia University, 2019a (consulté le )
- http://yves.cornil.free.fr/cartep.htm
- http://tronweb.super-nova.co.jp/characcodehist.html
- IBM Corporation, 704 electronic data-processing machine: manual of operation, (lire en ligne) p. 35
- The Punched card
- Dik T Winter, « 96-column Punched Card Code » [archive du ] (consulté le )
- Portail de l’informatique