Euphemisms as pointers?

« previous post | next post »

Today's Dinosaur Comics:

The mouseover title: "for my next trick, i'm turning a four-dimensional hypercubical linked list, which is a concept i just made up, into allegory".

T Rex's "euphemism" analogy is misleading — which is fine, it's a comic…

The point of a euphemism is to avoid the negative associations or social censure associated with the term it replaces. The (main) point of a pointer is to avoid the space and time needed to copy a (potentially large) chunk of digital stuff, instead just giving its address. (Or more abstractly, providing a "reference" to it.) Thus a pointer is more like an abbreviation or initialism, or a pronoun, or for that matter just a word, which are all ways of saving communicative space and time.

Are there better computer-science analogies for "euphemism"? The first few things that come to mind don't really work. For example, anonymization may involve using arbitrary but unique identifiers in order to avoid potential negative consequences of explicit naming — but in that case, the whole point is to prevent others from knowing who is being referenced, while listeners or readers generally understand the reference of a euphemism.

Wikipedia's page on "Pointer (computer programming)" may be useful for those who aren't already familiar with the term.

Update — the best idea so far comes from Rick Rubenstein in the comments:

In many languages and architectures, a reference is something like a euphemism for a pointer: underneath, it's really a pointer, and we all know it's a pointer, but a reference is more acceptable in polite company (a.k.a., a modernish high-level language). The ugly truth will surface in the end, though. (Famously Java, a pointer-free language, constantly throws Null Pointer Exceptions.)

Those not already informed can check out the Wikipedia page on "Reference (computer science)", as well as the results of a search for {java null pointer exception}. (Though in fairness, maybe it should be called "null reference exception"?)



