ASCII Pronunciation Rules for Programmers

June 12, 2008

As programmers, we deal with a lot of unusual keyboard characters that typical users rarely need to type, much less think about:

$ # % {} * [] ~ & <>

Even the characters that are fairly regularly used in everyday writing -- such as the humble dash, parens, period, and question mark -- have radically different meaning in programming languages.

This is all well and good, but you'll eventually have to read code out loud to another developer for some reason. And then you're in an awkward position, indeed.

How do you pronounce these unusual ASCII characters?

We all do it, but we don't necessarily think much about the words we choose. I certainly hadn't thought much about this until yesterday, when I read the following comment left on Exploring Wide Finder:

A friend sent me a Java code fragment in which he looped through printing "Thank You!" a million times (it was a response to a professor who had extended the deadline on a paper). I responded with a single line of Ruby to do the same, and a single line of Lisp.

He wrote back: "Underscores, pipes, octothorpes, curly braces -- sheesh... I'll take a mild dose of verbosity if means I don't have to code something that looks like it's been zipped already!"

What the heck is an octothorpe? I know this as the pound key, but that turns out to be a US-centric word; most other cultures know it as the hash key.

I'm often surprised to hear what other programmers name their ASCII characters. Not that the words I personally use to identify my ASCII characters are any more correct, but there's far more variability than you'd expect considering the rigid, highly literal mindset of most programmers.

Perhaps that's why I was so excited to discover the ASCII entry in The New Hacker's Dictionary, which Phil Glockner turned me on to. It's a fairly exhaustive catalog of the common names, rare names, and occasionally downright weird names that programmers associate with the ASCII characters sprinkled throughout their code.

How many of these ASCII pronunciations do you recognize? Which ones are the "correct" ones in your shop?

  Common Names Rare Names
! exclamation mark
bang
pling
excl
not
shriek
factorial
exclam
smash
cuss
boing
yell
wow
hey
wham
eureka
spark-spot
soldier
control
" quotation marks
quote
double quote

