Holy cow, I wrote a book!
When an application crashes with an access violation, the error message
says something like
The instruction at "XX" referenced memory at "YY".
The memory could not be "read".
Why is the operation in quotation marks?
Is this some sort of euphemism?
The odd phrasing is a consequence of globalization.
The operation name is a verb in the infinitive ("read", "write"),
but depending on how the containing message is localized,
it may need to take a different form.
Since the kernel doesn't understand grammar,
it just puts the words in quotation marks to avoid having to
learn every language on the planet.
Imagine if it tried:
The memory could not be readed.
The kernel tried to form the passive, which is normally done
in English by adding "–ed" to the end of the verb.
Too bad "read" and "write" are irregular verbs!
The more conventional solution for this type of problem
is to create a separate error message for each variant
the text can be translated independently.
rather than building sentences at runtime,
The access violation error message is in a pickle, though,
because the underlying status code is
that message contains three insertions,
one for the instruction address,
one for the address being accessed,
and one for the operation.
If there were three different status codes, like
then a separate string could be created for each.
But that's not how the status codes folks decided to do things,
and the translation team was stuck having to use the ugly