Curly bracket programming language: Difference between revisions

Content deleted Content added
m updated c++ link
Dexbot (talk | contribs)
m Bot: Fixing broken section link
Tag: Redirect target changed
 
(155 intermediate revisions by more than 100 users not shown)
Line 1:
#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)''
'''}'''
 
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|*]]