literal mark
double-glitch
dieresis
dirk
rabbit-ears
double prime
#
hash
pound sign
number sign
pound
sharp
crunch
hex
mesh
grid
crosshatch
octothorpe
flash
square
pig-pen
tictactoe
scratchmark
thud
thump
splat
$ dollar sign
dollar
currency symbol
buck
cash
string
escape
ding
cache
big money
% percent sign
mod
grapes
double-oh-seven
& ampersand
amp
amper
and
and sign
address
reference
andpersand
bitand
background
pretzel
' apostrophe
single quote
quote
prime
glitch
tick
irk
pop
spark
closing single quotation mark
acute accent
( ) opening / closing parenthesis
left / right paren
left / right parenthesis
left / right
open / close
open / close paren
paren / thesis
so/already
lparen/rparen
opening/closing parenthesis
opening/closing round bracket
left/right round bracket
wax/wane
parenthisey/unparenthisey
left/right ear
[ ] opening / closing bracket
left / right bracket
left / right square bracket
bracket / unbracket
square / unsquare
u turn / u turn back
{ } opening / closing brace
open / close brace
left / right brace
left / right squiggly
left / right squiggly bracket/brace
left / right curly bracket/brace
brace / unbrace
curly / uncurly
leftit / rytit
left / right squirrelly
embrace / bracelet
< > less / greater than
bra / ket
left / right angle
left / right angle bracket
left / right broket
from / into (or towards)
read from / write to
suck / blow
comes-from / gozinta
in / out
crunch / zap
tic / tac
angle / right angle
* asterisk
star
splat
wildcard
gear
dingle
mult
spider
aster
times
twinkle
glob
Nathan Hale
+ plus
add
cross
intersection
, comma cedilla
tail
- dash
hyphen
minus
worm
option
dak
bithorpe
. period
dot
point
decimal point
radix point
full stop
spot
/ slash
stroke
slant
forward slash
diagonal
solidus
over
slak
virgule
slat
\
backslash
hack
whack
escape
reverse slash
slosh
backslant
backwhack
bash
reverse slant
reversed virgule
backslat
: colon dots
two-spot
; semicolon
semi
weenie
hybrid
pit-thwong
= equals
gets
takes
quadrathorpe
half-mesh
? question mark
query
ques
quiz
whatmark
what
wildchar
huh
hook
buttonhook
hunchback
@ at sign
at
strudel
each
vortex
whorl
whirlpool
cyclone
snail
ape
cat
rose
cabbage
commercial at
^ circumflex
caret
hat
control
uparrow
xor sign
chevron
shark (or shark-fin)
to the
fang
pointer
_ underline
underscore
underbar
under
score
backarrow
skid
flatworm
` grave accent
backquote
left quote
left single quote
open quote
grave
backprime
backspark
unapostrophe
birk
blugle
back tick
back glitch
push
opening single quote
quasiquote
| bar
or
or-bar
v-bar
pipe
vertical bar
vertical line
gozinta
thru
pipesinta
spike
~ tilde
squiggle
twiddle
not
approx
wiggle
swung dash
enyay
sqiggle (sic)

If you're curious about the derivation of some of the odder names here, there are an extensive set of footnotes (and even more possible pronunciations) at the ascii-table.com pronunciation guide.

So the next time a programmer walks up to you and says, "oh, it's easy! Just type wax bang at hash buck grapes circumflex and splat wane", you'll know what they mean.

Maybe.

Posted by Jeff Atwood
361 Comments

I really appreciate the inclusion of the INTERCAL pronunciations.

Mike Daniels on June 12, 2008 2:19 AM

I've always referred to the one labeled Bar as a Hard Return. Not sure why but I think it made sense to me at one point in time.

blaineT on June 12, 2008 2:20 AM

"andpersand"?
That guy's just making stuff up

The word ampersand is derived from the phrase "and per se and", (i.e., and in and of itself). So it's a reasonable way to spell it, really.

Evan on June 12, 2008 2:27 AM

I'm surrounded by people who call this character "whack": /

Would that make this one backwhack? \

Joe Ludwig on June 12, 2008 2:33 AM

It's probably useful to note that much of the usage of these characters and the terms for them came about (a) in the U.S., and (b) in the Unix culture (which includes shell and C and Perl programming cultures, predating the rise of Python and Ruby and C#).

This is why the solution to Marius Gundersen's problem is to get an American keyboard for programming. It's also why there's so much apparent ignorance of non-U.S. usage of these terms or characters in the list.

And I'm amused at all the references to Ruby terminology that actually originated in Perl, such as the "spaceship" operator.

rfunk on June 12, 2008 2:34 AM

It should probably be noted that all of these symbols have typographical names that are standardized. It's true that an "exclamation point" can be used in some languages as the logical "not" operand, for example... but that doesn't change the name of the symbol itself.

One need only refer to a typographic specification / font specification to learn the names of those symbols. (BTW, some of the names given above refer to a different symbol tha the one pictured -- a cedilla, for example, is nothing like a comma).

Also, there's a difference between a hyphen, a dash, and a minus sign -- functionally and typographically. On a keyboard, they may be one and the same, but software that deals with typography will differentiate (in fact, there are different "dashes" of different sizes intended for different purposes; look up "emdash").

Bill Pullman on June 12, 2008 2:36 AM

No one else calls "," the "sequential separation operator"?

Craig Ludington on June 12, 2008 2:41 AM

Common perl pronunciations:

- # arrow
= # fat arrow
= # spaceship operator
~ # tilde
# # hash
! # not , bang
@ # at, ampersand
$ # dollar
[] # square brackets
() # brackets
{} # curlies, curly brackets
` # back tick
"" # double quote
' # single quote
| # pipe
* # asterix, star
# left angle bracket, right angle bracket

In perl there are operators that have identical pronunciation, eg "==" and "eq" which differ by the context they give to. Both pronounced equals.

I rarely pronounce symbols them the same unless I'm actually dictating. Usually, when paring or discussing code, it's just a matter of describing the intent or effect.

