Curly brace or bracket programming languages are those which use balanced brackets ({ and }) in their syntax or formal grammar, mainly due to being C-influenced.
Statements and blocks
The name derives from the common syntax of the languages, where blocks of statements are enclosed in curly brackets. For example (using BSD/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 (see Ada, Pascal, REXX, and Visual Basic), indentation (see Python), or other symbols such as parentheses (see Lisp).
Loops
while (Boolean expression) { statement(s) }
do { statement(s) } while (Boolean expression);
for (initialisation ; termination condition ; incrementing expr) { statement(s) }
Conditional statements
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:
if expression then statement(s) end
Exception handling
try { statement(s) } catch (exception type) { statement(s) } catch (exception type) { statement(s) } finally { statement(s) }
C++ does not have finally, but otherwise looks similar. C has nothing like this, though some compilers vendors added the keywords __try and __finally to their implementation.
Languages
- C - developed circa 1970 at Bell Labs
- C++
- C#
- Coyote - safer C variant to lower the likelihood of some common errors, e.g., buffer overflows
- Cyclone - safer C variant
- D - safer faster C/C++ variant
- DINO
- E
- ECMAScript a.k.a. JavaScript, JScript
- Frink
- Java
- Perl
- PHP
- Pico
- Pike
- The Unix shells: AWK, C shell (csh)