Pretty-printing

This is an old revision of this page, as edited by 195.60.102.169 (talk) at 11:30, 25 May 2005 (Pretty printers). The present address (URL) is a permanent link to this revision, which may differ significantly from the current revision.

To prettyprint (or pretty-print) is to present an object in such a way a to make its structure easier to perceive for to a human reader, or (less commonly) simply to make it more attractive. A prettyprinter is a program that prettyprints. Prettyprinters for programming language source code are sometimes called code beautifiers.

Pretty-printing math

Pretty-printing usually refers to displaying mathematical expressions in a way that is similar to the way they are typeset professionally. For example, in computer algebra systems the system may write output like x ^ 2 + 3 * x as  . Mathematical pretty-printing is done by interactive numerical calculation programs such as Octave or MATLAB, and by computer algebra programs such as Maxima or Mathematica, as well as by TI-89 graphing calculator. Earlier graphing calculators like the TI-83 required separate add-ons ('e.g.' PrettyPt).

Code formatting and beautification

Programmers often use tools to format their source code in a particular manner. Proper code formatting makes it easier to read and understand. Moreover, often different programmers have different preferred styles of formatting, such as the use of code indentation and whitespace or positioning of braces. A code formatter converts source code from one format style to another. This is relatively straightforward because of the unambiguous syntax of programming languages. Code beautification involves parsing the source code into component structures, such as assignment statements, if blocks, loops, etc (see also control flow), and formatting them in a manner specified by the user in a configuration file.

There exist both standalone code beautifiers and built in ones in integrated development environments (IDEs). For example, Microsoft Visual Studio's source code editor does some limited code formatting like indenting blocks of code inside of braces properly.

An early example of pretty-printing was Bill Gosper's "GRIND" program, which used combinatorial search with pruning to format LISP programs. The term "grind" was used in some Lisp circles as a synonym for pretty-printing.

Example of formatting and beautifying code

int foo(int k) {
  if(k==11) printf("hello\n");
   else printf("good bye\n");
}
int foo(int k)  
{
   if( k == 11 )
     printf("hello\n");
   else 
     printf("good bye\n");
}
int foo(int k){if(k==11)printf("hello\n");else printf("good bye\n");}

All three examples mean the same thing and parse in exactly the same manner. Example 1 reflects one preference, example 2 another one, and example 3 is another style which some might find less easy to read. A code beautifier will convert any of these into a format preferred by the programmer.

Text formatting

Text formatting can be considered a form of pretty-printing.

Pretty printers