16 Comments

  1. David said,

    July 26, 2022 @ 5:14 am

    If you want to do bit operations on a double-precision floating-point number, which your compiler may consider obscene, you can store the number in a union of double and char[], then tweak the bits in the char array.

    [(myl) Nice use of "obscene". But a union type explicitly names both types when it's declared, and (depending on the language) specific cases generally require a special syntax that's different from a non-union use of one type or the other, right?]

  2. Philip Taylor said,

    July 26, 2022 @ 5:21 am

    "The (main) point of a pointer is to avoid the space and time needed to copy a (potentially large) chunk of digital stuff, instead just giving its address" — I would respectfully disagree. IMO, the (main) [purpose] of a pointer is to gain read/write access to a (potentially large) chunk of digital stuff through a simple name, whereas if one copies it one gains only read access.

    REF WHATEVER pointer = field OF row [index] allows read/write access to the RHS via the simple name 'pointer', whereas :

    WHATEVER pointer := field OF row [index] allows only read access via that same name.

    Furthermore, one may have pointers to pointers (vital in handling linked lists) and even pointers to pointers to pointers — more levels are generally believed never to be required.

    [(myl) True — but with call-by-value rather than call-by-reference, you can always return a modified value and let the caller replace it if they want, with similar potential costs in space and time. Thus if the code were (schematically)

    X = fix(X)
    

    X is updated independent of whether fix() gets it by reference or by value. Anyhow, none of the analogous issues arise with euphemisms.

    And at this point we've graduated from being excessively literal-minded to a more exalted plane of nit-picking…]

  3. KeithB said,

    July 26, 2022 @ 7:42 am

    I think inheritance is more of a fit for a euphemism.
    You get all the naughty bits, but get to add your own innocuous ones, which become a "new" class.

  4. Michael W said,

    July 26, 2022 @ 7:43 am

    There are probably euphemistic programming styles, where a technique is used without explicitly naming it due to some manager's dislike of it, though that's just using the word normally.

    In automated testing, there is the concept of a 'mock' or 'stub', in which something is used to provide an interface to interact with only for the purpose of the test. This is typically done to isolate the code under test, but often as not to also avoid overhead with some system. A common one would be to use a partially-filled in-memory database instead of connecting to a slower one that would be used in production.

    That's kind of like a euphemism, except the terms that exist are already adapted fairly well and fit the concept better. Here 'mock' is in the sense of imitation, and terms such as 'fake' or 'dummy' get used in a similar context. Maybe a 'euphemism' might indicate a mock that is a better implementation of the code it's replacing?

  5. Tal Cohen said,

    July 26, 2022 @ 7:53 am

    Aliasing is closer to euphemism than pointers are; using a different name to refer to the same value. And in many cases, aliasing is achieved through pointers.

    https://en.wikipedia.org/wiki/Aliasing_(computing)

    But this, too, is not a great analogy.

  6. YG said,

    July 26, 2022 @ 8:35 am

    Calling a euphemism a pointer is an addlepated way of defining it. At worst, it lights up a programmer's eyes with a misconception. I disagree that it can be brushed aside as a comic. This way of explaining things should go the way of the dinosaurs.

  7. pmg said,

    July 26, 2022 @ 10:04 am

    > Are there better computer-science analogies for "euphemism"?

    Third time lucky…

    A bit of a stretch, but escape sequences? For example, using < for a less-than sign / left angled bracket, because you're in an environment (HTML) where an actual less-than sign can't be used since it means something else.

    (Language Log, please feel free to delete the NOW TWO posts above this one, amusing an illustration of the point as THEY ARE!)

    [(myl) The best answer so far — though I think things like < are more often called "html entity references" rather than "escape sequences", though they are also a kind of escape sequence?]

  8. Buck said,

    July 26, 2022 @ 10:08 am

    I think some higher-level programming language features might be a better match for euphemisms. Like GOTO is considered harmful, but a break or continue in the middle of a loop body are fine.

  9. Joe said,

    July 26, 2022 @ 12:15 pm

    We might be getting too deep into either philosophy or computer science, but I think it matters whether you conceive of e.g. the word "deceased" as pointing to the word "dead", or whether "deceased" and "dead" both point to the same third thing, which is the abstract concept of death.

    Likewise in programming, depending on the language, variable A can be defined to point to variable B, but practically that just means both A and B point to the same address in the computer's memory. There may be a syntactic difference in how you're allowed to use them when you write code, but by the time they've been compiled from human-readable code into CPU-processable binary language that difference may evaporate.

    The importance of pointers in computer science is the contrast against another way of doing things: A and B could point to two different addresses in the memory that happen to contain the same value (a copy). Then if you change the value of A you won't also change the value of B. I don't think there's an analogy for that in the human mind.

  10. Jerry Packard said,

    July 26, 2022 @ 9:34 pm

    A euphemism is only very generally a pointer because it does so much more than just point, carrying oodles of semantic and contextual information.

    In human natural language the best example of a pointer might be deixis, because it points a piece of code to a specific context.

  11. Seth said,

    July 26, 2022 @ 11:05 pm

    I would say euphemism requires some sort of moral disapproval attached to the referent, and that doesn't correspond well to pointers. Euphemisms are a type of indirection, and pointers are indirection, but that doesn't make pointers into euphemisms. "Euphemism is one case of pointers" is arguably true, but not very insightful or even amusing. The indirection aspect is not the most interesting aspect of euphemism, and a single variable use of pointers is not the most interesting aspect of pointers. It's essentially comparing less significant aspects of both concepts.

    The closest analogy I can think of is not quite computer science, but related culture. There used to be a common practice of hiding potential "offensive" text in a trivial substitution cipher called "rot13", where letters were shifted thirteen places in the alphabet (thus encryption and decryption are the same). For example, "euphemism" would be "rhcurzvfz". This was basically using made-up euphemisms for the taboo words, but one in which it was obvious what was meant.
    It's too obscure now though, so it wouldn't work for a cartoon.

  12. Rick Rubenstein said,

    July 27, 2022 @ 12:35 am

    I think a halfway decent analogy is something Mark already mentioned: references vs. pointers. In many languages and architectures, a reference is something like a euphemism for a pointer: underneath, it's really a pointer, and we all know it's a pointer, but a reference is more acceptable in polite company (a.k.a., a modernish high-level language). The ugly truth will surface in the end, though. (Famously Java, a pointer-free language, constantly throws Null Pointer Exceptions.)

  13. Jerry Packard said,

    July 27, 2022 @ 9:32 am

    “…a halfway decent analogy is something Mark already mentioned: references vs. pointers. “

    Yes indeed.

    “… a pointer is more like … a pronoun, or for that matter just a word, which are all ways of saving communicative space and time. “

  14. JPL said,

    July 27, 2022 @ 5:32 pm

    Where's our bus driver?
    1. He had to go and take a piss.
    2. He had to go and urinate.
    3. He had to go and spend a penny.

    All three of these sentences could be true of one and the same objective situation, but the meanings of the sentences differ. So how exactly do the meanings of the sentences differ and how are they all able to give an accurate and contentive description of the one situation? Probably only the third would properly be called a euphemism. Euphemism is an interesting linguistic phenomenon, and so is reference, for that matter. As the mouseover title suggests, one might also look at figures of speech, like metaphor and metonymy.

  15. Philip Anderson said,

    July 28, 2022 @ 2:00 pm

    @JPL
    1 and 2 differ in register, but are plain speaking. “Go for a pee” started out as a euphemism, but it doesn’t sound to me as euphemistic as 3, which is an idiom I can imagine confusing a learner.

  16. Terry Hunt said,

    August 1, 2022 @ 3:09 pm

    @ Seth — ROT13 is still in common use on the internet amongst the Science Fiction community (including professional authors and editors).
    Most often it's used when mentioning plot details that would be spoilers for anyone yet to watch or read the work in question, so that a conscious though trivial effort has to be made to read them.
    There are ROT13 coder/decoder websites (I keep a link to one in my bookmarks file) for those who haven't downloaded or programmed one for their own system. Some people don't need one, as they can mentally code and read ROT13 fluently.

RSS feed for comments on this post