FORM is a Symbolic Manipulation System. It reads symbolic expressions from files and executes symbolic/algebraic transformations upon them. The answers are returned in a textual mathematical representation. As its landmark feature, the size of the considered expressions in FORM is only limited by the available disk space and not by the available RAM. FORM has been essential for many state-of-the-art computations in High Energy Physics.
FORM's original author is Jos Vermaseren of NIKHEF, the Dutch institute for subatomic physics. Other people that have made contributions can be found in the file "AUTHORS".
The following FORM program repeatedly matches the power of a variable x in the expression E, as long as the power is more than 1 and creates two new terms with lower power:
Symbol x,n;
Local E = x^10;
repeat id x^n?{>1} = x^(n-1) + x^(n-2);
Print;
.end
and yields E = 34 + 55*x.
The following FORM program matches the function f that has any arguments before encountering an x and any arguments after, and switches them around:
CFunction f;
Symbol x;
Local E = f(1,2,x,3,4);
id f(?a,x,?b) = f(?b,?a);
Print;
.end
and yields E = f(3,4,1,2).
FORM can match many more complicated patterns and has many more features, as documented in the additional information.
The latest release notes are available on the Wiki; the latest reference manual can be found here, and the Form Cookbook can be found here.
More background information, a collection of FORM programs, and a number of courses can be found on the official FORM website and on the Wiki.
For reporting bugs, asking questions, giving remarks and suggestions, we welcome you to use the Issue Tracker or Discussion Forum.