rj on June 12, 2008 2:44 AM

ah, "no HTML" includes the spaceship operator - though it got mentioned above for ruby.
left angle bracket, equals, right angle bracket # spaceship

rj on June 12, 2008 2:47 AM

re: pound # from wikipedia:

In some regions of the United States and Canada, the symbol is traditionally called the pound sign, but in others, the number sign. This derives from a series of abbreviations for pound, which is a unit of weight. At first "lb." was used; however, printers later designed a font containing a special symbol of an "lb" with a line through the ascenders so that the lowercase letter "l" would not be mistaken for the number "1". Unicode character U+2114 (#8468;) is called the "LB Bar Symbol", and it is a cursive development of this symbol. Ultimately, there was the reduction to a combination of two horizontal strokes (cf. skewed "=") and two forward-slash-like strokes (cf. "//").

Kearns on June 12, 2008 2:53 AM

~ is used a lot if you're using *nix. Shortcut for the current user's home directory.

zack on June 12, 2008 2:53 AM

If the $ is called "string" shouldn't you list the ? as "print"?

Kearns on June 12, 2008 2:54 AM

So what is an octothorpe then?

Jon on June 12, 2008 2:56 AM

@Rod: As for how to pronounce the 'lambda' symbol = in C# 3.0, MSDN says it's pronounced as "goes to", which I never really grokked. Anyone care to explain?

--snip--
x = x * x;
The lambda expression x = x * x is read "x goes to x times x."
--snip--

Source: http://msdn.microsoft.com/en-us/library/bb397687.aspx

Jesse on June 12, 2008 2:57 AM

Regarding and

I've always called these "inequalities" when pressed beyond "less than" or "greater than"

Since, you know... it IS an inequality.

liveinvt on June 12, 2008 2:58 AM

I'm surprised ` = back tick is listed as rare. That's the only way I hear it in computing circles (linguistic circles is obviously a different story).

Michael Greene on June 12, 2008 3:04 AM

My everyday use:

bang, quote, octothorpe, dollar, percent, ampersand, tick, open paren/close paren, open square/close square, open curly/close curly, left angle/right angle, splat, plus, comma, dash, dot, wack, backwack, colon, semicolon, equal, question mark, at, caret, underline, backtick, bar, tilde

I will say full-stop when dictating sentances, and sharp when talking about C#/F#,etc#.

My favorite spoken punctuation was a Chinese doctor who called the colon a (read REALLY fast with weak T pronunciation) "dot over dot".

Marc Brooks on June 12, 2008 3:05 AM

I installed a british voice on my Tom Tom and it refers to the "dash" as a "minus" as in: "Take exit 48A minus 48B in 300 yards"...

Kearns on June 12, 2008 3:07 AM

@ is an 'atmark'.

Michael on June 12, 2008 3:10 AM

Why is about 1% of my keyboard (and in a prime location) given to and , what the hell are those symbols, and who uses them?

"plus or minus" might be useful when comparing variables, ut I don't know of a language which implements such a function, let alone uses that symbol.

It's just that I hit them a lot accidentally...

Sacha on June 12, 2008 3:22 AM

LOL, the good ole ampersand. LOL

JT
http://www.ULtimate-Anonymity.com

John Thomas on June 12, 2008 3:40 AM

in Germany, I heard for the @-sign Klammeraffe (clinging monkey) and for # Zaun (fence) - although from someone not familiar with PCs and/or programming

starly on June 12, 2008 4:18 AM

I pronounce Ln (the natural log), 'lawn' usually, a high school calc teacher did it and it stuck

nickL on June 12, 2008 4:22 AM

In French you call @: arobase...

Toh on June 12, 2008 4:36 AM

As another poster already pointed out, I have always referred to ~ as "home" .. since usually that's the context that it comes up in.

As an interesting tidbit, my Russian friends call @ a "doggie" (loose translation).

@Sacha: What kind of keyboard do you have? Typical EN-US 101-key layouts do not have either of those keys.

kRYPT on June 12, 2008 4:38 AM

Funny no one has mentioned ==
Oddly enough everybody I know simply says this as 'Equals' though I suppose I'm the odd ball since when reading this aloud I say, "equates to".

Brian on June 12, 2008 4:44 AM

wow, i guess my quick read though the comments missed a few who did mention ==

Brian on June 12, 2008 4:45 AM

I used to work with someone who referred to left and right angle brackets as "wicka" / "wacka".

Michal Migurski on June 12, 2008 5:07 AM

Fascinating post. Made me have a "meta-language" momement.

ee on June 12, 2008 5:11 AM

@AndyB:

"Really you should consult a dictionary and find out which is the 'correct' answer for each symbol. This may not reflect common usage in the computing industry, but that's normal for all forms of language."

Ah, the rancid smell of naive linguistic prescriptivism - one of the hallmarks of the true unreconstructed geek. And where on the autism spectrum are _you_, little boy?

Alex Chamberlain on June 12, 2008 5:26 AM

coding horror just jumped the ^

p3p on June 12, 2008 5:34 AM

In the Gries and Schneider book, "A Logical Approach to Discrete Math", There is a lengthy footnote where one of the authors relates a funny story about how he was giving a lecture, and pronouncing both the assignment operator and the boolean equivalence operator as "equals", when a voice piped up from the back saying "becomes!". The entertaining story has caused me to pronounce them distinctly ever since.

To avoid the ambiguities of "equals", I pronounce these two as:
= "becomes"
== "equivales"

When there is a misunderstanding, I often have to switch back to the lenghty C++ operator names:

= "member access operator" (informally "arrow")
"insertion operator" (binary left shift)
"extraction operator" (binary right shift)

Which I must admit is a mouthful. Somehow it stuck.


Bill on June 12, 2008 5:43 AM

Wow, my last post had it's double angle brackets swallowed. too bad.

Bill on June 12, 2008 5:45 AM

What no mention of my favourite. the Interrobang. !? (U+203D)

http://en.wikipedia.org/wiki/Interrobang

davey on June 12, 2008 5:55 AM

I found the story for you. Unfortunately I cant copy paste if for you thanks to Google books DRM crap. Footnote 5 at the bottom.

a href="http://books.google.com/books?id=ZWTDQ6H6gsUCpg=PP1dq=gries+and+schneidersig=AW8id9uGQv12GBDojuiSiKkzYWk#PPA17,M1"http://books.google.com/books?id=ZWTDQ6H6gsUCpg=PP1dq=gries+and+schneidersig=AW8id9uGQv12GBDojuiSiKkzYWk#PPA17,M1/a

Apparently it was Edsgar Dykstra who corrected him!

Bill on June 12, 2008 6:08 AM

Excellent post! Although all the common names look familiar to me, I must admit that I have only seen 10% of the rare names before. Nice collection.

kukuciao on June 12, 2008 6:11 AM

"andpersand"?
That guy's just making stuff up

Eam on June 12, 2008 6:21 AM

What about we all agreeing on a standard?
Standard for weird characters - SWC

Niyaz PK on June 12, 2008 6:23 AM

Or much better, we should select tje funniest names and start using them...
Or even better, use different varieties in the same context. Let us confuse 'em

Niyaz PK on June 12, 2008 6:25 AM

You've got '\' listed both as whack and backwhack. IMO '\' == whack and '/' == backwhack.

JosephCooney on June 12, 2008 6:25 AM

@ is spanish is arroba.

Fenris on June 12, 2008 6:26 AM

My comp sci teacher in high school called { } "scrollies."

Andy on June 12, 2008 6:27 AM

The symbol wich gives me mmore headaches is the ~ symbol, mostly because no one uses it ever, so no one knows how its called. The easiest way I found to explain it is by using the word "oflo", which a fellow programmer invented: basically, since no one knows what a oflo is, I don't have to come up with an esoteric (although correct) name - all i have to do is wait for the "what?" question, and draw the symbol in the air (sometimes I roll my eyes just to make the other guy feel bad for not knowing what a oflo is). It doesn't work very well on the phone, though.

Martin on June 12, 2008 6:30 AM

cool topic!

David on June 12, 2008 6:31 AM

Talking about pronunciation, today I was talking about some LINQ code and we both wondered, how do you guys read out loud lambda expressions such as "t = t.Name" ?

Rod on June 12, 2008 6:31 AM

So if # has 'pound' and 'pound sign' as common names, what are the common names for ?

PJH on June 12, 2008 6:32 AM

In Ruby, the names of methods that return true or false end with a question mark. I like to pronounce it as a Canadian "eh", so that "empty?" becomes "empty, eh?"

isani on June 12, 2008 6:35 AM

The symbol wich gives me mmore headaches is the ~ symbol

I've always heard "tilde" or "squiggle" for this one.

how do you guys read out loud lambda expressions such as "t = t.Name"

Oh man, I don't even want to go there -- there have to be completely different rules for multiple character ASCII sets.

So if # has 'pound' and 'pound sign' as common names,

I've called it 'pound' for a long time, but I think I will switch to 'hash' from this point on. I guess for a .NET ecosystem developer, I could call it 'sharp', as in C# .. we may say "csharp" but certainly don't want to go around saying "coctothorpe" :)

