World Library  
Flag as Inappropriate
Email this Article

Whitespace (computer science)

Article Id: WHEBN0026271266
Reproduction Date:

Title: Whitespace (computer science)  
Author: World Heritage Encyclopedia
Language: English
Subject: Search engine (computing), Pilcrow, Word divider, Make (software), Carriage return, M-expression, Tektronix 4010, Hard space, Non-breaking space, LWS
Collection:
Publisher: World Heritage Encyclopedia
Publication
Date:
 

Whitespace (computer science)

In computer science, whitespace is any character or series of whitespace characters that represent horizontal or vertical space in typography. When rendered, a whitespace character does not correspond to a visible mark, but typically does occupy an area on a page. For example, the common whitespace symbol U+0020   space (HTML: ), also ASCII 32, represents a blank space punctuation character in text, used as a word divider in Western scripts.

With many keyboard layouts, a horizontal whitespace character may be entered through the use of a spacebar. Horizontal whitespace may also be entered on many keyboards through the use of the Tab key, although the length of the space may vary. Vertical whitespace is a bit more varied as to how it is encoded, but the most obvious in typing is the Enter result which creates a 'newline' code sequence in applications programs. Older keyboards might instead say Return, abbreviating the typewriter keyboard meaning 'Carriage-Return' which generated an electromechanical return to the left stop (CR code in ASCII-hex &0D;) and a line feed or move to the next line (LF code in ASCII-hex &0A;); in some applications these were independently used to draw text cell based displays on monitors or for printing on tractor-guided printers—which might also contain reverse motions/positioning code sequences allowing yesterdays text base fancier displays. Many early computer games used such codes to draw a screen.

The term "whitespace" is based on the resulting appearance on ordinary paper. However they are coded inside an application, whitespace can be processed the same as any other character code and programs can do the proper action as defined for the context in which they occur.

Definition and ambiguity

The most common whitespace characters may be typed via the space bar or the tab key. Depending on context, a line-break generated by the return or enter key may be considered white space as well.

Unicode

Relative widths of various spaces in Unicode.

In Unicode (Unicode Character Database) the following 25 characters are defined as whitespace characters.[1] (Depending on the browser and fonts used to view this table, not all spaces may display properly.)

Within the algorithm for bidirectional writing, Unicode uses another definition of "whitespace" (Bidirectional Character Type=WS). These Bidi-WS characters (18 out of the 25 listed in the table here) are "neutral": they follow the writing direction of neighboring characters rather than determining their own. The eight other characters listed here are also "neutral", but have a different bidi-type.

Unicode also provides some visible characters to stand in for whitespace when necessary:
Space illustrating characters (visible) in Unicode
Code Dec Name Block Display Description
U+00B7 183 Middle dot Basic Latin · interpunct, used in text processors. HTML also: ·
U+237D 9085 Shouldered open box Miscellaneous Technical used for NBSP
U+2420 9248 Symbol for space Control Pictures
U+2422 9250 Blank symbol Control Pictures
U+2423 9251 Open box Control Pictures Used in a textbook on the Modula-2 computer language published ca. 1985 by Springer-Verlag, where it is necessary to explicitly indicate a space code. Also used in the keypad silkscreening of TI-8x series graphing calculators from Texas Instruments.[10]

Non-space blanks:

  • The Braille Patterns Unicode block contains U+2800 braille pattern blank (HTML: ), a Braille pattern with no dots raised. Some fonts display the character as a fixed-width blank, however the Unicode standard explicitly states that it does not act as a space.

Whitespace and digital typography

On-screen display

Text editors, word processors, and desktop publishing software differ in how they represent whitespace on the screen, and how they represent spaces at the ends of lines longer than the screen or column width. In some cases, spaces are shown simply as blank space; in other cases they may be represented by an interpunct or other symbols. Many different characters (described below) could be used to produce spaces, and non-character functions (such as margins and tab settings) can also affect whitespace.

Variable-width general-purpose space

