Curly bracket programming language

This is an old revision of this page, as edited by 209.103.199.103 (talk) at 15:42, 23 August 2005 (Statements and blocks: Changed word "braces" to "brackets" to conform to Wiki-usage.). The present address (URL) is a permanent link to this revision, which may differ significantly from the current revision.

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 braces or 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's 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

In Java, C and C++

while (Boolean expression) {
    statement(s)
}
do {
    statement(s)
} while (Boolean expression);
for (initialisation ; termination condition ; incrementing expr) {
    statement(s)
}

Conditional statements

In Java, C and 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,

if expression then
   statement(s)
end

Exception handling

In Java and C#:

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