#REDIRECT [[List of programming languages by type#Curly bracket languages]]
This article describes the syntax of programming languages.
{{Redirect category shell|1=
== Comments ==
{{R to section}}
See [[comment]]s.
== Statements and blocks ==
The '''curly brace family''' of [[programming language]]s includes [[C programming language|C]], [[C Plus Plus|C++]]; [[AWK]], [[Coyote]], [[Cyclone programming language|Cyclone]], [[C Sharp|C#]], [[D programming language|D]], [[ECMAScript]] (a.k.a. [[JavaScript]]), [[Frink]], [[Java programming language|Java]], [[Perl]], [[PHP]], [[Pico programming language|Pico]], [[Pike_programming_language|Pike]], and others.
The name "curly brace" derives from the common [[syntax]] of the languages, where blocks of statements are enclosed in [[bracket#Brackets in computing|curly braces]]. For example (using [[Berkeley Software Distribution|BSD]]/[[Eric Allman|Allman]] [[indent style]], one of many stylistic ways to format a program):
for (int i = 0; i < 10; i++)
'''{'''
printf("%d", i);
doTask(i);
'''}'''
Languages in this family are sometimes referred to as '''C-style''', because they tend to have syntax that is strongly influenced by [[C syntax|C's syntax]]. Beside the curly braces, they often inherit other syntactic features, such as using the semicolon as a statement terminator (not as a separator), and the three-part "for" statement syntax as shown above.
Generally, these languages are also considered "free-form languages", meaning that the compiler considers all whitespace to be the same as one blank space, much like [[HTML]]. Considering that, the above code ''could'' be written:
for(int i=0;i<10;i++)'''{'''printf("%d",i);doTask(i);'''}'''
but this is not recommended, as it becomes nearly impossible for a person to read after the program grows beyond a few statements.
There are many other ways to identify statement blocks, such as ending keywords that may match beginning keywords (see [[Visual Basic]], [[Pascal programming language|Pascal]], [[Ada programming language|Ada]], and [[REXX]]), indentation (see [[Python programming language|Python]]), or other symbols such as parentheses (see [[LISP]]).
=== Loops ===
In [[Java programming language|Java]], [[C programming language|C]] and [[C Plus Plus|C++]]
while (''Boolean expression'') {
''statement(s)''
do {
''statement(s)''
} while (''Boolean expression'');
for (''initialisation'' ; ''termination condition'' ; ''incrementing expr'') {
''statement(s)''
}
=== Conditional statements ===
In [[Java programming language|Java]], [[C programming language|C]] and [[C Plus Plus|C++]]
if (''Boolean expression'') {
''statement(s)''
}
if (''Boolean expression'') {
''statement(s)''
} else {
''statement(s)''
}
switch (''integer expression'') {
case ''constant integer expr'':
''statement(s)''
break;
...
default:
''statement(s)''
break;
}
In [[Ruby programming language|Ruby]],
if ''expression'' then
''statement(s)''
end
=== Exception handling ===
In [[Java programming language|Java]] and [[C Sharp programming language|C#]]:
try {
''statement(s)''
} catch (exception type) {
''statement(s)''
} catch (exception type) {
''statement(s)''
} finally {
''statement(s)''
}
[[C Plus Plus|C++]] does not have <tt>finally</tt>, but otherwise looks similar.
[[C programming language|C]] has nothing like this, though some compilers vendors added the keywords <tt>__try</tt> and <tt>__finally</tt> to their implementation.
[[Category:Curly bracket programming languages|*]]
|