This article does not cite any sources. Please help improve this article by adding citations to reliable sources. Unsourced material may be challenged and removed.Find sources: "Free-form language" – news · newspapers · books · scholar · JSTOR (July 2020) (Learn how and when to remove this template message)
This article may document a neologism or protologism in such a manner as to promote it. Please add more reliable sources to establish its current use and the impact the term has had on its field. Otherwise consider renaming or deleting the article. (July 2020) (Learn how and when to remove this template message)

In computer programming, a free-form language is a programming language in which the positioning of characters on the page in program text is insignificant. Program text does not need to be placed in specific columns as on old punched card systems, and frequently ends of lines are insignificant. Whitespace characters are used only to delimit tokens, and have no other significance.

Most free-form languages descend from ALGOL, including C, Pascal, and Perl. Lisp languages are free-form, although they do not descend from ALGOL. Rexx is mostly free-form, though in some cases whitespace characters are concatenation operators. SQL, though not a full programming language, is also free-form.

Most free-form languages are also structured programming languages, which is sometimes thought to go along with the free-form syntax: Earlier imperative programming languages such as Fortran 77 used particular columns for line numbers, which many structured languages do not use or need.

Structured languages exist which are not free-form, such as ABC, Curry, Haskell, Python and others. Many of these use some variant of the off-side rule, in which indentation, rather than keywords or braces, is used to group blocks of code.

See also