Free-form language

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. Free-form languages allow a greater degree of flexibility and have fewer syntactic rules to learn, which could lower the entry barrier for beginners.

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 and its dialects ooRexx and NetRexx are 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.