Jump to content

Prettyprint: Difference between revisions

From Wikipedia, the free encyclopedia
Content deleted Content added
deleted section that was so vague as to be meaningless--and unsourced to boot
Line 3: Line 3:
==Pretty-printing mathematics==
==Pretty-printing mathematics==


Pretty-printing usually refers to displaying [[mathematical expression]]s in a way that is similar to the way they are typeset professionally. For example, in [[computer algebra system]]s such as [[Maxima (software)|Maxima]] or [[Mathematica]] the system may write output like "<tt>x ^ 2 + 3 * x</tt>" as "<math>x^2+3x</math>". Some [[graphing calculator]]s can perform pretty-printing such as the [[HP-49 series]] and [[TI-89]], or the [[TI-83 Plus]]/[[TI-84 Plus]] with the [http://www.ticalc.org/archives/files/fileinfo/208/20807.html PrettyPt] add-on. Additionally, a number of newer scientific calculators are equipped with dot matrix screens capable of pretty-printing such as the Casio FX-115ES and FX-300ES (Natural Display), Sharp EL-W516B and EL-W535B (WriteView), HP SmartCalc 300s, and [[TI-30#TI-30_models|TI-30XB]].
Pretty-printing usually refers to displaying [[mathematical expression]]s in a way that is similar to the way they are typeset professionally. For example, in [[computer algebra system]]s such as [[Maxima (software)|Maxima]] or [[Mathematica]] the system may write output like "<tt>x ^ 2 + 3 * x</tt>" as "<math>x^2+3x</math>". Some [[graphing calculator]]s can perform pretty-printing such as the [[Casio 9860 series]], [[HP-49 series]] and [[TI-89]], or the [[TI-83 Plus]]/[[TI-84 Plus]] with the [http://www.ticalc.org/archives/files/fileinfo/208/20807.html PrettyPt] add-on. Additionally, a number of newer scientific calculators are equipped with dot matrix screens capable of pretty-printing such as the Casio FX-ES series (Natural Display), Sharp EL-W516B and EL-W535B (WriteView), HP SmartCalc 300s, and [[TI-30#TI-30_models|TI-30XB]].


Many text formatting programs can also typeset mathematics: [[TeX]] was developed specifically for high-quality mathematical typesetting.
Many text formatting programs can also typeset mathematics: [[TeX]] was developed specifically for high-quality mathematical typesetting.

Revision as of 04:31, 14 December 2009

Prettyprint (or pretty-print) is the application of any of various stylistic formatting conventions to text, source code, markup, and other similar kinds of content. These formatting conventions usually consist of changes in positioning, spacing, color, contrast, size and similar modifications intended to make the content easier for people to view, read and understand. Prettyprinters for programming language source code are sometimes called code beautifiers or syntax highlighters.

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 such as Maxima or Mathematica the system may write output like "x ^ 2 + 3 * x" as "". Some graphing calculators can perform pretty-printing such as the Casio 9860 series, HP-49 series and TI-89, or the TI-83 Plus/TI-84 Plus with the PrettyPt add-on. Additionally, a number of newer scientific calculators are equipped with dot matrix screens capable of pretty-printing such as the Casio FX-ES series (Natural Display), Sharp EL-W516B and EL-W535B (WriteView), HP SmartCalc 300s, and TI-30XB.

Many text formatting programs can also typeset mathematics: TeX was developed specifically for high-quality mathematical typesetting.

Code formatting and beautification

Programmers often use tools to format programming language 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 ones built into integrated development environments and text editors. For example, Emacs' 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.[1]

Project style rules

Many open source projects have established rules for code layout. The most typical are the GNU style and the BSD style. The biggest difference between the two is the location of the braces: in the GNU style, opening and closing braces are on lines by themselves, with the same indent. BSD style places an opening brace at the end of the preceding line, and the closing braces can be followed by else. The size of indent and location of white space also differs.

Example of formatting and beautifying code

The following example shows some typical C structures and how various indentation style rules format them. Without any formatting at all, it looks like this:

int foo(int k) { if (k < 0 || k > 2) { printf("out of range\n");
printf("this function requires a value of 1 or 2\n"); } else {
printf("Switching\n"); switch (k) { case 1: printf("1\n"); break; case
2: printf("2\n"); break; } } }

The GNU indent program produces the following output when asked to indent according to the GNU rules:

int
foo (int k)
{
  if (k < 0 || k > 2)
    {
      printf ("out of range\n");
      printf ("this function requires a value of 1 or 2\n");
    }
  else
    {
      printf ("Switching\n");
      switch (k)
	{
	case 1:
	  printf ("1\n");
	  break;
	case 2:
	  printf ("2\n");
	  break;
	}
    }
}

It produces this output when formatting according to BSD rules:

int
foo(int k)
{
	if (k < 0 || k > 2) {
		printf("out of range\n");
		printf("this function requires a value of 1 or 2\n");
	} else {
		printf("Switching\n");
		switch (k) {
		case 1:
			printf("1\n");
			break;
		case 2:
			printf("2\n");
			break;
		}
	}
}

Text formatting

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

Notes

  1. ^ Jargon File, s.v. grind

See also

Historical implementations

Coding style guides