Example with a context (The Object-Oriented Thought Process by Matt Weisfeld, 3rd Edition):

Much excitement has been generated over the past several years regarding the portability of code. Much of Java's success was due to the fact that it was highly portable across multiple platforms.The bytecodes produced by Java could be executed on various platforms, as long as the system had a Java virtual machine loaded.The .NET framework provides another, very important, type of portability—portability across various languages.

What do you think is exactly meant by bytecodes in this passage? You see, bytecode is actually an uncountable noun. It is basically the same as other types of programming code in that you can't count it. It is one monolithic mass of statements and control structures.

Although I have seen a similar usage such as a code in another book and took it to mean a program, it still sounds somewhat wrong to me to treat it as a count noun in the context of computer programming. Because the word code when used as a count noun has a clearly defined meaning. It means a system of signs or symbols that's used to send messages. So, a code means something completely different from lines of programming code that you use to write computer programs.

  • For decades, bytecode (aka p-code) was a non-count noun. When I see it in the plural, I don't like it. :) May 11 '15 at 11:43
  • books.google.com/ngrams/… May 11 '15 at 11:47
  • When speaking in conceptual terms of the code executed by the virtual machine , use the singular. When examining a series of such codes, to speak of them in particular, you can use the plural, e.g. These bytecodes seem munged. May 11 '15 at 11:52

You're right, it's very often a non-count noun.

But you're wrong. It can also be a count noun.

For example, on Wikipedia we find:

Java bytecode is the instruction set of the Java virtual machine. Each bytecode is composed by one, or in some cases two, bytes that represent the instruction (opcode), along with zero or more bytes for passing parameters.

So in the first two sentences we've got both count and non-count uses.

Or take a look at this article from 1996, way back in Java's infancy:

Bytecodes are the machine language of the Java virtual machine. When a JVM loads a class file, it gets one stream of bytecodes for each method in the class. The bytecodes streams are stored in the method area of the JVM. The bytecodes for a method are executed when that method is invoked during the course of running the program. They can be executed by intepretation, just-in-time compiling, or any other technique that was chosen by the designer of a particular JVM.

Or this official documentation from 2013:

Note that these checks do not ensure that the given field or method actually exists in the given class, nor do they check that the type descriptors given refer to real classes. They ensure only that these items are well formed. More detailed checking is performed when the bytecodes themselves are verified, and during resolution.

So clearly bytecode can be countable. So why? Well, why do we have this term in the first place? It's an instruction set designed to run at a higher level than directly on the machine, right? So in that sense, bytecodes are analogous to opcodes, which I'm sure you know are countable.

Now, I don't do much Java, but as I understand it, the bytecodes are the operations which are encoded in the bytecode stream along with their operands and constants. If you'd like to know technical details beyond that, you know where Stack Overflow is; I'm just here to demonstrate that bytecodes can be countable.

  • 1
    Interesting that the second article you cited mentions "the bytecodes streams", which seems like it should be bytecode streams. May 11 '15 at 8:58
  • @BrianHitchcock I agree, although attributive plurals are "on the increase" (Quirk et al. 1985, p.1333). Compare examples like a customs officer, a soft drinks manufacturer, a systems analyst, the heavy chemicals industry, the parks department, and so on. Quirk et al. called it rare in AmE and more common in BrE, but that was 40 years ago, and I think it's still "on the increase"...
    – user230
    May 11 '15 at 9:00
  • 1
    Ahem, 30 years ago. (Wherein snailboat shows off her powers of subtraction...)
    – user230
    May 11 '15 at 9:48
  • Indeed, it's on the rise. Still seems like a waste of perfectly good Ss. By the way, in "customs office", "customs" is not a plural of "custom". But I suppose soon we will hear "stock-cars racing", "turns signals", "disheswasher" or "lapsdancer". May 11 '15 at 10:00
  • 1
    @BrianHitchcock Customs is listed as a plurale tantum in Quirk et al 1985 on p.302. So of course, that would mean it couldn't be a plural of custom, if correct, but it would be a plural nonetheless. I decided to investigate, and we found corpus examples clearly taking both singular and plural agreement. When used in other positions, it generally appears without an article, and it has plural morphology, which suggests that in those positions it's plural rather than non-count. So it's a bit exceptional, but I think it's fair to say it is a plurale tantum at least some of the time.
    – user230
    May 11 '15 at 10:29

Your Answer

By clicking “Post Your Answer”, you agree to our terms of service, privacy policy and cookie policy

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