In computer character encodings, there is a normal general-purpose space (Unicode character U+0020; 32 decimal) whose width will vary according to the design of the typeface. Typical values range from 1/5 em to 1/3 em (in digital typography an em is equal to the nominal size of the font, so for a 10-point font the space will probably be between 2 and 3.3 points). Sophisticated fonts may have differently sized spaces for bold, italic, and small-caps faces, and often compositors will manually adjust the width of the space depending on the size and prominence of the text.

In addition to this general-purpose space, it is possible to encode a space of a specific width. See the table below for a complete list.

Breaking and non-breaking spaces

By default, computer programs usually assume that, in text with word wrap enabled, a line break may as necessary be inserted at the position of a space. The non-breaking space, U+00A0 (160 decimal), named entity   is intended to render the same as a normal space but prevents line-wrapping at that position. Hard spaces (contrasted with "soft spaces") may be defined by some word processors and operating systems as either a non-breaking space, a non-combining/non-expanding space, or some other special character.

Hair spaces around dashes

In American typography, both en dashes and em dashes are set continuous with the text (as illustrated by use in The Chicago Manual of Style, 6.80, 6.83–86). However, an em dash can optionally be surrounded with a so-called hair space, U+200A (8202 decimal), or thin space, U+2009 (8201 decimal). The thin space can be written in HTML by using the named entity and the hair space can be written using numeric character reference or . This space should be much thinner than a normal space, and is seldom used on its own.

Normal space versus hair space
(as rendered by your browser)
Normal space left right
Normal space with em dash left — right
Thin space with em dash left — right
Hair space with em dash left — right
No space with em dash left—right

Computing applications

Programming languages

In programming language syntax, spaces are frequently used to explicitly separate tokens. Runs of whitespace characters (beyond the first) occurring within source code written in computer programming languages (outside of strings and other quoted regions) are ignored by most languages; such languages are called free-form. In a few languages, including Haskell, occam, ABC, and Python, white space and indentation are used for syntactical purposes. In the satirical language called Whitespace, whitespace characters are the only valid characters for programming, while any other characters are ignored.

Still, for most programming languages, excessive use of white space, especially trailing white space at the end of lines, is considered a nuisance. However correct use of white space can make the code easier to read and help group related logic. In interpreted languages, parsing of unnecessary white space may affect the speed of execution.

The C language defines whitespace characters to be "... space, horizontal tab, new-line, vertical tab, and form-feed".[11] The HTTP network protocol requires different types of white space to be used in different parts of the protocol, such as: only the space character in the status line, CRLF at the end of a line, and "linear white space" in header values.[12]

Command line user interfaces

In commands processed by command processors, e.g., in scripts and typed in, the space character can cause problems as it has two possible functions: as part of a command or parameter, or as a parameter or name separator. Ambiguity can be prevented either by prohibiting embedded spaces, or by enclosing a name with embedded spaces between quote characters.

Markup languages

Some markup languages, such as SGML, preserve whitespace as written.

Web markup languages such as XML and HTML treat whitespace characters specially, including space characters, for programmers' convenience. One or more space characters read by conforming display-time processors of those markup languages are collapsed to 0 or 1 space, depending on their semantic context. For example, double (or more) spaces within text are collapsed to a single space, and spaces which appear on either side of the "=" that separates an attribute name from its value have no effect on the interpretation of the document. Element end tags can contain trailing spaces, and empty-element tags in XML can contain spaces before the "/>". In these languages, unnecessary whitespace increases the file size, and so may slow network transfers. On the other hand, unnecessary whitespace can also inconspicuously mark code, similar to, but less obvious than comments in code. This can be desirable to prove an infringement of license or copyright that was committed by copying and pasting.

In XML attribute values, sequences of whitespace characters are treated as a single space when the document is read by a parser.[13] Whitespace in XML element content is not changed in this way by the parser, but an application receiving information from the parser may choose to apply similar rules to element content. An XML document author can use the xml:space="preserve" attribute on an element to instruct the parser to discourage the downstream application from altering whitespace in that element's content.