Jeff Atwood on June 12, 2008 6:35 AM

Really you should consult a dictionary and find out which is the 'correct' answer for each symbol. This may not reflect common usage in the computing industry, but that's normal for all forms of language.

And saying c-octothorpe to annoy C# devs never loses its shine.

Did you know Microsoft is making a new language to replace C#? Its C$, pronounced "ca-ching" :)

AndyB on June 12, 2008 6:38 AM

That's one (of rather few) things I like about the VB or VB.NET language: You can read it more or less without having to pronounce too many ASCII characters.

Matthias on June 12, 2008 6:41 AM

What happened to 'ampersat' ('tis a common word, round my way).

Or even 'asperand'

Dan on June 12, 2008 6:43 AM

I'd avoid using 'quotation marks' to describe the " character as that is a very English-centric term as the table on this page shows:

http://en.wikipedia.org/wiki/Quotation_mark,_non-English_usage

I prefer to use 'double quote'.

Skizz

Skizz on June 12, 2008 6:43 AM

Presumably you've come across geek poetry?

http://www.cise.ufl.edu/~ddd/poem.htm

Mark on June 12, 2008 6:44 AM

# has always been "number sign" to me.

I think it would be neat to standardize on unambiguous, one-word, preferably one-syllable, names for each character. Bang, quote, hash, square, unsquare, grave, pipe, etc. You would probably want to do the same for certain multi-character ones like = (pointed out above), ==, -, //, .., /*, etc. Unfortunately there's also context to deal with... '.' may be "period" inside a string but I only hear "dot" everywhere else....

Rhywun on June 12, 2008 6:46 AM

I started playing around with BASIC when I was around six years old on a Vic 20 - due to this early age I didn't have a clue what the proper names for most of the symbols were so I invented my own. The only one I can remember today was calling a semi-colon a jig.

Burns on June 12, 2008 6:47 AM

Why is

1000000.times { puts "Thank You!" }

difficult to spell?

derJan on June 12, 2008 6:49 AM

I reckon back tick is common, not rare, certainly in the UNIX/Linux community.

I've also heard # referred to as "sh", in the context #! = "sh-bang", but now maybe I'll call it flash bang! :-)

