#REDIRECT [[List of programming languages by type#Curly bracket languages]]
'''Curly brace''' or '''bracket''' [[programming language]]s are those which use [[balance]]d [[Bracket|bracket]]s ('''{''' and '''}''') in their [[syntax]] or [[formal grammar]], mainly due to being [[C programming language|C]]-influenced.
{{Redirect category shell|1=
== Statements and blocks ==
{{R to section}}
}}
The name derives from the common syntax of the languages, where blocks of statements are enclosed in curly brackets. 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]]. Beside the curly brackets, 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 (in [[Ada programming language|Ada]], [[Pascal programming language|Pascal]], [[REXX]], and [[Visual Basic]]), indentation (in [[Python programming language|Python]]), or other symbols such as parentheses (in [[Lisp]]).
=== Loops ===
In C, [[C plus plus|C++]], and [[Java programming language|Java]]:
while (''Boolean expression'') '''{'''
''statement(s)''
'''}'''
do '''{'''
''statement(s)''
'''}''' while (''Boolean expression'');
for (''initialisation''; ''termination condition''; ''incrementing expr'') '''{'''
''statement(s)''
'''}'''
=== Conditional statements ===
In C, C++, and Java:
if (''Boolean expression'')
'''{'''
''statement(s)''
'''}'''
if (''Boolean expression'')
'''{'''
''statement(s)''
'''}'''
else
'''{'''
''statement(s)''
'''}'''
if (''Boolean expression'')
'''{'''
''statement(s)''
'''}'''
else 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 [[C Sharp programming language|C#]] and Java:
try
'''{'''
''statement(s)''
'''}'''
catch (exception type)
'''{'''
''statement(s)''
'''}'''
catch (exception type)
'''{'''
''statement(s)''
'''}'''
finally
'''{'''
''statement(s)''
'''}'''
C++ does not have <tt>finally</tt>, but otherwise looks similar. C has nothing like this, though some compilers vendors added the keywords <tt>__try</tt> and <tt>__finally</tt> to their implementation.
==Languages==
*[[ABCL/c plus|ABCL/c+]]
*[[C programming language|C]] - developed circa 1970 at [[Bell Labs]]
*[[C plus plus|C++]]
*[[C Sharp|C#]]
*[[Coyote programming language|Coyote]] - safer C variant to lower the likelihood of some common errors, e.g., buffer overflows
*[[Cyclone programming language|Cyclone]] - safer C variant
*[[D programming language|D]] - safer faster C/C++ variant
*[[Dino programming language|DINO]]
*[[E programming language|E]]
*[[ECMAScript]] a.k.a. [[ActionScript]], [[DMDScript]], [[JavaScript]], [[JScript]]
*[[Frink]]
*[[Java programming language|Java]]
*[[Perl]]
*[[PHP]]
*[[Pico programming language|Pico]]
*[[Pike_programming_language|Pike]]
*The [[Unix shell]]s: [[AWK programming language|AWK]], [[C shell]] (csh)
*[[UnrealScript]]
[[Category:Curly bracket programming languages|*]]
|