In most HTML elements, a sequence of whitespace characters is treated as a single inter-word separator, which may manifest as a single space character when rendering text in a language that normally inserts such space between words.[14] Conforming HTML renderers are required to apply a more literal treatment of whitespace within a few prescribed elements, such as the pre tag and any element for which CSS has been used to apply pre-like whitespace processing. In such elements, space characters will not be "collapsed" into inter-word separators.

In both XML and HTML, the non-breaking space character, along with other non-"standard" spaces, is not treated as collapsible "whitespace", so it is not subject to the rules above.

File names

Such usage is similar to multiword file names written for operating systems and applications that are confused by embedded space codes—such file names instead use an underscore (_) as a word separator, as_in_this_phrase.

Another such symbol was U+2422 blank symbol. This was used in the early years of computer programming when writing on coding forms. Keypunch operators immediately recognized the symbol as an "explicit space".

See also

References

  1. ^ Additional information about spaces: The Unicode Standard ver. 5.2.0 – section 6.2 table 6-2, and section 16.2 Line and Word Breaking
  2. ^ "Character design standards – space characters". Character design standards. Microsoft. 1998–1999. Retrieved 2009-05-18. 
  3. ^ The Unicode Standard 5.0, printed edition, p.205
  4. ^ ISO/IEC 10646-1:1993/FDAM 29:1999(E)
  5. ^ "Writing Systems and Punctuation" (PDF). The Unicode Standard 7.0. Unicode Inc. 2014. Retrieved 2014-11-02. 
  6. ^ "General Punctuation" (PDF). The Unicode Standard 5.1. Unicode Inc. 1991–2008. Retrieved 2009-05-13. 
  7. ^ Sargent, Murray III (2006-08-29). "Unicode Nearly Plain Text Encoding of Mathematics (Version 2)". Unicode Technical Note #28. Unicode Inc. pp. 19–20. Retrieved 2009-05-19. 
  8. ^ Gillam, Richard (2002). Unicode Demystified: A Practical Programmer's Guide to the Encoding Standard. Addison-Wesley. ISBN . 
  9. ^ "Network.IDN.blacklist chars". MozillaZine. 2009-02-24. Retrieved 18 September 2010. 
  10. ^ Above the zero "0" or negative "(‒)" key
  11. ^ http://www.open-std.org/jtc1/sc22/wg14/www/docs/n1548.pdf Section 6.4, paragraph 3
  12. ^ R. Fielding et al., "2.2 Basic Rules", Hypertext Transfer Protocol—HTTP/1.1, RFC 2616 
  13. ^ "3.3.3 Attribute-Value Normalization". Extensible Markup Language (XML) 1.0 (Fifth Edition). World Wide Web Consortium. 
  14. ^ "9.1 White space". W3CHTML 4.01 Specification. World Wide Web Consortium. 

External links

  • Propertylist of Unicode Character Database
This article was sourced from Creative Commons Attribution-ShareAlike License; additional terms may apply. World Heritage Encyclopedia content is assembled from numerous content providers, Open Access Publishing, and in compliance with The Fair Access to Science and Technology Research Act (FASTR), Wikimedia Foundation, Inc., Public Library of Science, The Encyclopedia of Life, Open Book Publishers (OBP), PubMed, U.S. National Library of Medicine, National Center for Biotechnology Information, U.S. National Library of Medicine, National Institutes of Health (NIH), U.S. Department of Health & Human Services, and USA.gov, which sources content from all federal, state, local, tribal, and territorial government publication portals (.gov, .mil, .edu). Funding for USA.gov and content contributors is made possible from the U.S. Congress, E-Government Act of 2002.
 
Crowd sourced content that is contributed to World Heritage Encyclopedia is peer reviewed and edited by our editorial staff to ensure quality scholarly research articles.
 
By using this site, you agree to the Terms of Use and Privacy Policy. World Heritage Encyclopedia™ is a registered trademark of the World Public Library Association, a non-profit organization.
 


Copyright © World Library Foundation. All rights reserved. eBooks from Project Gutenberg are sponsored by the World Library Foundation,
a 501c(4) Member's Support Non-Profit Organization, and is NOT affiliated with any governmental agency or department.