Prettyprint
From Wikipedia, the free encyclopedia
To prettyprint (or pretty-print) is to present an object to a human reader, so that it is easier to perceive the object's structure, or, less commonly, to simply make it more attractive. A prettyprinter is a computer program that prettyprints. Prettyprinters for programming language source code are sometimes called code beautifiers.
Contents |
[edit] Pretty-printing mathematics
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 x2 + 3x. Mathematical pretty-printing is done by interactive numerical calculation programs such as GNU Octave or MATLAB; by computer algebra systems such as Maxima or Mathematica; and by some graphing calculators, such as the TI-89, or the TI-83 Plus with the PrettyPt add-on.
There is a web service free and usable by all web sites: PrettyPrint
Many text formatting programs can also typeset mathematics: TeX was developed specifically for high-quality mathematical typesetting.
[edit] 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 and text editors. For example, Emacs's various language modes can correctly indent blocks of code attractively.
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.
[edit] 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");}
These three C programs mean the same thing and parse in exactly the same manner since they consist of the same sequence of tokens, differing only in whitespace. 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.
[edit] Text formatting
Text formatting can be considered a generalized form of pretty-printing.
[edit] Pretty printers
- indent
- enscript, a general text printing tool with prettyprinting functions
- PHP Code Beautifier, an online tool
- PHP formatter, another online PHP formatter
- Beautify PHP, GPLed software, designed to reformat and beautify PHP source code files
- Artistic Style, reformatter and reindenter of C++, C and Java source code
- SourceStyler C++, commercial C and C++ source code beautifier
- StyleManager, commercial C and C++ source code beautifier
- GC GreatCode, C and C++ source code beautifier
- PrettyPrinter, an Open Source beautifier for every programming language
- HTML Tidy
- HTMLTrim
- HTMLParser
- XML Pretty Printer
- XML Pretty Printer Online, an online version of the XML Pretty Printer
- Hindent
- Perltidy, a reformatter and reindenter for Perl
- NWScript Pastebin, Pastebin and source code beautifier for NWScript.
- SlickEdit , an editor, can be used for PrettyPrint in interactive or batch mode with CVS for most languages.
- Jedi Code Format an Open Source code formatter for Delphi (Object Pascal)