Programming Symbols: Names, Meanings, and How Often Each Appears in Code

The short answer: programming uses four bracket pairs: parentheses ( ), square brackets [ ], curly braces { } and angle brackets < >. Below are the names and everyday uses of all 32 symbols on a US keyboard, with how often each one actually appears in 1,350 real code snippets. The most common, by a wide margin, is the parenthesis.
Key Findings
- •
23.9% of the non-space characters in code are symbols, about one in every four.
- •
Parentheses lead by far: 53.1 per 1,000 characters, more than twice curly braces (23.0) and the semicolon (21.6).
- •
61.9% of symbol keystrokes need Shift. Most of the common symbols are the shifted half of their key.
- •
Every language has a signature symbol. PHP's is
$(36.3 per 1,000), C++'s is the colon (40.5), HTML's is the angle bracket (67.9). - •
The rarest: the backtick, caret and tilde each appear less than once per 1,000 characters.
Source: TurboType analysis of 1,350 code snippets in nine languages, 207,306 non-space characters, October 2026.
1. The Most Common Symbols in Code
We counted every character in 1,350 snippets of real code across nine languages. Here are the fifteen symbols that turn up most, with each bracket pair counted together.
Parentheses are in a league of their own because nearly every line of code calls a function, and every call opens and closes one. Curly braces come second because they open and close every block in the C family. The semicolon, equals sign and colon follow, each roughly once every 50 to 60 characters.
2. What Are Brackets, Braces and Parentheses Called?
These four pairs cause most of the naming confusion, partly because American and British English disagree about what brackets means.
Parentheses ( )
Also called parens, and round brackets in British English. They call and define functions, group expressions, and wrap conditions in C-family languages. In Python they also make tuples.
Square brackets [ ]
In American usage, these are what brackets usually means. They write arrays and lists, index into them (items[0]), and in Rust wrap attributes such as #[derive(Debug)].
Curly braces { }
Usually just braces; British English often says curly brackets. They open and close blocks in C, C++, Java, JavaScript, PHP and Rust, write objects in JavaScript and dictionaries in Python, and mark placeholders in Python f-strings.
Angle brackets < >
Called angle brackets or chevrons when they come as a pair, and less-than and greater-than when they compare. They wrap generic types such as Map<String, Integer>, every HTML tag, and the second half of arrows like => and ->. In HTML they are the two most common characters of all.
3. Every Programming Symbol: Names and Uses
All 32 symbols on a US keyboard, most common first. Per 1,000 is how often each appears in our code sample; pairs count both halves. Shift says whether you need it on a US layout.
| Symbol | Names | Used for | Per 1,000 | Shift |
|---|---|---|---|---|
( ) | Parentheses, parens, round brackets (UK) | Function calls and definitions, grouping, conditions in C-family if and while, Python tuples | 53.1 | Yes |
{ } | Curly braces, braces, curly brackets | Code blocks, objects and dictionaries, f-string and template placeholders, Python sets | 23.0 | Yes |
; | Semicolon | Ends statements in C, C++, Java, JavaScript, PHP and Rust; separates CSS declarations | 21.6 | No |
< > | Angle brackets, chevrons; less-than and greater-than | Comparisons, generics (List<String>), HTML tags, arrows -> and => | 17.9 | Yes |
= | Equals sign | Assignment; == and === comparison; => arrows | 16.9 | No |
: | Colon | Python block starts, type annotations, object keys, the ternary, C++ scope ::, CSS properties | 16.4 | Yes |
. | Period, dot, full stop (UK) | Member and method access, decimals, the spread ... | 14.8 | No |
" | Double quote, quotation mark | String literals, HTML attribute values | 12.4 | Yes |
, | Comma | Separates arguments, list items and parameters | 12.0 | No |
[ ] | Square brackets, brackets (US) | Arrays and lists, indexing, Rust attributes #[derive] | 7.9 | No |
' | Single quote, apostrophe | Strings in Python, JavaScript and PHP; character literals in C, Java and Rust; Rust lifetimes | 7.3 | No |
_ | Underscore, low line | snake_case names, private-by-convention _name, Python dunder methods, throwaway variables | 7.1 | Yes |
$ | Dollar sign | PHP and shell variables, jQuery, regex end of line | 5.4 | Yes |
- | Hyphen, minus, hyphen-minus | Subtraction, negative numbers, ->, CSS property names, command-line flags | 4.8 | No |
/ | Slash, forward slash | Division, // and /* */ comments, paths and URLs, closing HTML tags | 4.7 | No |
* | Asterisk, star | Multiplication, C and C++ pointers, Python *args, ** exponent in Python and JavaScript | 2.2 | Yes |
+ | Plus sign | Addition, string concatenation, ++ increment | 2.2 | Yes |
& | Ampersand | Bitwise AND, && logical AND, references in C++ and Rust, address-of in C | 1.9 | Yes |
! | Exclamation mark, bang | Logical NOT, !=, Rust macros like println!, TypeScript non-null assertion | 1.7 | Yes |
? | Question mark | Ternary, optional chaining ?., nullish ??, Rust error propagation | 1.2 | Yes |
| | Pipe, vertical bar | Bitwise OR, || logical OR, union types, Rust closures, shell pipes | 1.2 | Yes |
\ | Backslash | Escape sequences like \n, Windows paths, PHP namespaces | 0.9 | No |
@ | At sign | Python and TypeScript decorators, Java annotations | 0.7 | Yes |
# | Hash, pound sign (US), number sign, octothorpe | Python and shell comments, C #include, CSS id selectors, private fields in JavaScript | 0.7 | Yes |
% | Percent sign | Modulo (remainder), format strings like %d | 0.7 | Yes |
` | Backtick, back quote, grave accent | JavaScript template literals, Markdown code, shell command substitution | 0.3 | No |
^ | Caret, circumflex, hat | Bitwise XOR, regex start of line, version ranges | 0.1 | Yes |
~ | Tilde | Bitwise NOT, home directory in shells, C++ destructors, version ranges | 0.1 | Yes |
4. Which Symbols Each Language Leans On
Parentheses top almost every list, but the next places show each language's personality. Figures are occurrences per 1,000 non-space characters, with bracket pairs counted together.
| Language | Most common | Second | Third |
|---|---|---|---|
| C | ( ) 61.8 | ; 38.3 | = 26.9 |
| C++ | ( ) 57.6 | : 40.5 | ; 29.2 |
| HTML & CSS | < > 67.9 | " 35.3 | { } 21.4 |
| Java | ( ) 60.0 | . 20.8 | ; 19.9 |
| JavaScript | ( ) 68.6 | . 30.1 | ; 26.9 |
| PHP | ( ) 49.5 | $ 36.3 | ' 23.7 |
| Python | ( ) 56.6 | . 19.4 | : 18.1 |
| Rust | ( ) 68.8 | { } 34.9 | : 26.2 |
| TypeScript | ( ) 36.4 | { } 32.0 | : 23.9 |
PHP's dollar sign is on every variable. C++ lives on colons because of std:: and other scopes. HTML is mostly angle brackets and quotes. For how much harder these make each language to type overall, see our ranking of the hardest programming languages to type.
5. Symbol Names That Cause Confusion
- •
# is hash or pound. Americans say pound sign, from the abbreviation for pounds of weight. Elsewhere it is the hash, and in the UK the pound sign means £. Number sign and octothorpe are also correct.
- •
. is period, full stop or dot. In prose it ends a sentence; in code everyone says dot, as in dot notation.
- •
/ and \ are different keys. The forward slash is in URLs, Unix paths, division and comments. The backslash starts escape sequences like
\nand separates Windows paths. - •
' and ` are different keys too. The apostrophe or single quote sits next to Enter; the backtick sits under Esc. JavaScript treats them differently.
- •
The minus key is really hyphen-minus. Typography distinguishes hyphens, dashes and the true minus sign, but code uses only this one ASCII character for all of them.
- •
^ is not a power. In C, Java, JavaScript and Python the caret is bitwise XOR, so
2 ^ 3is 1, not 8. Python and JavaScript use**for powers.
6. Why Symbols Slow You Down
Knowing a symbol's name is the easy part; typing it fast is harder. 61.9% of symbol keystrokes in our sample need Shift, and most symbols sit at the edges of the keyboard: the right pinky column and the number row. Ordinary typing courses barely train either, because English prose rarely needs them.
That is why programmers who type prose quickly often slow down on code. Our guide to special characters covers the techniques, and the symbols track drills these keys directly.
7. Method
We counted every character in 1,350 code snippets from TurboType's nine language tracks: Python, JavaScript, TypeScript, Java, C, C++, PHP, Rust and HTML & CSS, 150 each, 207,306 non-space characters in total. We left out the symbol-drill track, which is symbol-heavy by design. Frequencies are per 1,000 non-space characters. Shift is for a US QWERTY keyboard. Our other posts that include spaces and the drill track report smaller percentages because they divide by a larger total.
8. Frequently Asked Questions
What are { } called in programming?
Curly braces, usually just braces. British English often says curly brackets. In C, C++, Java, JavaScript, PHP and Rust they mark the start and end of a block of code, and in JavaScript and Python they also write objects and dictionaries.
What is the difference between brackets, braces and parentheses?
Parentheses are round ( ), square brackets are [ ] and braces are curly { }. In American usage brackets usually means square brackets; in British usage it usually means round ones. That is why programmers say parentheses, or parens, when they need to be unambiguous.
What is the most common symbol in code?
Parentheses. In 1,350 real code snippets, ( and ) together appear 53.1 times per 1,000 non-space characters, more than twice as often as the next symbol, curly braces, at 23.0.
What is the | symbol called?
The vertical bar, which programmers almost always call the pipe. A single | is bitwise OR in C-family languages and a pipe in the shell; a double || is logical OR.
What is # called in programming?
Hash in most of the world and pound sign in the US; number sign and octothorpe are also correct. It starts comments in Python and shell scripts, starts preprocessor lines like #include in C and C++, and selects element IDs in CSS.
What is the backtick key called and where is it?
It is the backtick, also called the back quote or grave accent. On a US keyboard it sits left of the 1 key, below Esc. JavaScript uses it for template literals and Markdown uses it for inline code.
Next Steps:
- Bookmark the glossary table above for the next time a code review mentions a symbol by a name you do not recognise.
- Take the 60-second coding typing test and watch which of these symbols make you hesitate.
- Drill the hesitant ones on the symbols track.
Related Resources:
How to type the symbols above faster.
Every keystroke counted, by finger and row.
QWERTY, Dvorak, Colemak and Workman on real code.
Eight languages ranked by symbol load.