Officially, the - sign on the keyboard is a hyphen/minus. A dash is longer.

Mikel on June 12, 2008 6:50 AM

@AndyB: "saying c-octothorpe to annoy C# devs never loses its shine."

True, but it's not actually correct since the language is "C-Sharp" not "C-Hash".

The two are distinct symbols. Hash (aka Number Sign, aka Octothorpe) is Unicode U+0023, whereas Sharp is U+266F and typically has sloping horizontal bars on the glyph.

http://en.wikipedia.org/wiki/Number_sign
http://en.wikipedia.org/wiki/Sharp_(music)

Graham Stewart on June 12, 2008 6:51 AM

Paul and Josh,

I've never heard { and } referred to as french quotes, but it's certainly possible. Some Perl documentation calls and French quotes, but of course they're not ASCII. ;-)

Mikel on June 12, 2008 6:53 AM

I refer to ^ as simply "shift 6" when telling someone what to type. It seems to cause less trouble than actually naming it.

Nathan on June 12, 2008 6:53 AM

Burns: Same here, we used to call quotation marks for "birds".

Andreas on June 12, 2008 6:54 AM

i've always gotten by by drawing the characters into the air. I don't know what i'd do if i'd have to explain say ~ (tilde) to someone on the phone. Even more so if the person wasn't really computer savvy.

