Notation caret

Pour la notation musicale, voir notation carrée.

Cet article est une ébauche concernant l’informatique.

Vous pouvez partager vos connaissances en l’améliorant (comment ?) selon les recommandations des projets correspondants.

La notation caret, de l'anglais caret notation que l'on pourrait traduire par notation circonflexe, ou encore notation à accent circonflexe, est une des notations utilisée pour représenter les caractères de contrôle non affichables d'un terminal informatique, c'est-à-dire les caractères ASCII de 0 à 31 et le 127 (soit 33 caractères). Elle consiste en l'écriture d'un accent circonflexe (aussi appelé caret, du latin « il manque ») suivi d'une lettre en capitale dont la position dans l'alphabet latin équivaut à la position du caractère de contrôle dans la table ASCII. Ainsi, le caractère SOH (premier caractère de contrôle ASCII) est représenté par la notation ^A; le caractère EOT par la notation ^D; et ainsi de suite.

## Origine

[modifier | modifier le code]

Cette section est vide, insuffisamment détaillée ou incomplète. Votre aide est la bienvenue ! Comment faire ?

Le mot caret viendrait du verbe latin carere qui signifie manquer[1].

## Notation

[modifier | modifier le code]

La notation caret attribue aux lettres de l'alphabet latin (dans sa forme simplifiée) la position des caractères de contrôle dans la table ASCII: ^A fait référence au premier caractère de contrôle (SOH), car A est la première lettre de l'alphabet. Pour représenter le zéroième caractère de contrôle (NUL), ainsi que ceux qui succèdent au 26e caractère de contrôle (SUB), on s'appuie sur la table ASCII en associant aux lettres en capitale leur position dans l'alphabet, autrement dit on assigne au caractère A de la table ASCII la première position. On utilise alors les caractères qui occupent la même position que les caractères de contrôle dans la table ASCII d'origine. Ainsi, le caractère @, qui occupe désormais la zéroième position, représente le zéroième caractère de contrôle (NUL) de la table ASCII d'origine.

Attribution des positions de l’alphabet à la table ASCII  Caractère ASCII  | ? | @ | A | B | C | D | E | F | G | H | I | J | K | L | M | N | O | P | Q | R | S | T | U | V | W | X | Y | Z | [ | \ | ] | ^ | _

|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|

Position dans la table ASCII  | 63 | 64 | 65 | 66 | 67 | 68 | 69 | 70 | 71 | 72 | 73 | 74 | 75 | 76 | 77 | 78 | 79 | 80 | 81 | 82 | 83 | 84 | 85 | 86 | 87 | 88 | 89 | 90 | 91 | 92 | 93 | 94 | 95
Position dans l'alphabet  |  |  | 1 | 2 | 3 | 4 | 5 | 6 | 7 | 8 | 9 | 10 | 11 | 12 | 13 | 14 | 15 | 16 | 17 | 18 | 19 | 20 | 21 | 22 | 23 | 24 | 25 | 26 |  |  |  |  |
Position par rapport à l'alphabet  | -1 | 0 | 1 | 2 | 3 | 4 | 5 | 6 | 7 | 8 | 9 | 10 | 11 | 12 | 13 | 14 | 15 | 16 | 17 | 18 | 19 | 20 | 21 | 22 | 23 | 24 | 25 | 26 | 27 | 28 | 29 | 30 | 31

Pour des raisons techniques, le 127e caractère de contrôle (DEL) est représenté par le caractère ? qui, après décalage, occupe la position -1 (ce qui équivaut à la position 127 dans un codage à 7 bits). En effet, après avoir attribué la position 1 au caractère A, c'est-à-dire après avoir décalé les positions de 64 rangs vers la droite, il n'y a plus assez de caractères dans la table ASCII (qui en comprend 128 dans sa forme non étendue) pour représenter le caractère de contrôle (DEL) qui devrait se situer à la 191e position.

Table de correspondance  Notation caret | Caractère ASCII | Notation caret | Caractère ASCII

|
|
|

