Английская Википедия:Caret

Материал из Онлайн справочника
Перейти к навигацииПерейти к поиску

Шаблон:Short description Шаблон:About Шаблон:Distinguish Шаблон:Redirect Шаблон:Use dmy dates Шаблон:Infobox symbol Шаблон:Wiktionary Caret is the name used familiarly for the character Шаблон:Char (the circumflex and a circumflex accent) provided on most QWERTY keyboards by typing Шаблон:Key press. The symbol has a variety of uses in programming and mathematics. The name "caret" arose from its visual similarity to the original proofreader's caret, a mark used in proofreading to indicate where a punctuation mark, word, or phrase should be inserted into a document. The formal ASCII standard (X3.64.1977) calls it a "circumflex".[1]

History

Typewriters

Файл:Write machine.jpg
Typewriter with French (AZERTY) keyboard: Шаблон:Keypress, Шаблон:Keypress, Шаблон:Keypress, Шаблон:Keypress Шаблон:Keypress have dedicated keys; the circumflex and diaeresis accents have dead keys

On typewriters designed for languages that routinely use diacritics (accent marks), there are two possible ways to type these: keys can be dedicated to precomposed characters (with the diacritic included); alternatively a dead key mechanism can be provided. With the latter, a mark is made when a dead key is typed but, unlike normal keys, the paper carriage does not move on and thus the next letter to be typed is printed under the accent. The Шаблон:Char symbol was originally provided in typewriters and computer printers so that circumflex accents could be overprinted on letters (as in Шаблон:Char or Шаблон:Char).

Transposition into ISO/IEC 646 and ASCII

Шаблон:Further The incorporation of the circumflex symbol into ASCII is a consequence of this prior existence on typewriters: this symbol did not exist independently as a type or hot-lead printing character. The original 1963 version of the ASCII standard used the code point x5E for an Шаблон:Nowrap. However, the 1965 ISO/IECШаблон:Nbsp646 standard defined code point x5E as one of five available for national variation,Шаблон:Efn with the circumflex Шаблон:Char diacritic as the default and the up-arrow as one of the alternative uses.[2] In 1967, the second revision of ASCII followed suit.[3]

Шаблон:Image frame Overprinting to add an accent mark was not always supported well by printers, and was almost never possible on video terminals. Instead, precomposed characters were eventually created to show the accented letters.Шаблон:Efn The freestanding circumflex (which had come to be called a caret) quickly became reused for many other purposes, such as in computer languages and mathematical notation. As the mark did not need to fit above a letter any more, it became larger in appearance such that it can no longer be used to overprint an accent.[4]Шаблон:Efn

In Unicode, it is encoded as Шаблон:Unichar; in HTML, it may be inserted with Шаблон:Code.

This caret is not to be confused with other chevron-shaped characters, such as the turned v or the logical AND, which may occasionally be called carets.[5][6]

Uses

Programming languages

The symbol Шаблон:Char has many uses in programming languages, where it is typically called a caret. It can signify exponentiation, the bitwise XOR operator, string concatenation, and control characters in caret notation, among other uses. In regular expressions, the caret is used to match the beginning of a string or line; if it begins a character class, then the inverse of the class is to be matched.

ANSI C can transcribe the caret in the form of the trigraph Шаблон:Code, as the character was originally not available in all character sets and keyboards. C++ additionally supports tokens like Шаблон:Code (for Шаблон:Code) and Шаблон:Code (for Шаблон:Code) to avoid the character altogether. Шаблон:IETF RFC recommends that the character be transcribed as digraph Шаблон:Code when required.[7]

Pascal uses the caret for declaring and dereferencing pointers. In Smalltalk, the caret is the method return statement. In C++/CLI, .NET reference types are accessed through a handle using the Шаблон:Code syntax. In Apple's C extensions for Mac OS X and iOS, carets are used to create blocks and to denote block types. Go uses it as a bitwise NOT operator.

Node.js uses the caret in package.json files to signify dependency resolution behavior being used for each particular dependency. In the case of Node.js, a caret allows any kind of update, unless it is seen as a "major" update as defined by semver.[8]

Surrogate symbol for superscript and exponentiation

In mathematics, the caret can signify exponentiation (e.g. 3^5 for Шаблон:Math) where the usual superscript is not readily usable (as on some graphing calculators). It is also used to indicate a superscript in TeX typesetting. As Isaac Asimov described it in his 1974 "Skewered!" essay (on Skewes's number), "I make the exponent a figure of normal size and it is as though it is being held up by a lever, and its added weight when its size grows bends the lever down."[9]

The use of the caret for exponentiation can be traced back to ALGOL 60,Шаблон:Citation needed which expressed the exponentiation operator as an upward-pointing arrow, intended to evoke the superscript notation common in mathematics. The upward-pointing arrow is now used to signify hyperoperations in Knuth's up-arrow notation.

Escape character

It is often seen in caret notation to show control characters: for instance, Шаблон:Code means the control character with value 1.

The Windows command-line interpreter (cmd.exe) uses the caret to escape reserved characters (most other shells use the backslash). For example, to pass a 'less-than' sign as an argument to a program, one would type Шаблон:Code.

Upward-pointing arrow

In internet forums, on social networking sites such as Facebook, or in online chats, one or more carets may be used beneath the text of another post, representing an upward-pointing arrow to that post;[10] in addition to the arrow usage, it can also mean that the user who posted the ^ agrees with the above post. Multiple carets may be used to indicate that the comment is replying to, or relating to, the post above that correlates with the number of carets used, or to "underscore" the correct portion of the previous post, or simply for emphasis.

A similar use has been adopted by programming language compilers, such as the Java compiler, to point out where a compilation error has occurred.Шаблон:Citation needed The compiler prints out the faulty line of code and uses a single caret on the next line, padded by spaces, to give a visual indication of the error location.

See also

Notes

Шаблон:Notelist

References

Шаблон:Reflist

  1. Шаблон:Cite web (facsimile, not machine readable)
  2. Шаблон:Cite web
  3. Ошибка цитирования Неверный тег <ref>; для сносок Jennings не указан текст
  4. Ошибка цитирования Неверный тег <ref>; для сносок Korpela не указан текст
  5. Ошибка цитирования Неверный тег <ref>; для сносок Unicode IPA Extensions не указан текст
  6. Ошибка цитирования Неверный тег <ref>; для сносок Weisstein не указан текст
  7. Шаблон:Cite web
  8. Шаблон:Cite web
  9. Ошибка цитирования Неверный тег <ref>; для сносок Asimov не указан текст
  10. Ошибка цитирования Неверный тег <ref>; для сносок Computer Hope не указан текст