« Programmation/Abstraction » : différence entre les versions

Contenu supprimé Contenu ajouté
Tavernier (discussion | contributions)
coquille
Tavernier (discussion | contributions)
→‎Texte : voila
Ligne 253 :
Au contraire des nombres qui peuvent être convertis entres différentes bases de manière équivalente et absolue (du moins en théorie), les informations non numériques demandent l'usage d'un code de communication qui fixe arbitrairement les correspondances entres les informations et leur équivalent numérique. Pour que l'émetteur et le récepteur puissent se comprendre, il est nécessaire que chacun utilise le même code : la nécessité de standardisation est donc primordiale ici. Il y a de nombreux exemples de standards de communication tout au long de l'histoire, du [[Morse]] au [[w:Home Riggs Popham|code Popham]], du [[:w:code Baudot|code Baudot]] au [[:w:en:Fieldata|code Fieldata]]. Nous ne nous arrêterons que sur ceux qui sont effectivement utilisés dans le cadre de l'informatique, et plus précisément ceux qui sont rencontrés par les programmeurs.
 
=== Texte ===
 
==== ASCII ====
 
Le [[#code source|code source]] même d'un programme est constitué d'un texte. Pour restituer un texte, la quasi-totalité des système informatiques utilisent le standard ASCII, ou un dérivé de celui-ci. Constitué en 1963 puis complété en 1967 il permet de coder sur 7 [[#bit|bits]] l'alphabet latin sans les diacritiques, en majuscules et en minuscules, les 10 chiffres du système décimal, des caractères de ponctuation, des symboles mathématiques et financiers ($%&), et des codes de contrôle destinées à superviser la communication.
 
==== ISO 646 et ISO 8859 ====
 
L'ascii se trouva rapidement limité pour représenter les caractères accentués et autres symboles non américains. L'[[w:ISO 646|ISO 646]] fut la première tentative pour augmenter le nombre de caractères codables mais elle posa des problèmes d'incompatibilité car le système restait basé sur 7 bits, ne créant pas de nouveaux codes mais réassignant ceux existants, les codes de contrôle servant à définir quel jeu de caractères s'appliquait à tel morceau de texte. Mais ces codes étaient souvent omis, ou bien les traitements de texte n'étaient pas conçus pour les prendre en charge si bien qu'un programmeur non américain était dès lors souvent confronté à :
Ligne 273 :
Cependant devant l'extension mondiale de l'informatique et la limitation d'un système à 8 bits qui ne permet pas d'utiliser par exemple plusieurs alphabets différents dans un même document, l'ISO travaille depuis 1988 à l'élaboration d'un code universel : l'Unicode.
 
==== L'Unicode (ISO 10646) ====
 
L'Unicode définit actuellement plus de {{formatnum:120000}} caractères en utilisant jusqu'à 31 bits pour chacun. Il renferme également un mécanisme de plages qui adapte le nombre de bits nécessaires pour chaque caractère en fonction de sa nature. Il existe 6 plages, la première occupant 1 octet, la dernière en utilisant 6. La première plage se reconnait à ce que le premier bit de l'octet est positionné à 0, les 7 bits suivants respectent la norme ascii. Un caractère unicode de cette plage est donc de la forme 0xxxxxxx et se trouve entièrement compatible avec un système ascii. Les plages suivantes se reconnaissant à ce que le bit de poids fort de chaque octet est positionné à 1, les bits de poids fort du premier octet permettent de connaître la plage (110xxxxx pour la plage à deux octets, 1110xxxx pour celle à 3, 11110xxx pour 4, 111110xx pour 5 et 1111110x pour 6), et les deux bits de poids fort des octets suivant sont systématiquement positionnés à 10 afin d'indiquer leur appartenance à une suite d'octets unicode. Un caractère de la deuxième plage est donc de la forme suivante : 110xxxxx 10xxxxxx ; et propose donc 11 bits utiles, ce qui permet <math>2^{11}=2048</math> caractères différents.