^@ | NUL (Null)  | ^Q | DC1 (Device Control One)
^A | SOH (Start of Header)  | ^R | DC2 (Device Control Two)
^B | STX (Start of text)  | ^S | DC3 (Device Control Three)
^C | ETX (End of Text)  | ^T | DC4 (Device Control Four)
^D | EOT (End of Transmission)  | ^U | NAK (Negative Acknowledge)
^E | ENQ (Enquiry)  | ^V | SYN (Synchronous Idle)
^F | ACK (Acknowledge)  | ^W | ETB (End of Transmission Block)
^G | BEL (Bell)  | ^X | CAN (Cancel)
^H | BS (Backspace)  | ^Y | EM (End of medium)
^I | HT (Horizontal Tabulation)  | ^Z | SUB (Substitute)
^J | LF (Line Feed)  | ^[ | ESC (Escape)
^K | VT (Vertical Tabulation)  | ^\ | FS (File Separator)
^L | FF (Form Feed)  | ^] | GS (Group separator)
^M | CR (Carriage Return)  | ^^ | RS (Record Separator)
^N | SO (Shift Out)  | ^_ | US (Unit separator)
^O | SI (Shift In)  | ^? | DEL (Delete)
^P | DLE (Data Link Escape)  |  |

Pour plus d'information, consultez la section détaillée sur la signification des caractères de contrôle de l'article ASCII.

## Utilisation

[modifier | modifier le code]

Certains logiciels, tels que les éditeurs de texte GNU Emacs et Vi utilisent la notation caret. Ils permettent ainsi de distinguer rapidement les caractères de contrôle du reste du contenu.

À titre d'exemple, la description technique du format PNG nous indique que la signature d'un fichier PNG se fait avec les 8 premiers octets dont les valeurs décimales sont les suivantes : 137 80 78 71 13 10 26 10[2]. La lecture d'un tel fichier avec un éditeur de texte utilisant la notation caret nous indique la signature sous cette forme:

Signature d'un fichier PNG en notation caret  notation octale, caret et ASCII
(avec GNU Emacs)  |

\211PNG^M

|

notation hexadécimale, caret et ASCII
(avec Vim)  |

<89>PNG^M

On remarque que le caractère de retour à la ligne (LF)
de valeur décimale 10 est affiché normalement.
notation hexadécimale, caret et ASCII  |

<89>PNG^M^J^Z^J

Le retour à la ligne est affiché en notation caret

## Risques de confusion

[modifier | modifier le code]

La notation caret connaît quelques variantes. Certains manuels d'utilisation de logiciel utilisent la notation ^A pour indiquer qu'il s'agit de la combinaison des touches `Ctrl` + `a` ou `Ctrl` + `A` (Sélectionner tout), ce qui ne correspond absolument plus au caractère de contrôle SOH. Aussi, le logiciel GNU Screen admet la notation ^Ac pour exécuter une commande similaire à la combinaison des touches `Ctrl` + `a` + `c`, telle que dans la commande `screen -e^Ac` pour ouvrir un nouveau terminal[3]. Enfin, le caret étant très utilisé dans les expressions régulières, on pourrait supposer la présence d'un caractère de contrôle dans la commande `grep ^A dictionnaire.txt`.

## Bibliographie

[modifier | modifier le code]

Note : les documents ci-dessous ne traitent pas directement du sujet mais en parlent brièvement.

* (en) Paul DuBois, Using csh & tcsh, O'Reilly Media, 1995, 89 p., Specifying the key Argument (ISBN 978-1-56592-132-0) [présentation en ligne]
* (en) Mark G. Sobell, A Practical Guide to Commands, Editors, and Shell Programming, O'Reilly Media, 2009, 163-165 p. (ISBN 978-0131367364) [présentation en ligne]
* (en) Arnold Robbins, Unix in a Nutshell, 4th Edition, O'Reilly Media, 2005, 180 p. Chapter 2: UNIX Commands (ISBN 978-0-596-10029-2) [présentation en ligne]

## Sources

[modifier | modifier le code]

* (en) Cet article est partiellement ou en totalité issu de l’article de Wikipédia en anglais intitulé « Caret notation » (voir la liste des auteurs).

* (en) Cet article est partiellement ou en totalité issu de l’article de Wikipédia en anglais intitulé « ASCII » (voir la liste des auteurs).
* Caractères de contrôle utiles, sur le site internet de l'université de Paris Didero, Unité de Formation et de Recherche d'Études Interculturelles de Langues Appliquées.

## Notes et références

[modifier | modifier le code]

1. ↑ (en)caret sur Vocabulary.com Dictionary
2. ↑ Description du format PNG, section « Signature du PNG », sur le site du W3C
3. ↑ Le manuel d'utilisation de screen

## Articles connexes

[modifier | modifier le code]

* la touche contrôle
* les caractères de contrôle, section de l'article ASCII
* la notation octale
* la notation hexadécimale

* Portail de l’informatique
* Portail de l’écriture

*[26e]: Vingt-sixième
*[127e]: Cent vingt-septième
*[191e]: Cent quatre-vingt-onzième (cent nonante et unième)
*[(en)]: Langue : anglais