The Falcon programming language was designed in late 2012 as a target
language for a compiler construction course. Therefore, one of its primary
goals is compactness. Among its other goals:
Falcon, following in the footsteps of the
Turing programming language, attempts to eliminate the need for
extraneous punctuation and syntactic junk. As in Turing, therefore,
semicolons are not required, and the main program need not be delimited
by any foolish syntax.
putstr("Hello World!\LF\" output)
In Falcon, the type of bracket, brace or parenthesis used does not imply
any semantic categories. Opening and closing delimiters must match,
but all grouping delimiters may be used, as in standard mathematical
notation. Thus, [(a+b)/(c+d)] is a legal expression and
if a is a function of one paramter, a[i] is a
legal function call.
In Falcon, a number of errors in the design of the
C programming language
Arrays are a type distinct from pointers, and array subscripting is not
equivalent to pointer arithmetic, following the lead of
Leading zeros on numeric constants do not indicate a change
of number base; instead, the number sign # is used, following
the lead of
Breaking out of the middle of a loop is done by raising an exception,
and cases of a case-select construct cannot flow into each other,
eliminating the use of a specialized break statement.
The distinction between assignment, comparison and pointer comparison
is inherently messy.