In relation to computers, a delimiter is a separator that defines individual pieces of data in a file, communications protocol, or other data stream. The separator can be as simple as a single character, such as a comma, or as complex as a defined sequence of non-printing control characters. The purpose of a delimiter is to provide a predictable and reliable mechanism for dividing a stream of data into component parts when other methods might not be reliable or when the content of the data might be very arbitrary. Many computer applications, from word processors to spread sheets to web browsers, use delimiters for different functions. One complication that can arise with the use of a delimiter is known as a delimiter collision, which occurs when the intended data contains the separator as a character that is not intended to be interpreted as a separator, offsetting the following data and usually invalidating it.
A delimiter can be a single character, such as a space separating words, as is the case with many basic command line interpreters and word processors. The goal is to allow a program to isolate a single element from a longer string. A website address, for instance, uses periods to separate the different parts of the name of the site.
While commas, semicolons and other forms of punctuation commonly are used as separators, there are instances in which they are impractical, such as when accepting multiple lines of text that form a grammatically correct paragraph. In these cases, a delimiter can take the form of a non-printing control character so all printable characters can be used as data. A non-printing control character is a single character that has no corresponding display glyph in a computer font, sometimes is not even replicable on a keyboard and must instead be generated by an application or other function. These types of separators work well in some instances, but also can be burdensome if a user is unable to produce the character without a special program. One example of this occurred in early command line editing programs, in which a user had to use the key combination "control-Z" to generate the non-printing end-of-file (EOF) character to create a delimiter that marked the end of a file.
A more complex type of delimiter is designed to separate entire blocks of data by enclosing the data inside opening and closing separators. These separators can take the form of brackets — as is seen in many programming languages — quotation marks or asterisks. The goal is to provide a way to divide a block of arbitrary data or text that could span several lines, or include control or other special characters. In the HyperText Markup Language (HTML), the tags used to markup text are surrounded by greater-than and less-than signs, allowing the tags to be any length and include control character such as a carriage return generated when the return key is pressed without breaking the block. Using the delimiters in this way allows an HTML document to be formatted so it is more human-readable without creating problems for the HTML interpreter.