Jump to content

Vertical bar: Difference between revisions

From Wikipedia, the free encyclopedia
Content deleted Content added
cite web used
Reverting edit(s) by Nahaiija (talk) to rev. 1262446732 by Dylwi: Vandalism (RW 16.1)
 
(712 intermediate revisions by more than 100 users not shown)
Line 1: Line 1:
{{Short description|Typographic symbol ( {{!}} )}}
{{linkrot|date=February 2012}}
{{other uses}}
{{Punctuation marks|&#124;<!--
{{Infobox symbol |mark=&#124;
-->|variant1=¦|caption1=[[#Solid vertical bar vs broken bar|broken bar]]<!--
|unicode={{unichar|007C|VERTICAL LINE|html=}}
-->|variant2=‖|caption2=[[#Mathematics|magnitude]]<!--
|see also={{unichar|00A6|Broken bar|nlink=#Solid vertical bar versus broken bar |html=}}<br />
-->|variant3=∣|caption3=[[divisibility|divides]]<!--
{{unichar|2016|Double vertical line|nlink=#Mathematics |html=}}<br />
-->|variant-size=400%}}
{{unichar|2223|Divides|nlink=Divisibility}}
The '''vertical bar''' ('''|''') is a character with various uses in mathematics, where it can be used to represent [[absolute value]], among others; in computing and programming and in general typography, as a divider not unlike the [[interpunct]]. It may be called by various other names including the '''pipe''' (by the [[Unix]] community, referring to the [[Pipeline (Unix)|I/O pipeline]] construct), '''[[Sheffer stroke]]''' (by computer or mathematic [[History of logic|logicians]]), '''verti-bar''', '''vbar''', '''stick''', '''vertical line''', '''vertical slash''', '''or bar''', '''think colon''', '''poley''', '''divider line''', or '''polon'''.
}}

The '''vertical bar''', {{char|&#124;}}, is a [[glyph]] with various uses in [[mathematics]], [[computing]], and [[typography]]. It has many names, often related to particular meanings: [[Sheffer stroke]] (in [[mathematical logic|logic]]), '''pipe''', '''bar''', '''or''' (literally, the word "or"), '''vbar''', and others.<ref>{{cite web |url=http://www.catb.org/jargon/html/A/ASCII.html | title=ASCII | last=Raymond | first=Eric S |website=The Jargon File |url-status=live |archive-url=https://web.archive.org/web/20231030220315/http://www.catb.org/jargon/html/A/ASCII.html |archive-date= Oct 30, 2023 }}</ref>


==Usage==
==Usage==

===Mathematics===
===Mathematics<!--'Double vertical bar' and 'Propositional truncation' redirect here-->===
The vertical bar is used as a [[table of mathematical symbols|mathematical symbol]] in
The vertical bar is used as a [[table of mathematical symbols|mathematical symbol]] in numerous ways.
* [[absolute value]]: <math>|x|</math>, read ''"the '''absolute value''' of [[x]]"''.
If used as a pair of brackets, it suggests the notion of the word "size". These are:
* [[norm (mathematics)|norm]]s: <math>\|(x_1,x_2)\|</math>, read ''"the '''norm''' of x [[subscript|sub]] one, x sub two"''; though Unicode also provides a special double vertical line symbol U+2016: {{Unicode|‖''x''‖}}
* [[absolute value]]: <math>|x|</math>, read "the ''absolute value'' of ''x''"<ref name=":1">{{Cite web|last=Weisstein|first=Eric W.|title=Single Bar|url=https://mathworld.wolfram.com/SingleBar.html|access-date=2020-08-24|website=Wolfram MathWorld|language=en}}</ref>
* [[Parallel (geometry)|Parallelism]] in [[geometry]], where <math>AB \parallel CD</math> indicates that the line <math>AB</math> is parallel to the line <math>CD</math>.
* [[set-builder notation]]: <math>\{x|x<2\}</math>, read ''"the set of x '''such that''' x is [[less than]] two"''. Often a [[colon (punctuation)|colon]] ':' is used instead of a vertical bar.
* [[cardinality]]: <math>|S|</math>, read "the ''cardinality'' of the [[set (mathematics)|set]] ''S''" or "the ''length'' of a [[String (computer science)|string]] ''S''"
* [[determinant]]: <math>|A|</math>, read "the ''determinant'' of the [[Matrix (mathematics)|matrix]] ''A''".<ref name=":1" /> When the matrix entries are written out, the determinant is denoted by surrounding the matrix entries by vertical bars instead of the usual brackets or parentheses of the matrix, as in <math>\begin{vmatrix} a & b \\ c & d\end{vmatrix}</math>.
* [[cardinality]]: <math>|S|</math>, read ''"the '''cardinality''' of the set S"''.
* [[conditional probability]]: <math>P(X|Y)</math>, read ''"the [[probability]] of X '''given''' Y"''.
* [[Order (group theory)#Class equation|order]]: <math>|G|</math>, read "the ''order'' of the [[group (mathematics)|group]] ''G''", or <math>|g|</math>, "the ''order'' of the element <math>g \in G</math>"

* [[divisibility]]: <math>a | b</math>, read ''"a '''divides''' b"'', though Unicode also provides special ‘divides’ and ‘does not divide’ symbols (U+2223 and U+2224: {{Unicode|∣}}, {{Unicode|∤}})
Likewise, the vertical bar is also used singly in many different ways:
* the [[Sheffer stroke]] in [[logic]]: <math>a|b</math>, read ''"a '''nand''' b"''.
* evaluate: <math>a+3|a=4</math>, read ''"a plus 3 '''evaluated for when''' a equals 4"'', or <math>4+3=7</math>.
* [[conditional probability]]: <math>P(X|Y)</math>, read "the [[probability]] of ''X'' ''given'' ''Y''"
* [[distance]]: distance <math>p|ab</math> notes the shortest distance between dot <math>p</math> to line <math>ab</math>, so <math>p|ab</math> is perpendicular to line <math>ab</math>.
* [[distance]]: <math>P|ab</math>, denoting the shortest ''distance'' between point <math>P</math> to line <math>ab</math>, so line <math>P|ab</math> is perpendicular to line <math>ab</math>
* [[divisibility]]: <math>a \mid b</math>, read "''a'' ''divides'' ''b''" or "''a'' is a ''factor'' of ''b''", though Unicode also provides special 'divides' and 'does not divide' symbols (U+2223 and U+2224:∣, ∤)<ref name=":1" />
* evaluate (subscript notation): <math>f(x)|_{x=4}</math>, read ''"f of x evaluated at x equals 4"'' (see [[wikibooks:LaTeX/Advanced Mathematics#Subscripts and superscripts|subscripts]] at Wikibooks)
* [[Restriction (mathematics)|restriction]]: <math>f|_{A}: A \to F</math> denotes a restriction of function <math>f</math> where it is defined over a domain which is a superset of <math>A</math>.
* [[Function (mathematics)|function]] evaluation: <math>f(x)|_{x=4}</math>, read "''f'' of ''x'', evaluated at ''x'' equals 4" (see [[b:LaTeX/Advanced Mathematics#Subscripts and superscripts|subscripts]] at Wikibooks)
* [[Restriction (mathematics)|restriction]]: <math>f|_{A}</math>, denoting the ''restriction'' of the function <math>f</math>, with a domain that is a superset of <math>A</math>, to just <math>A</math>
* Sometimes a vertical bar following a function, with sub- and super-script limits 'a' and 'b' is used when evaluating definite integrals to mean 'f(x) from a to b', or 'f(b)-f(a)'.
* [[set-builder notation]]: <math>\{x|x<2\}</math>, read "the set of ''x'' ''such that'' ''x'' is [[less than]] two". Often, a [[colon (punctuation)|colon]] ':' is used instead of a vertical bar
* the [[Sheffer stroke]] in [[logic]]: <math>a|b</math>, read "''a'' ''nand'' ''b''"
* [[subtraction]]: <math>f(x) \vert _a ^b</math>, read "''f(x)'' ''from'' ''a'' ''to'' ''b''", denoting <math>f(b) - f(a)</math>. Used in the context of a definite integral with variable ''x''.
* A vertical bar can be used to separate variables from fixed parameters in a function, for example <math>f(x|\mu,\sigma)</math>, or in the notation for [[elliptic integrals]].

The '''double vertical bar'''<!--boldface per WP:R#PLA-->, <math>\|</math>, is also employed in mathematics.
* [[Parallel (geometry)|parallelism]]: <math>AB \parallel CD</math>, read "the line <math>AB</math> ''is parallel to'' the line <math>CD</math>"
* [[Norm (mathematics)|norm]]: <math>\|A\|</math>, read "the ''norm'' (length, size, magnitude etc.) of the matrix <math>A</math>". The norm of a one-dimensional [[Vector space|vector]] is the absolute value and single bars are used.<ref>{{Cite web|last=Weisstein|first=Eric W.|title=Matrix Norm|url=https://mathworld.wolfram.com/MatrixNorm.html|access-date=2020-08-24|website=Wolfram MathWorld|language=en}}</ref>
* '''Propositional truncation'''<!--boldface per WP:R#PLA-->: (a [[Type theory|type]] former that truncates a type down to a [[proposition (logic)|mere proposition]] in [[homotopy type theory]]): for any <math>a : A</math> (read "term <math>a</math> of type <math> A</math>") we have <math>|a| : \left\| A \right\|</math><ref>{{cite book|author=Univalent Foundations Program|title=Homotopy Type Theory: Univalent Foundations of Mathematics (GitHub version)|year=2013|publisher=Institute for Advanced Study|url=https://hott.github.io/book/nightly/hott-a4-1075-g3c53219.pdf|page=108|access-date=2017-07-01|archive-date=2017-07-07|archive-url=https://web.archive.org/web/20170707022332/https://hott.github.io/book/nightly/hott-a4-1075-g3c53219.pdf|url-status=dead}}</ref> (here <math>|a|</math> reads "''[[Image (mathematics)|image]]'' of <math>a : A</math> in <math>\left\| A \right\|</math>" and <math>|a| : \left\| A \right\|</math> reads "''propositional truncation'' of <math>A</math>")<ref>{{cite book|author=Univalent Foundations Program|title=Homotopy Type Theory: Univalent Foundations of Mathematics (print version)|year=2013|publisher=Institute for Advanced Study|url=https://books.google.com/books?id=LkDUKMv3yp0C|page=450}}</ref>

In LaTeX [[TeX#math mode|mathematical mode]], the ASCII vertical bar produces a vertical line, and <code>\|</code> creates a double vertical line (<code>a | b \| c</code> is set as <math>a | b \| c</math>). This has different spacing from <code>\mid</code> and <code>\parallel</code>, which are [[relational operator]]s: <code>a \mid b \parallel c</code> is set as <math>a \mid b \parallel c</math>. See below about [[LaTeX]] in text mode.

=== Chemistry ===
In chemistry, the vertical line is used in [[cell notation]] of electrochemical cells.

Example,

Zn | Zn<sup>2+</sup> || Cu<sup>2+</sup> | Cu

Single vertical lines show components of the cell which do not mix, usually being in different phases. The double vertical line ( || ) is used to represent salt bridge; which is used to allow free moving ions to move.


===Physics===
===Physics===
The vertical bar is used in [[bra-ket notation]] in [[quantum physics]]. Examples:
The vertical bar is used in [[bra–ket notation]] in [[quantum physics]]. Examples:
*<math>|\psi\rangle</math> — The quantum mechanical state "<math>\psi</math>".
* <math>|\psi\rangle</math>: the quantum physical state <math>\psi</math>
*<math>\langle\psi|</math> — The [[dual space|dual state]] corresponding to the state above.
* <math>\langle\psi|</math>: the [[dual space|dual state]] corresponding to the state above
*<math>\langle\psi|\rho\rangle</math> — The [[inner product]] of states <math>\psi</math> and <math>\rho</math>.
* <math>\langle\psi|\rho\rangle</math>: the [[inner product]] of states <math>\psi</math> and <math>\rho</math>
* [[Supergroup (physics)|Supergroups in physics]] are denoted ''G''(''N''|''M''), which reads "''G'', ''M'' vertical bar ''N''"; here ''G'' denotes any supergroup, ''M'' denotes the [[bosonic dimensions]], and ''N'' denotes the [[Grassmann dimensions]].<ref>Larus Thorlacius, Thordur Jonsson (eds.), ''M-Theory and Quantum Geometry'', Springer, 2012, p. 263.</ref>


===Computing===
===Computing===

==== Pipe ====
==== Pipe ====
{{Main|Pipeline (Unix)}}
{{Main|Pipeline (Unix)}}


A [[pipe (Unix)|pipe]] is an [[inter-process communication]] mechanism originating in [[Unix]] which allows the output (standard out and, optionally, standard error) of one process to be used as input (standard in) to another. In this way, a series of commands can be "piped" together, giving users the ability to quickly perform complex multi-stage processing from the command line or as part of a Unix shell script ("batch file"). In most [[Unix shell]]s (command interpreters), this is represented by the vertical bar character. For example:
A [[pipe (Unix)|pipe]] is an [[inter-process communication]] mechanism originating in [[Unix]], which directs the output (standard out and, optionally, standard error) of one process to the input (standard in) of another. In this way, a series of commands can be "piped" together, giving users the ability to quickly perform complex multi-stage processing from the [[Command-line interface|command line]] or as part of a [[UNIX shell script|Unix shell script]] ("bash file"). In most [[Unix shell]]s (command interpreters), this is represented by the vertical bar character. For example:


:<tt>[[egrep]] -i 'blair' filename.log | [[More_(command)#Unix|more]]</tt>
<code> [[grep]] -i 'blair' filename.log | [[More (command)#Unix|more]] </code>


where the output from the "egrep" process is piped to the "more" process.
where the output from the <kbd>grep</kbd> process (all lines containing 'blair') is piped to the <kbd>more</kbd> process (which allows a command line user to read through results one page at a time).


The same "pipe" feature is also found in later versions of [[DOS]] and Microsoft Windows.
The same "pipe" feature is also found in later versions of [[DOS]] and Microsoft Windows.

This usage has led to the character itself being called "pipe".


====Disjunction====
====Disjunction====
In many programming languages, the vertical bar is used to designate the [[Logical disjunction|logic operation ''or'']], either [[Bitwise operation|bitwise]] ''or'' or [[Boolean datatype|logical]] ''or''.
In many programming languages, the vertical bar is used to designate the [[Logical disjunction|logic operation ''or'']], either [[Bitwise operation|bitwise]] ''or'' or [[Boolean data type|logical]] ''or''.


Specifically, in [[C (programming language)|C]] and other languages following C syntax conventions, such as [[C++]], [[Perl]], [[Java (programming language)|Java]] and [[C Sharp (programming language)|C#]], <code>(a | b)</code> denotes a [[Bitwise operation#OR|bitwise or]]; whilst a double vertical bar <code>(a || b)</code> denotes a ([[Minimal evaluation|short-circuited]]) [[logical disjunction|logical or]].
Specifically, in [[C (programming language)|C]] and other languages following [[C syntax]] conventions, such as [[C++]], [[Perl]], [[Java (programming language)|Java]] and [[C Sharp (programming language)|C#]], <code>a | b</code> denotes a [[Bitwise operation#OR|bitwise ''or'']]; whereas a double vertical bar <code>a || b</code> denotes a ([[Minimal evaluation|short-circuited]]) [[logical disjunction|logical ''or'']]. Since the character was originally not available in all [[code page]]s and keyboard layouts, [[ANSI C]] can transcribe it in form of the [[C trigraph|trigraph]] <code>??!</code>, which, outside string literals, is equivalent to the <code>|</code> character.


In [[regular expression]] syntax, the vertical bar again indicates logical ''or''. For example: the Unix command <tt>[[grep]] -E 'foo|bar'</tt> matches lines containing 'foo' or 'bar'.
In [[regular expression]] syntax, the vertical bar again indicates logical ''or'' ([[alternation (formal language theory)|alternation]]). For example: the Unix command <code>[[grep]] -E 'fu|bar'</code> matches lines containing 'fu' or 'bar'.


====Concatenation====
====Concatenation====
The double vertical bar operator "||" denotes [[string (computer science)|string]] [[concatenation]] in [[PL/I]], [[Rexx|REXX]], [[Object REXX|ooRexx]], standard [[ANSI SQL]], and theoretical computer science (particularly [[cryptography]]).
In [[PL/I]] and certain [[Programming language dialect|dialects]] of [[SQL]], the operator "||" denotes [[string (computer science)|string]] [[concatenation]].


====Delimiter====
====Delimiter====
Although not as common as commas or tabs, the vertical bar can be used as a [[delimiter]] in a [[flat file]]. An example of a pipe-delimited standard data format is [[LEDES]] 1998B. It is frequently used because vertical bar is typically uncommon in the data itself.
Although not as common as commas or tabs, the vertical bar can be used as a [[delimiter]] in a [[flat file]]. Examples of a [[pipe delimited|pipe-delimited]] standard data format are [[LEDES]] 1998B and [[HL7]]. It is frequently used because vertical bars are typically uncommon in the data itself.


Similarly, the vertical bar may see use as a delimiter for [[regular expression]] operations (e.g. in [[sed]]). This is useful when the regular expression contains instances of the more common forward slash (<code>/</code>) delimiter; using a vertical bar eliminates the need to escape all instances of the forward slash.
Similarly, the vertical bar may see use as a delimiter for [[regular expression]] operations (e.g. in [[sed]]). This is useful when the regular expression contains instances of the more common forward slash (<code>/</code>) delimiter; using a vertical bar eliminates the need to escape all instances of the forward slash. However, this makes the bar unusable as the regular expression "alternative" operator.


====Backus-Naur form====
====Backus–Naur form====
In [[Backus-Naur form]], an expression consists of sequences of symbols and/or sequences separated by '|', indicating a '''choice''', the whole being a possible substitution for the symbol on the left.
In [[Backus–Naur form]], an expression consists of sequences of symbols and/or sequences separated by '|', indicating a [[Alternation (formal language theory)|choice]], the whole being a possible substitution for the symbol on the left.
:<personal-name> ::= <name> | <initial>
{{sxhl|2=bnf|1=<personal-name> ::= <name> {{!}} <initial>}}


====Concurrency operator====
====Concurrency operator====
In calculi of communicating processes (like [[pi-calculus]]), the vertical bar is used to indicate that processes execute in parallel.
In calculi of communicating processes (like [[pi-calculus]]), the vertical bar is used to indicate that processes execute in parallel.

====APL====
The pipe in [[APL (programming language)|APL]] is the modulo or ''residue'' function between two operands and the absolute value function next to one operand.


====List comprehensions====
====List comprehensions====
{{Main|List comprehensions}}
{{Main|List comprehensions}}


The vertical bar is used for list comprehensions in some functional languages, e. g. [[Haskell (programming language)|Haskell]] and [[Erlang (programming language)|Erlang]]. Compare [[#Mathematics|set-builder notation]].
The vertical bar is used for list comprehensions in some functional languages, e.g. [[Haskell (programming language)|Haskell]] and [[Erlang (programming language)|Erlang]]. Compare [[#Mathematics|set-builder notation]].

====Text markup====

The vertical bar is used as a special character in [[lightweight markup language]]s, notably [[MediaWiki]]'s [[Wikitext]] (in the templates and internal links).

In LaTeX text mode, the vertical bar produces an [[em dash]] (—). The <code>\textbar</code> command can be used to produce a vertical bar.


===Phonetics and orthography===
===Phonetics and orthography===
{{main|International Phonetic Alphabet#Brackets and transcription delimiters}}
In the [[Khoisan languages]] and the [[International Phonetic Alphabet]], the vertical bar is used to write the [[dental click]] ({{IPA|ǀ}}). A double vertical bar is used to write the [[alveolar lateral click]] ({{IPA|ǁ}}). Since these are technically letters, they have their own [[Unicode]] code points in the Latin Extended-B range: U+01C0 for the single bar and U+01C1 for the double bar. Longer single and double vertical bars are used to mark [[Prosody (linguistics)|prosodic]] boundaries in the IPA.
In the [[Khoisan languages]] and the [[International Phonetic Alphabet]], the vertical bar is used to write the [[dental click]] ({{IPA|ǀ}}). A double vertical bar is used to write the [[alveolar lateral click]] ({{IPA|ǁ}}). Since these are technically letters, they have their own [[Unicode]] code points in the [[Latin Extended-B]] range: U+01C0 for the single bar and U+01C1 for the double bar.

Some [[Northwest Caucasian languages|Northwest]] and [[Northeast Caucasian languages]] written in the [[Cyrillic script]] have a vertical bar called [[palochka]] ({{lang-rus|палочка|5=little stick}}), indicating the preceding consonant is an [[Ejective consonant|ejective]].

Longer single and double vertical bars are used to mark [[Prosody (linguistics)|prosodic]] boundaries in the IPA.

===Literature===
{{anchor|Punctuation|Period|Comma}}

In medieval European manuscripts, a single vertical bar was a common variant of the [[Slash (punctuation)|virgula]] {{char|[[/]]}} used as a [[comma]],<ref name=verg>{{cite dictionary |dictionary=Oxford English Dictionary |edition=Corrected reissue |entry=Virgule |date=1933 |publisher=Oxford University Press |page=[https://archive.org/details/the-oxford-english-dictionary-1933-all-volumes/The%20Oxford%20English%20Dictionary%20Volume%2012%20-%20Variant/page/n238/mode/1up?view=theater 235] |volume=XII}}.</ref> or [[caesura]] mark.<ref name=verg />

In [[Sanskrit]] and other [[Languages of India|Indian languages]], a single vertical mark, a [[danda]], has a similar function as a period (full stop). Two bars || (a 'double danda') is the equivalent of a [[pilcrow]] in marking the end of a [[stanza]], paragraph or section. The danda has its own Unicode code point, U+0964.

====Poetry====
{{anchor|Caesura}}<!--linked-->A double vertical bar {{angle bracket|{{!}}{{!}}}} or {{angle bracket|ǁ}} is the standard '''caesura mark''' in English [[literary criticism]] and analysis. It marks the strong break or [[caesura]] common to many forms of [[poetry]], particularly [[Old English poetry|Old English verse]]. It is also traditionally used to mark the division between lines of verse printed as prose (the style preferred by [[Oxford University Press]]), though it is now often replaced by the [[forward slash]].{{citation needed|date=May 2024}}
{{anchor|Bible|Bibles|Biblical}}

====Notation====
In the [[Geneva Bible]] and early printings of the [[King James Version]], a double vertical bar is used to mark [[Marginalia|margin notes]] that contain an alternative translation from the original text. These margin notes always begin with the conjunction "Or". In later printings of the King James Version, the double vertical bar is irregularly used to mark any comment in the margins.

A double vertical bar symbol may be used to call out a [[footnote]]. (The traditional order of these symbols in English is [[Asterisk|*]], [[Dagger (mark)|†]], [[Dagger (mark)|‡]], [[Section sign|§]], ‖, [[Pilcrow|¶]], so its use is very rare; in modern usage, numbers and letters are preferred for [[note (typography)|endnotes and footnotes]].<ref>{{cite book |first=Robert |last=Bringhurst |date=2005 |title=The Elements of Typographic Style |edition=ver. 3.1 |location=Point Roberts, Washington |publisher=Hartley and Marks |pages=68–69 |quote=But beyond the&nbsp;... double dagger, this order is not familiar to most readers, and never was.}} </ref>)

====Music scoring====
{{main|Sheet music}}
In music, when writing chord sheets, single vertical bars associated with a colon (|: A / / / :|) represents the beginning and end of a section (e.g. Intro, Interlude, Verse, Chorus) of music.{{citation needed|date=May 2020}} Single bars can also represent the beginning and end of measures (|: A / / / | D / / / | E / / / :|). A double vertical bar associated with a colon can represent the repeat of a given section (||: A / / / :|| - play twice).{{citation needed|date=May 2020}}


==Encoding==
==Encoding==


The vertical bar ("|") is at position 124 (decimal) in the [[ASCII]] character set.
=== Solid vertical bar versus broken bar ===<!-- linked from an infobox in this article -->
[[Image:Dot printer ASCII0x7C+.png|320px|thumb|right|The code point 124 (7C [[hexadecimal]]) is occupied by a broken bar in a [[dot matrix printer]] of the late 1980s, which apparently lacks a solid vertical bar. See the [[:Image:Dot printer ASCII.png|full picture]].]]
Many early video terminals and [[dot-matrix printers]] rendered the vertical bar character as the [[allograph]] '''broken bar''' {{char|¦}}. This may have been to distinguish the character from the lower-case 'L' and the upper-case '{{serif|I}}' on these limited-resolution devices, and to make a vertical line of them look more like a horizontal line of dashes. It was also (briefly) part of the [[ASCII]] standard.


An initial draft for a 7-bit character set that was published by the X3.2 subcommittee for Coded Character Sets and Data Format on June 8, 1961, was the first to include the vertical bar in a standard set. The bar was intended to be used as the representation for the [[logical OR]] symbol.<ref name="evolutionchar">{{cite thesis |last=Fischer |first=Eric |date=2012 |title=The Evolution of Character Codes, 1874-1968 |publisher=Penn State University |citeseerx=10.1.1.96.678 |url=http://citeseerx.ist.psu.edu/viewdoc/download?doi=10.1.1.96.678&rep=rep1&type=pdf |access-date=July 10, 2020}}</ref> A subsequent draft on May 12, 1966, places the vertical bar in column 7 alongside regional entry codepoints, and formed the basis for the original draft proposal used by the [[International Standards Organisation]].<ref name="evolutionchar"/> This draft received opposition from the [[IBM]] user group [[SHARE_(computing)|SHARE]], with its chairman, H. W. Nelson, writing a letter to the [[American Standards Association]] titled "The Proposed revised American Standard Code for Information Interchange does NOT meet the needs of computer programmers!"; in this letter, he argues that no characters within the international subset designated at columns 2-5 of the character set would be able to adequately represent logical OR and [[Negation|logical NOT]] in languages such as IBM's [[PL/I]] universally on all platforms.<ref>H. W. Nelson, letter to Thomas B. Steel, June 8, 1966, Honeywell Inc. X3.2 Standards Subcommittee Records, 1961-1969 (CBI 67), Charles Babbage Institute, University of Minnesota, Minneapolis, box 1, folder 23.</ref> As a compromise, a requirement was introduced where the [[exclamation mark]] (!) and [[circumflex]] (^) would display as logical OR (|) and logical NOT (¬) respectively in use cases such as programming, while outside of these use cases they would represent their original typographic symbols:
=== Solid vertical bar vs broken bar ===<!-- linked from an infobox in this article -->
{{Cquote
[[Image:Dot printer ASCII0x7C+.png|320px|thumb|right|The code point 124 (7C [[hexadecimal]]) is occupied by a broken bar in a [[dot matrix printer]] of late 1980s, which apparently lacks a solid vertical bar. Due to this, broken bar is also used for [[line drawing characters|vertical line]] [[typographic approximation|approximation]]; a full picture (3,136&nbsp;×&nbsp;2,624 pixels) is [[:Image:Dot printer ASCII.png|there]]]]
| quote = "It may be desirable to employ distinctive styling to facilitate their use for specific purposes as, for example, to stylize the graphics in code positions 2/1 and 5/14 to those frequently associated with logical OR ({{Pipe}}) and logical NOT (¬) respectively."
The '''broken bar''' ('''¦''') in computing was historically an [[allograph]] of the vertical bar and was perceived so before a broad implementation of [[extended ASCII]] character sets (namely, [[ISO/IEC 8859]] series), which did distinguish both. Since 1990s, it is considered a separate character, not a part of ASCII, and also termed "parted rule" in Unicode documentation. But in the [[text mode]] fonts, as well as in other [[text user interface|TUI]] applications on [[DOS]], [[Microsoft Windows|Windows]] and [[Unix-like]] systems, the glyph used for the vertical bar may look exactly like a broken bar. This is no longer the case on Windows 7.<ref>{{cite web|url=http://www.jimprice.com/jim-asc.shtml#extended|title=ASCII Chart: IBM PC Extended ASCII Display Characters|author=Jim Price|date=2010-05-24|accessdate=2012-02-23}}</ref>
| source = X3.2 document X3.2/475<ref>X3.2 document X3.2/475, December 13, 1966, Honeywell Inc. X3.2 Standards Subcommittee Records, 1961-1969 (CBI 67), Charles Babbage Institute, University of Minnesota, Minneapolis, box 1, folder 22.</ref>
}}


The original vertical bar encoded at 0x7C in the original May 12, 1966 draft was then broken as {{char|¦}}, so it could not be confused with the unbroken logical OR. In the 1967 revision of ASCII, along with the equivalent ISO 464 code published the same year, the code point was defined to be a broken vertical bar, and the exclamation mark character was allowed to be rendered as a solid vertical bar.<ref name="Salste_2016" /><ref name="Korpela">{{cite web |title=Character histories - notes on some Ascii code positions |author-first=Jukka |author-last=Korpela |url=http://jkorpela.fi/latin1/ascii-hist.html |access-date=2020-05-31 |url-status=live |archive-url=https://web.archive.org/web/20200311174647/http://jkorpela.fi/latin1/ascii-hist.html |archive-date=2020-03-11}}</ref> However, the 1977 revision (ANSI X.3-1977) undid the changes made in the 1967 revision, enforcing that the circumflex could no longer be stylised as a logical NOT symbol, the exclamation mark likewise no longer allowing stylisation as a vertical bar, and defining the code point originally set to the broken bar as a solid vertical bar instead;<ref name="Salste_2016">{{cite web |title=7-bit character sets: Revisions of ASCII |author-first=Tuomas |author-last=Salste |publisher=Aivosto Oy |date=January 2016 |id={{URN|nbn|fi-fe201201011004}} |url=http://www.aivosto.com/vbtips/charsets-7bit.html#body |access-date=2016-06-13 |url-status=live |archive-url=https://web.archive.org/web/20160613145224/http://www.aivosto.com/vbtips/charsets-7bit.html#body |archive-date=2016-06-13}}</ref> the same changes were also reverted in ISO 646-1973 published four years prior.
Due to historical confusion between the two, computer keyboards and displays may not clearly or consistently differentiate them. The typical [[keyboard layout]] used in the [[United Kingdom]] features separate keys for vertical bar and broken bar; however, typically on [[Microsoft Windows|Windows]] PCs the vertical bar key produces a broken-bar symbol. Some keyboard drivers map the broken bar key to the vertical bar, and the vertical bar key, shared with the grave accent (`), generates the broken bar when pressed in combination with <tt>AltGr</tt>.


Some variants of [[EBCDIC]] included both versions of the character as different code points. The broad implementation of the [[extended ASCII]] [[ISO/IEC 8859]] series in the 1990s also made a distinction between the two forms. This was preserved in Unicode as a separate character at U+00A6 <small>BROKEN BAR</small> (the term "parted rule" is used sometimes in Unicode documentation). Some fonts draw the characters the same (both are solid vertical bars, or both are broken vertical bars).<ref>{{cite web|url=http://www.jimprice.com/jim-asc.shtml#extended|title=ASCII Chart: IBM PC Extended ASCII Display Characters|author=Jim Price|date=2010-05-24|access-date=2012-02-23}}</ref>{{failed verification|date=July 2020}}<!-- I saw personally the logical OR operator in C rendered as ЭЭ in KOI-7 environment, but it is a bit off-topic here. --Incnis Mrsi -->
The broken bar has hardly any practical application and does not appear to have any clearly identified uses distinct from the vertical bar.<ref>{{cite web|url=http://www.cs.tut.fi/~jkorpela/latin1/3.html#A6|title=Detailed descriptions of the characters|date=2006-09-20|author=Jukka "Yucca" Korpela|accessdate=2012-02-23}}</ref> In non-computing use — for example in mathematics, physics and general typography — the broken bar is not an acceptable substitute for the vertical bar. Aforementioned usages in computing rely on the [[character (computing)|abstract character]] with [[code point]] 124 (0x7C) in ASCII (or ASCII compatible [[code page]]) and do not depend on visual rendering, which actually may be a broken bar in some environments.<!-- I saw personally the logical OR operator in C rendered as ЭЭ in KOI-7 environment, but it is a bit off-topical here. --Incnis Mrsi -->


[[image:Left side of modern US-International keyboard.JPG|thumb|US International keyboard showing broken bar on the keycap, even though pressing {{keypress|[[Shift key|Shift]]|\}} produces the solid vertical bar.]]
Some variants of the [[EBCDIC]] family of code pages such as [[EBCDIC 500]] had distinguish broken bar from a solid vertical bar.{{fact|date=February 2012}}
[[File:Codepage-437.png|frame|right|Full character set of IBM's [[Code page 437]] rendered in VGA, which displays the broken bar glyph for codepoint 7C, despite the 1977 revision to ASCII]]
Many keyboards with US, US-International, and German [[QWERTZ keyboard layout|QWERTZ]] layout display the broken bar on a keycap even though the solid vertical bar character is produced. This is a legacy of keyboards manufactured during the 1980s and 1990s for [[IBM PC compatible]] computers, as the IBM PC continued to display the glyph for the broken bar at codepoint 7C on displays from [[IBM Monochrome Display Adapter|MDA]] (1981) to [[Video Graphics Array|VGA]] (1987) despite the changes made to ASCII in 1977. The UK/Ireland keyboard has both symbols engraved: the broken bar is given as an [[alternate graphic]] on the "grave" ([[backtick]]) key; the solid bar is on the [[backslash]] key.


The broken bar character can be typed (depending on the layout) as {{keypress|[[AltGr]]|`}} or {{Key press|AltGr|6}} or {{Key press|AltGr|Shift|\}} on Windows and {{keypress|[[Compose key|Compose]]|!|^|chain=}} on Linux. It can be inserted into HTML as {{code|&brvbar;}}
===In common character maps ===


The broken bar does not appear to have any clearly identified uses distinct from those of the vertical bar.<ref>{{cite web|url=https://jkorpela.fi/latin1/3.html#A6|title=Detailed descriptions of the characters|date=2006-09-20|author=Jukka "Yucca" Korpela|access-date=2012-02-23}}</ref> In non-computing use — for example in mathematics, physics and general typography — the broken bar is not an acceptable substitute for the vertical bar. In some dictionaries, the broken bar is used to mark stress that may be either primary or secondary: {{IPA|[¦ba]}} covers the pronunciations {{IPA|[ˈba]}} and {{IPA|[ˌba]}}.<ref>For example, {{MW|Balearic}}.</ref>
{| class="wikitable"

!
===Unicode code points===
!Vertical bar ('<nowiki>|</nowiki>')
These glyphs are encoded in Unicode as follows:
!Broken bar ('¦')
* {{unichar|007C|Vertical line|html=}} (single vertical line)
* {{unichar|00A6|Broken bar|html=}} (single broken line)
* {{unichar|2016|Double vertical line|html=}} (double vertical line ( <math>\|</math> ): used in pairs to indicate [[Norm (mathematics)|norm]])
* {{unichar|FF5C|Fullwidth vertical line|html=}} ([[Halfwidth and fullwidth forms|Fullwidth form]])
* {{unichar|FFE4|Fullwidth broken bar|html=}}
* {{unichar|2225|Parallel to|html=| nlink=Parallel (geometry)}}
* {{unichar|01C0|Latin letter dental click| html= |nlink=Click consonant}}
* {{unichar|01C1|Latin letter lateral click| html= |nlink=Click consonant}}
* {{unichar|2223|divides| html= |nlink=Divisor}}
* {{unichar|2502|Box drawings light vertical|nlink=Box-drawing characters|html=}} (and various other box drawing characters in the range U+2500 to U+257F)
* {{unichar|2758|Light vertical bar}}
* {{unichar|0964|Devanagari Danda|nlink=Danda|html=}}
* {{unichar|0965|Devanagari double Danda|nlink=Danda|html=}}

===Code pages and other historical encodings===
{| class="wikitable collapsible mw-collapsed"
!Code pages, ASCII, ISO/IEC, EBCDIC, Shift-JIS, etc.
!Vertical bar (<code><nowiki>|</nowiki></code>)
!Broken bar (<code>¦</code>)
|-
|-
|[[ASCII]],<br />[[CP437]], [[CP667]], [[CP720]], [[CP737]], [[CP790]], [[CP819]], [[CP852]], [[CP855]], [[CP860]], [[CP861]], [[CP862]], [[CP865]], [[CP866]], [[CP867]], [[CP869]], [[CP872]], [[CP895]], [[Code page 932 (IBM)|CP932]], [[CP991]]
|[[ASCII]] *
| colspan=2 |decimal (base-10): 124<br>hexadecimal (base-16): 7C
|rowspan=7|124 (7C[[hexadecimal|h]])
|none
|-
|-
|[[ISO/IEC 8859-1]]
|[[CP775]]
|167 (A7h)
|hexadecimal: 7C
|hexadecimal: A6
|-
|-
|[[CP850]], [[CP857]], [[CP858]]
|[[Unicode]]
|221 (DDh)
|U+007C
|U+00A6
|-
|-
|[[CP863]]
|[[EBCDIC]] ([[EBCDIC 500|CCSID 500]] variant)
|160 (A0h)
|hexadecimal: BB
|hexadecimal: A6
|-
|-
|[[CP864]]
|[[Shift-JIS]] Men-Ku-Ten
|219 (DBh)
|1-01-35
|
|-
|-
|[[ISO/IEC 8859-1]], [[ISO/IEC 8859-7|-7]], [[ISO/IEC 8859-8|-8]], [[ISO/IEC 8859-9|-9]], [[ISO/IEC 8859-13|-13]],<br />[[CP1250]], [[CP1251]], [[CP1252]], [[CP1253]], [[CP1254]], [[CP1255]], [[CP1256]], [[CP1257]], [[CP1258]]
| colspan=3 style="font-size:small" |* Broken bar is not considered a part of ASCII since early 1990s
|166 (A6h)
|-
|[[ISO/IEC 8859-2]], [[ISO/IEC 8859-3|-3]], [[ISO/IEC 8859-4|-4]], [[ISO/IEC 8859-5|-5]], [[ISO/IEC 8859-6|-6]], [[ISO/IEC 8859-10|-10]], [[ISO/IEC 8859-11|-11]], [[ISO/IEC 8859-14|-14]], [[ISO/IEC 8859-15|-15]], [[ISO/IEC 8859-16|-16]]
|none
|-
|[[EBCDIC]] CCSID 37
|79 (4Fh)
|rowspan=2|106 (6Ah)
|-
|[[EBCDIC]] CCSID 500
|187 (BBh)
|-
|[[JIS X 0208]], [[JIS X 0213]]
|[[Kuten|Men-ku-ten]] 1-01-35 (7-bit: 2143h; {{nobr|[[Shift JIS]]}}: 8162h; [[EUC-JP|EUC]]: A1C3h){{efn|The Shift JIS and EUC encoded forms also include the ASCII vertical bar in its usual encoding (see [[halfwidth and fullwidth forms]]). The same applies when the 7-bit form is used as part of [[ISO-2022-JP]] (allowing switching to and from ASCII).}}
|none
|}
|}


Additional related Unicode characters:


==See also==
*Double vertical line ('{{IPA|‖}}'): U+2016
{{wiktionary}}
*Latin letter dental click ({{unicode|⟨&#x01C0;⟩}}): U+01C0
*Latin letter lateral click ({{unicode|⟨&#x01C1;⟩}}): U+01C1
*Symbol 'divides' ({{unicode|⟨&#x2223;⟩}}): U+2223
*Various [[Box-drawing characters]] at U+2500 to U+257F


* {{annotated link|Bar (diacritic)}}
===In text processing===
* {{annotated link|Triple bar}}
In [[LaTeX]], the vertical bar can be used as delimiter in [[TeX#math_mode|mathematical mode]]. The sequence <tt>\|</tt> creates a double vertical line (<tt>a | b \| c</tt> is set as <math>a | b \| c</math>). In LaTeX text mode, the vertical bar produces an [[em dash]] (—), or you can use the <tt>\textbar</tt> command instead.


==Notes==
The vertical bar is also used as special character in other [[Lightweight markup language]]s, notably Wikipedia's own [[Wikitext]].
{{notelist}}

==See also==
*[[Danda]]


==References==
==References==
{{reflist}}
<references/>

{{navbox punctuation}}


[[Category:Punctuation]]
[[Category:Punctuation]]
[[Category:Typographical symbols]]
[[Category:Typographical symbols]]
[[Category:Logic symbols]]

[[ca:Barra vertical]]
[[cs:Svislá čára]]
[[da:Lodret streg]]
[[de:Senkrechter Strich]]
[[es:Pleca]]
[[fr:Barre verticale]]
[[it:Barra verticale]]
[[he:קו ניצב]]
[[nl:Sluisteken]]
[[ja:バーティカルバー]]
[[pl:Kreska pionowa]]
[[pt:Barra vertical]]
[[ru:Вертикальная черта]]
[[fi:Pystyviiva]]
[[sv:Lodrätt streck]]
[[th:ไพป์]]

Latest revision as of 21:13, 13 December 2024

|
Vertical bar
In UnicodeU+007C | VERTICAL LINE (&verbar;, &vert;, &VerticalLine;)
Related
See alsoU+00A6 ¦ BROKEN BAR (&brvbar;)

U+2016 DOUBLE VERTICAL LINE (&Verbar;, &Vert;)

U+2223 DIVIDES

The vertical bar, |, is a glyph with various uses in mathematics, computing, and typography. It has many names, often related to particular meanings: Sheffer stroke (in logic), pipe, bar, or (literally, the word "or"), vbar, and others.[1]

Usage

[edit]

Mathematics

[edit]

The vertical bar is used as a mathematical symbol in numerous ways. If used as a pair of brackets, it suggests the notion of the word "size". These are:

  • absolute value: , read "the absolute value of x"[2]
  • cardinality: , read "the cardinality of the set S" or "the length of a string S"
  • determinant: , read "the determinant of the matrix A".[2] When the matrix entries are written out, the determinant is denoted by surrounding the matrix entries by vertical bars instead of the usual brackets or parentheses of the matrix, as in .
  • order: , read "the order of the group G", or , "the order of the element "

Likewise, the vertical bar is also used singly in many different ways:

  • conditional probability: , read "the probability of X given Y"
  • distance: , denoting the shortest distance between point to line , so line is perpendicular to line
  • divisibility: , read "a divides b" or "a is a factor of b", though Unicode also provides special 'divides' and 'does not divide' symbols (U+2223 and U+2224:∣, ∤)[2]
  • function evaluation: , read "f of x, evaluated at x equals 4" (see subscripts at Wikibooks)
  • restriction: , denoting the restriction of the function , with a domain that is a superset of , to just
  • set-builder notation: , read "the set of x such that x is less than two". Often, a colon ':' is used instead of a vertical bar
  • the Sheffer stroke in logic: , read "a nand b"
  • subtraction: , read "f(x) from a to b", denoting . Used in the context of a definite integral with variable x.
  • A vertical bar can be used to separate variables from fixed parameters in a function, for example , or in the notation for elliptic integrals.

The double vertical bar, , is also employed in mathematics.

  • parallelism: , read "the line is parallel to the line "
  • norm: , read "the norm (length, size, magnitude etc.) of the matrix ". The norm of a one-dimensional vector is the absolute value and single bars are used.[3]
  • Propositional truncation: (a type former that truncates a type down to a mere proposition in homotopy type theory): for any (read "term of type ") we have [4] (here reads "image of in " and reads "propositional truncation of ")[5]

In LaTeX mathematical mode, the ASCII vertical bar produces a vertical line, and \| creates a double vertical line (a | b \| c is set as ). This has different spacing from \mid and \parallel, which are relational operators: a \mid b \parallel c is set as . See below about LaTeX in text mode.

Chemistry

[edit]

In chemistry, the vertical line is used in cell notation of electrochemical cells.

Example,

Zn | Zn2+ || Cu2+ | Cu

Single vertical lines show components of the cell which do not mix, usually being in different phases. The double vertical line ( || ) is used to represent salt bridge; which is used to allow free moving ions to move.

Physics

[edit]

The vertical bar is used in bra–ket notation in quantum physics. Examples:

  • : the quantum physical state
  • : the dual state corresponding to the state above
  • : the inner product of states and
  • Supergroups in physics are denoted G(N|M), which reads "G, M vertical bar N"; here G denotes any supergroup, M denotes the bosonic dimensions, and N denotes the Grassmann dimensions.[6]

Computing

[edit]

Pipe

[edit]

A pipe is an inter-process communication mechanism originating in Unix, which directs the output (standard out and, optionally, standard error) of one process to the input (standard in) of another. In this way, a series of commands can be "piped" together, giving users the ability to quickly perform complex multi-stage processing from the command line or as part of a Unix shell script ("bash file"). In most Unix shells (command interpreters), this is represented by the vertical bar character. For example:

grep -i 'blair' filename.log | more

where the output from the grep process (all lines containing 'blair') is piped to the more process (which allows a command line user to read through results one page at a time).

The same "pipe" feature is also found in later versions of DOS and Microsoft Windows.

This usage has led to the character itself being called "pipe".

Disjunction

[edit]

In many programming languages, the vertical bar is used to designate the logic operation or, either bitwise or or logical or.

Specifically, in C and other languages following C syntax conventions, such as C++, Perl, Java and C#, a | b denotes a bitwise or; whereas a double vertical bar a || b denotes a (short-circuited) logical or. Since the character was originally not available in all code pages and keyboard layouts, ANSI C can transcribe it in form of the trigraph ??!, which, outside string literals, is equivalent to the | character.

In regular expression syntax, the vertical bar again indicates logical or (alternation). For example: the Unix command grep -E 'fu|bar' matches lines containing 'fu' or 'bar'.

Concatenation

[edit]

The double vertical bar operator "||" denotes string concatenation in PL/I, REXX, ooRexx, standard ANSI SQL, and theoretical computer science (particularly cryptography).

Delimiter

[edit]

Although not as common as commas or tabs, the vertical bar can be used as a delimiter in a flat file. Examples of a pipe-delimited standard data format are LEDES 1998B and HL7. It is frequently used because vertical bars are typically uncommon in the data itself.

Similarly, the vertical bar may see use as a delimiter for regular expression operations (e.g. in sed). This is useful when the regular expression contains instances of the more common forward slash (/) delimiter; using a vertical bar eliminates the need to escape all instances of the forward slash. However, this makes the bar unusable as the regular expression "alternative" operator.

Backus–Naur form

[edit]

In Backus–Naur form, an expression consists of sequences of symbols and/or sequences separated by '|', indicating a choice, the whole being a possible substitution for the symbol on the left.

<personal-name> ::= <name> | <initial>

Concurrency operator

[edit]

In calculi of communicating processes (like pi-calculus), the vertical bar is used to indicate that processes execute in parallel.

APL

[edit]

The pipe in APL is the modulo or residue function between two operands and the absolute value function next to one operand.

List comprehensions

[edit]

The vertical bar is used for list comprehensions in some functional languages, e.g. Haskell and Erlang. Compare set-builder notation.

Text markup

[edit]

The vertical bar is used as a special character in lightweight markup languages, notably MediaWiki's Wikitext (in the templates and internal links).

In LaTeX text mode, the vertical bar produces an em dash (—). The \textbar command can be used to produce a vertical bar.

Phonetics and orthography

[edit]

In the Khoisan languages and the International Phonetic Alphabet, the vertical bar is used to write the dental click (ǀ). A double vertical bar is used to write the alveolar lateral click (ǁ). Since these are technically letters, they have their own Unicode code points in the Latin Extended-B range: U+01C0 for the single bar and U+01C1 for the double bar.

Some Northwest and Northeast Caucasian languages written in the Cyrillic script have a vertical bar called palochka (Russian: палочка, lit. 'little stick'), indicating the preceding consonant is an ejective.

Longer single and double vertical bars are used to mark prosodic boundaries in the IPA.

Literature

[edit]

In medieval European manuscripts, a single vertical bar was a common variant of the virgula / used as a comma,[7] or caesura mark.[7]

In Sanskrit and other Indian languages, a single vertical mark, a danda, has a similar function as a period (full stop). Two bars || (a 'double danda') is the equivalent of a pilcrow in marking the end of a stanza, paragraph or section. The danda has its own Unicode code point, U+0964.

Poetry

[edit]

A double vertical bar ⟨||⟩ or ⟨ǁ⟩ is the standard caesura mark in English literary criticism and analysis. It marks the strong break or caesura common to many forms of poetry, particularly Old English verse. It is also traditionally used to mark the division between lines of verse printed as prose (the style preferred by Oxford University Press), though it is now often replaced by the forward slash.[citation needed]

Notation

[edit]

In the Geneva Bible and early printings of the King James Version, a double vertical bar is used to mark margin notes that contain an alternative translation from the original text. These margin notes always begin with the conjunction "Or". In later printings of the King James Version, the double vertical bar is irregularly used to mark any comment in the margins.

A double vertical bar symbol may be used to call out a footnote. (The traditional order of these symbols in English is *, , , §, ‖, , so its use is very rare; in modern usage, numbers and letters are preferred for endnotes and footnotes.[8])

Music scoring

[edit]

In music, when writing chord sheets, single vertical bars associated with a colon (|: A / / / :|) represents the beginning and end of a section (e.g. Intro, Interlude, Verse, Chorus) of music.[citation needed] Single bars can also represent the beginning and end of measures (|: A / / / | D / / / | E / / / :|). A double vertical bar associated with a colon can represent the repeat of a given section (||: A / / / :|| - play twice).[citation needed]

Encoding

[edit]

Solid vertical bar versus broken bar

[edit]
The code point 124 (7C hexadecimal) is occupied by a broken bar in a dot matrix printer of the late 1980s, which apparently lacks a solid vertical bar. See the full picture.

Many early video terminals and dot-matrix printers rendered the vertical bar character as the allograph broken bar ¦. This may have been to distinguish the character from the lower-case 'L' and the upper-case 'I' on these limited-resolution devices, and to make a vertical line of them look more like a horizontal line of dashes. It was also (briefly) part of the ASCII standard.

An initial draft for a 7-bit character set that was published by the X3.2 subcommittee for Coded Character Sets and Data Format on June 8, 1961, was the first to include the vertical bar in a standard set. The bar was intended to be used as the representation for the logical OR symbol.[9] A subsequent draft on May 12, 1966, places the vertical bar in column 7 alongside regional entry codepoints, and formed the basis for the original draft proposal used by the International Standards Organisation.[9] This draft received opposition from the IBM user group SHARE, with its chairman, H. W. Nelson, writing a letter to the American Standards Association titled "The Proposed revised American Standard Code for Information Interchange does NOT meet the needs of computer programmers!"; in this letter, he argues that no characters within the international subset designated at columns 2-5 of the character set would be able to adequately represent logical OR and logical NOT in languages such as IBM's PL/I universally on all platforms.[10] As a compromise, a requirement was introduced where the exclamation mark (!) and circumflex (^) would display as logical OR (|) and logical NOT (¬) respectively in use cases such as programming, while outside of these use cases they would represent their original typographic symbols:

"It may be desirable to employ distinctive styling to facilitate their use for specific purposes as, for example, to stylize the graphics in code positions 2/1 and 5/14 to those frequently associated with logical OR (|) and logical NOT (¬) respectively."

— X3.2 document X3.2/475[11]

The original vertical bar encoded at 0x7C in the original May 12, 1966 draft was then broken as ¦, so it could not be confused with the unbroken logical OR. In the 1967 revision of ASCII, along with the equivalent ISO 464 code published the same year, the code point was defined to be a broken vertical bar, and the exclamation mark character was allowed to be rendered as a solid vertical bar.[12][13] However, the 1977 revision (ANSI X.3-1977) undid the changes made in the 1967 revision, enforcing that the circumflex could no longer be stylised as a logical NOT symbol, the exclamation mark likewise no longer allowing stylisation as a vertical bar, and defining the code point originally set to the broken bar as a solid vertical bar instead;[12] the same changes were also reverted in ISO 646-1973 published four years prior.

Some variants of EBCDIC included both versions of the character as different code points. The broad implementation of the extended ASCII ISO/IEC 8859 series in the 1990s also made a distinction between the two forms. This was preserved in Unicode as a separate character at U+00A6 BROKEN BAR (the term "parted rule" is used sometimes in Unicode documentation). Some fonts draw the characters the same (both are solid vertical bars, or both are broken vertical bars).[14][failed verification]

US International keyboard showing broken bar on the keycap, even though pressing Shift+\ produces the solid vertical bar.
Full character set of IBM's Code page 437 rendered in VGA, which displays the broken bar glyph for codepoint 7C, despite the 1977 revision to ASCII

Many keyboards with US, US-International, and German QWERTZ layout display the broken bar on a keycap even though the solid vertical bar character is produced. This is a legacy of keyboards manufactured during the 1980s and 1990s for IBM PC compatible computers, as the IBM PC continued to display the glyph for the broken bar at codepoint 7C on displays from MDA (1981) to VGA (1987) despite the changes made to ASCII in 1977. The UK/Ireland keyboard has both symbols engraved: the broken bar is given as an alternate graphic on the "grave" (backtick) key; the solid bar is on the backslash key.

The broken bar character can be typed (depending on the layout) as AltGr+` or AltGr+6 or AltGr+⇧ Shift+\ on Windows and Compose!^ on Linux. It can be inserted into HTML as &brvbar;

The broken bar does not appear to have any clearly identified uses distinct from those of the vertical bar.[15] In non-computing use — for example in mathematics, physics and general typography — the broken bar is not an acceptable substitute for the vertical bar. In some dictionaries, the broken bar is used to mark stress that may be either primary or secondary: [¦ba] covers the pronunciations [ˈba] and [ˌba].[16]

Unicode code points

[edit]

These glyphs are encoded in Unicode as follows:

  • U+007C | VERTICAL LINE (&verbar;, &vert;, &VerticalLine;) (single vertical line)
  • U+00A6 ¦ BROKEN BAR (&brvbar;) (single broken line)
  • U+2016 DOUBLE VERTICAL LINE (&Verbar;, &Vert;) (double vertical line ( ): used in pairs to indicate norm)
  • U+FF5C FULLWIDTH VERTICAL LINE (Fullwidth form)
  • U+FFE4 FULLWIDTH BROKEN BAR
  • U+2225 PARALLEL TO (&DoubleVerticalBar;, &par;, &parallel;, &shortparallel;, &spar;)
  • U+01C0 ǀ LATIN LETTER DENTAL CLICK
  • U+01C1 ǁ LATIN LETTER LATERAL CLICK
  • U+2223 DIVIDES (&mid;, &shortmid;, &smid;, &VerticalBar;)
  • U+2502 BOX DRAWINGS LIGHT VERTICAL (&boxv;) (and various other box drawing characters in the range U+2500 to U+257F)
  • U+2758 LIGHT VERTICAL BAR
  • U+0964 DEVANAGARI DANDA
  • U+0965 DEVANAGARI DOUBLE DANDA

Code pages and other historical encodings

[edit]
Code pages, ASCII, ISO/IEC, EBCDIC, Shift-JIS, etc. Vertical bar (|) Broken bar (¦)
ASCII,
CP437, CP667, CP720, CP737, CP790, CP819, CP852, CP855, CP860, CP861, CP862, CP865, CP866, CP867, CP869, CP872, CP895, CP932, CP991
124 (7Ch) none
CP775 167 (A7h)
CP850, CP857, CP858 221 (DDh)
CP863 160 (A0h)
CP864 219 (DBh)
ISO/IEC 8859-1, -7, -8, -9, -13,
CP1250, CP1251, CP1252, CP1253, CP1254, CP1255, CP1256, CP1257, CP1258
166 (A6h)
ISO/IEC 8859-2, -3, -4, -5, -6, -10, -11, -14, -15, -16 none
EBCDIC CCSID 37 79 (4Fh) 106 (6Ah)
EBCDIC CCSID 500 187 (BBh)
JIS X 0208, JIS X 0213 Men-ku-ten 1-01-35 (7-bit: 2143h; Shift JIS: 8162h; EUC: A1C3h)[a] none


See also

[edit]

Notes

[edit]
  1. ^ The Shift JIS and EUC encoded forms also include the ASCII vertical bar in its usual encoding (see halfwidth and fullwidth forms). The same applies when the 7-bit form is used as part of ISO-2022-JP (allowing switching to and from ASCII).

References

[edit]
  1. ^ Raymond, Eric S. "ASCII". The Jargon File. Archived from the original on Oct 30, 2023.
  2. ^ a b c Weisstein, Eric W. "Single Bar". Wolfram MathWorld. Retrieved 2020-08-24.
  3. ^ Weisstein, Eric W. "Matrix Norm". Wolfram MathWorld. Retrieved 2020-08-24.
  4. ^ Univalent Foundations Program (2013). Homotopy Type Theory: Univalent Foundations of Mathematics (GitHub version) (PDF). Institute for Advanced Study. p. 108. Archived from the original (PDF) on 2017-07-07. Retrieved 2017-07-01.
  5. ^ Univalent Foundations Program (2013). Homotopy Type Theory: Univalent Foundations of Mathematics (print version). Institute for Advanced Study. p. 450.
  6. ^ Larus Thorlacius, Thordur Jonsson (eds.), M-Theory and Quantum Geometry, Springer, 2012, p. 263.
  7. ^ a b "Virgule". Oxford English Dictionary. Vol. XII (Corrected reissue ed.). Oxford University Press. 1933. p. 235..
  8. ^ Bringhurst, Robert (2005). The Elements of Typographic Style (ver. 3.1 ed.). Point Roberts, Washington: Hartley and Marks. pp. 68–69. But beyond the ... double dagger, this order is not familiar to most readers, and never was.
  9. ^ a b Fischer, Eric (2012). The Evolution of Character Codes, 1874-1968 (Thesis). Penn State University. CiteSeerX 10.1.1.96.678. Retrieved July 10, 2020.
  10. ^ H. W. Nelson, letter to Thomas B. Steel, June 8, 1966, Honeywell Inc. X3.2 Standards Subcommittee Records, 1961-1969 (CBI 67), Charles Babbage Institute, University of Minnesota, Minneapolis, box 1, folder 23.
  11. ^ X3.2 document X3.2/475, December 13, 1966, Honeywell Inc. X3.2 Standards Subcommittee Records, 1961-1969 (CBI 67), Charles Babbage Institute, University of Minnesota, Minneapolis, box 1, folder 22.
  12. ^ a b Salste, Tuomas (January 2016). "7-bit character sets: Revisions of ASCII". Aivosto Oy. urn:nbn:fi-fe201201011004. Archived from the original on 2016-06-13. Retrieved 2016-06-13.
  13. ^ Korpela, Jukka. "Character histories - notes on some Ascii code positions". Archived from the original on 2020-03-11. Retrieved 2020-05-31.
  14. ^ Jim Price (2010-05-24). "ASCII Chart: IBM PC Extended ASCII Display Characters". Retrieved 2012-02-23.
  15. ^ Jukka "Yucca" Korpela (2006-09-20). "Detailed descriptions of the characters". Retrieved 2012-02-23.
  16. ^ For example, "Balearic". Merriam-Webster.com Dictionary. Merriam-Webster..