But now that i think about it i remember doing that on the phone more than once. It musn't have been all that traumatizing an experience after all, otherwise i would of remembered it.

Jazz on June 12, 2008 6:57 AM

Surely these things have different names based on the context.
! is 'bang' in #! /bin/perl and 'not' in if(!a) well in my house they are :-)
Also you missed ... is that an elipsys?

Gilbert G on June 12, 2008 7:00 AM

= 'et', so et cetera (etc.) becomes c.

JL on June 12, 2008 7:01 AM

Under normal circumstances, I call # the pound sign, but Perl standard calls it hash, and the UNIX tagging at the beginning of most perl programs (#! /usr/bin/perl ) is called the hash-bang.

Dave on June 12, 2008 7:04 AM

I find it strange that you put 'full stop' in the rare section. Periods are (almost) always called full stops in Enlgand, as a certain youtube video featuring Al Murray's standup will show: (couldn't find the video, so I'll try to remember what he said)

[speaking to an American audience member]

"...We're divided by a common language, see to you, 'period' probably means 'full stop' doesn't it? Which is essentially the same thing to an English man a certain time of the month..."

mike on June 12, 2008 7:05 AM

You mean nobody calls a * a dereference?

Chris on June 12, 2008 7:05 AM

In greek some people call the @ sign "duckling" (the greek equivalent word)! Could never figure out why they do that.

Nikos Steiakakis on June 12, 2008 7:06 AM

When you said pound you meant not # (hash symbol in my books)

I guess that comes of being English though.

Andy on June 12, 2008 7:07 AM

In spanish we often call the # "ta-te-ti" which is spanish for Tic-tac-toe.

Petruza on June 12, 2008 7:08 AM

I agree with Gilbert. I use different words for ASCII chars depending on context, and the example of the bang/not/factorial is a good one especially since that switch in context can also be in the same code, i.e. Perl in this case. The converse is also true that a particular pronunciation can be a homophone for multiple ASCII chars. So, if I say to a colleague, "Type if x equals y," this implies a certain form based on context. In one language, the parens may be optional. In another, they may be required but the other party should know that and as such they don't require pronunciation.

Where this gets really screwed up is with slash v. backslash. Can't count the number of times I have had someone telling me how to do something at work and messed it up because they said backslash when they should have said slash.

Jamie Phelps on June 12, 2008 7:10 AM

My new word of the day is gozointa.

dnm on June 12, 2008 7:10 AM

Jamie Phelps: I'm sick and tired of the damn commercials that're run by multibillion dollar corporations on TV and radio that still get FORWARD SLASH (/) confused with BACK SLASH (\)

If they want, they can throw me a few thousand bucks and have me look over their radio/TV scripts.

dnm on June 12, 2008 7:11 AM

Most of those rare names sound like some sort of exotic drug nicknames.
I usually just end up calling things 'squiggly line' and 'uppy squarey bracket thing' while waving my arms about and trying to form the shapes with my fingers. I'd take the time to learn the proper names but nobody would understand anyway.

Tom on June 12, 2008 7:14 AM

I understand the word parenthesis, but in the UK, () are nearly always just 'brackets' with the other two being square and curly brackets.

aka on June 12, 2008 7:16 AM

nicely done and much better laid out than the other site. because of that i'm linking to you rather than the source, cuz 'dang! who needs all the visual chaos?'

thanks for the heads-upBANG

