ASCII Pronunciation Rules for Programmers

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.

Now you are making ‘Le hash’ of it all.

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

I prefer the intercal pronunciations

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.

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)

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.

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.

Well,

My program has been censured… lol

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

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

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

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”.

isn’t the pound sign. The symbols for pound are for currency and lbs. for weight. :smiley:

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.

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

? is also called “quem”.

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

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

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. :slight_smile:

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.]

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”.