Let's consider the following example taken from C# Pocket Reference by Joseph Albahari.

Statements in C# execute sequentially and are terminated by a semicolon.

Why is the semicolon in singular form while there are some C# statements in the context? In my thinking, there must be one to one correspondence between a statement and a semicolon, so the semicolon must be in plural form. But if we do like this, the meaning becomes unclear if there is no code snippet provided.

Another example for those who does not know C#:

Visitors who come to my office must bring a cup to drink.

The speaker wants to say each visitor must bring one and only one cup; no more than one cup is allowed for a single visitor. But, one might think there is only one cup used in rotation among all visitors.

If we rephrase like the following,

Visitors who come to my office must bring cups to drink.

then the speaker's intent might be unclear as well.

So, how does one handle this kind of problem?

  • Try this: Every statement in C# execute sequentially and is terminated by one semicolon.
    – user19148
    Apr 28, 2012 at 19:51
  • Actually I can rephrase the first example as "Statements in C# execute sequentially and each is terminated by a semicolon". But I am still curious why there are many books still used the confusing pattern. :D Apr 28, 2012 at 19:55
  • Why not "Statements in C# execute sequentially and each and every is terminated by a semicolon."? In this way you can give more emphasis.
    – user19148
    Apr 28, 2012 at 20:02
  • @Carlo_R.: Using "each and every" sounds awkward and excessive. Apr 28, 2012 at 20:04
  • Does using the singular make sense to me because in all the cases we're using (statements, dogs, concerts, cars) the item we're trying to apply to the mass can only make sense if it's a one-to-one relation? As in, you can't really put more than one leash on a dog, or two semicolons on a statement. The cups example is a bit more borderline because a visitor could bring multiple cups, but as soon as 'to drink' is inserted, then it again goes to the one-to-one relation situation. (I could handwave this as an answer if that helps any better..)
    – tanantish
    Apr 28, 2012 at 20:45

3 Answers 3


You've run afoul of the Plural Generic Noun Phrase, which is one of the variants of Generic reference in English.

It would be possible and allowable to use semicolons instead of a semicolon; but probably the singular is preferable because there is precisely one semicolon per statement, at precisely the same place in each case.

However, a better strategy would be to use the Indefinite Generic Noun Phrase a statement in C#, which is generic, and distributive, and also singular, so that the example would be

A statement in C# executes sequentially and is terminated by a semicolon.

This is better because indefinite generics are used to indicate definitional properties, and that's what's at issue here.

  • 5
    While this is generally good advice, in this case you run afoul of the fact that a single statement cannot by itself execute sequentially. Only a list of statements can execute sequentially. As suggested in the comments above: Statements in C# execute sequentially, and each is terminated by a semicolon. Apr 28, 2012 at 20:45
  • 1
    Somewhat confusingly, perhaps, if you were to put two semicolons after a C/C++/C# statement, you still wouldn't be breaking the rule. According to the language definition(s), doing this automatically creates a "null statement" between the semicolons. Apr 28, 2012 at 20:47
  • Wow I'm going to have to read that entire dissertation now
    – Claudiu
    Sep 27, 2014 at 16:43

I think you're erring on the side of rigid application of rules over clarity.

That sentence is not unclear in its meaning in everyday usage. It's true that this would be an ambiguous sentence if you were in a Logic course, but common English parlance is not required to adhere to rules that are so strict.

Compare that sentence with other examples:

  • Concert-goers require a wristband
  • Dogs must be kept on a leash
  • Cars have one engine

I don't find that the sentence "visitors come to my office must bring a cup to drink" has unclear intent. The idea that the visitors must bring a cup to drink, implies that there is one cup tied every visitor. That's why it's singular.

If the sentence said "visitors come to my office must bring two cups to drink," that would imply every visitor who comes to the office must bring two cups to drink, tying two cups each to every visitor.

But if you feel as though it's still unclear, the best way to make it conspicuous would be to use words that clearly indicate the kind of sentence you're trying to say.

In this case, try using words like "each" or "every":

"Visitors come to my office must bring a cup to drink"

  • "Any visitor who comes to my office must bring a cup to drink
  • "Visitors who come to my office must bring their own cup to drink
  • "Each visitor who comes to my office must bring a cup to drink

With these kinds of words used, it becomes very clear that there is one cup tied to one visitor. It's the same idea with the semicolons in C#.

I can understand why you would feel the intent isn't clear. Using certain words as clear indicators though, may help with that.

Hope this helps!

Your Answer

By clicking “Post Your Answer”, you agree to our terms of service and acknowledge you have read our privacy policy.

Not the answer you're looking for? Browse other questions tagged or ask your own question.