BTW: love the show but let's see if you can work the word "imprecation" in during the next show...and no cheating; it has to be unobtrusive. ;o)

Keng on June 12, 2008 7:17 AM

@dnm I totally agree! Like they couldn't have some intern from IT clarify for them that the thing was wrong...

Jamie Phelps on June 12, 2008 7:17 AM

In order to avoid being too US or English-centric, let me tell you how I spell some of these characters in french (the other one are probably sharing some latin origin and sounds like their counterparts) :
" : guillemets
# : dise
: esperluette
[] : crochets
{} : accolades
, : virgule
@ : arobase
_ : espace soulign

nojhan on June 12, 2008 7:18 AM

As our fellow Fenris said above, @ is spanish is 'arroba' which was a mass unit, like a barrel, equivalent to 11.502 kg.

^ is "techito" ( Rooftop )

I've also heard someone call the vertical bar | "hurn" Which means Ferret. ( the animal ) Wonder why...

Petruza on June 12, 2008 7:20 AM

nojhan: I live in Canada, where our French is horribly bastardised. Let me translate to french for you our interpretation of those symbols.

": le quote.
#: le hash (or le signe de numero)
: l'ampersand.
[]; les brackets
{}: les braces
,: le comma
@: le at
_: l'underscore.

These are all things we use to send 'le email' sur "l'internet"

I'm le serious.

dnm on June 12, 2008 7:21 AM

Now you are making 'Le hash' of it all.

Chris Chubb on June 12, 2008 7:26 AM

It's funny how @ gets animal names in other languages.

igorsk on June 12, 2008 7:28 AM

I prefer the intercal pronunciations

hova on June 12, 2008 7:28 AM

Everyone knows the proper way to convey these symbols when talking out loud is to make some sort of inarticulate noise while tracing the symbol in midair with your fingertip.

AndyL on June 12, 2008 7:30 AM

In ISO 646-GB the character at position 35 (# in ISO 646) was replaced with a . C compilers on 7-bit machines used the underlying character codes, as you would expect, so you would have seen:

include "stdio.h"

etc. So I suppose you could call # the 'pound' character, but a Brit would never call it that!

The GB variant was pretty minor, I recall Stroustrup (either in the ARM or in Design and Evolution of C++) referring to coding in C in Denmark, where [\]{|} are replaced with , so the "Hello {name}" program becomes:

int main(int argc, char* argv)

if ( argc 1 )

printf( "Hello, %sn", argv0 );
return 0;


Unsurprisingly programmers tended to use macros to replace these horrors with usable symbols. The names were eventually standardised in iso646.h, and two workarounds went into C and C++: trigraphs and digraphs. Trigraphs offer more coverage and work within strings; digraphs are only recognized as top-level tokens but are much easier to understand.

With trigraphs:

int main(int argc, char* argv)
??
if ( argc 1 )
??
printf( "Hello, %s??/n", argv??(0??) );
return 0;
??
??

Digraphs (C++ and C99):

int main(int argc, char* argv)
%
if ( argc 1 )
%
printf( "Hello, %sn", argv:0: );
return 0;
%
%

(note that there's no replacement for \ and it wouldn't work within a string even if there was)

Mike Dimmick on June 12, 2008 7:30 AM

Wow! Little did I know when I shot off a tweet that it would instigate the writing of a blog post!

The rest of the Jargon File is a fascinating read as well.. I used to recommend it in my "Introduction to UNIX" class, many years ago. In it contains a lot of the roots of what made the original UNIX developers who they were, and subsequently, how that affected UNIX. For example, did you know that, before writing the first UNIX kernels, most of the developers at MIT were part of a model train club? Not so unusual if you remember they grew up in the 40s and 50s. But a lot of the jargon is derived from railroad terms.

Also, check out the entry on WOM. Good stuff.

J. Phil on June 12, 2008 7:31 AM

I like the suck and blow symbols...

Imagine a program

if( you me or you them )
...
}

Does really someone use these pronunciation?

Sounds like a joke.

Luc M on June 12, 2008 7:31 AM

Well,

My program has been censured... lol

Luc M on June 12, 2008 7:33 AM

We (English people who program in ksh) at work call and , left chevron and right chevron respectively.

coldclimate on June 12, 2008 7:36 AM

My C++ and Java Teacher always called these: {} "Curly Braces"

He also called parenthesis "Man and Wife" because "they always go together"

Matt on June 12, 2008 7:38 AM

I like to call and "alligator lips" - I first heard the term to describe long crescendo and decrescendo marks in written music. (The things that tell you to play louder or softer.)

Likewise my background in music has always made me refer to "#" as "sharp", not "pound". I think it's more standard to call it "sharp" than people think, as I've always heard the first 2 characters of the first line of a *nix shell script (#!/usr/bin/bash or whatever) referred to as "sh'bang".

Josh Kodroff on June 12, 2008 7:41 AM

# isn't the pound sign. The symbols for pound are for currency and lbs. for weight. :D

Actually, on a British keyboard the is shift-3. I think thats where # is on US keyboards, right? So at least as far as keyboard designers are concerned there is some relationship between the two symbols.

I only see one other US-centric item on the list. Who outside of the US calls a '.' a period? Well, I've never in my life heard of anyone call _ underline, but I don't know if thats a US thing or what.

Mat Scales on June 12, 2008 7:42 AM

I sometimes refer to the Curly Braces {} as "Bob Hope"s.

Thom on June 12, 2008 7:44 AM

? is also called "quem".

Dave Aronson on June 12, 2008 7:44 AM

also
() small brackets
{} middle brackets
[] big brackets

awahid on June 12, 2008 7:50 AM

My usages are highly dependent on context.
. "period" at end of sentence.
. "dot" in url, appending method to an object
. "point" in numbers.

' apostrophe when used as such. (you're)
' single quote when used to enclose a char or string 'your a looser'


amongst knowledgeable users,
\ "windows slash"
/ "unix slash"
amongst dummies:
\ - backslash above the enter key
/ - slash on the same key as the question mark.

` - back tick (or more frequently: "back tick at the upper left corner of your keyboard. No, that's the escape key. Up there, beside the one. No, to the left of the one. That's a two. Under the tilde. The squiggly dash. Here, let me type.")

^ - hat (from math x-hat, y-hat)

To users on the batphone
0 - Zero, not oh
o - oh not zero

mightybaldking on June 12, 2008 7:50 AM

cool.

I must say as a brit the name "pound sign" for the # has always irritated me. It seems to me that it requires some cultural ignorance to even consider the name a good one to begin with. After all there has been a pound sign in the english language far longer than there has even been an American nation...

It may sound petty, but consider if we called this the "dollar sign". I'm sure it would be just as irritating in reverse.

3 america. :)

Jheriko on June 12, 2008 7:52 AM

In my experience (en_GB), the brackets have always been:

() = left/right bracket
[] = left/right square bracket
{} = left/right curly bracket ('bracket' can be omitted)
= left/right angle bracket ('bracket' can be omitted)

The last pair tend to change depending on context (e.g. less then/greater than in comparisons). And using bra/ket is just WRONG.

[The Wikipedia page for bracket (http://en.wikipedia.org/wiki/Bracket) suggests that the difference between the default bracket type is another English vs. American difference.]

Michael on June 12, 2008 7:53 AM

Martin said: "The symbol wich gives me mmore headaches is the ~ symbol, mostly because no one uses it ever..."

You must not be an embedded designer. We use it all the time to invert bits. Very useful for masking all but certain bits in a byte.
e.g.
#define ENABLE_BIT 0x02
x = register ~ENABLE_BIT;

This will mask out all the bits except the Enable bit of "register".

Fred on June 12, 2008 7:54 AM

Some danish pronunciations:

" = gsejne = goose eyes

{} = tuborgklammer = tuborg braces (as it resembles the old logo of a danish beer brewery named Tuborg)

Chris. on June 12, 2008 7:54 AM

More comments»

The comments to this entry are closed.