I have developed a software mechanism which operates on a certain kind of software entities which are called interfaces. If you want technical details about the mechanism you can read this post on StackOverflow, but it should not be necessary in order to understand the question and give an answer.

The mechanism consists of two parts: one performs an operation upon interfaces which could be called multiplexing, and the other performs an operation which could be called demultiplexing. Now, these terms are already used for various other things in the general domain of computers and electronics, so if I were to use them I would have to always be speaking of interface multiplexing and interface demultiplexing, otherwise I would be confusing people. The problem is that these terms are now way too long and cumbersome. I need to come up with simpler terms, preferably unique, so that when people hear them either they realize immediately what I am talking about, or they realize that I am referring to something previously unknown to them, about which they might wish to ask for explanations.

So, I need to give you non-technical descriptions of what these things do, and ask you to help me find better terms. Of course, there is no way to do this but with similes. There are a few similes that I can give, and terms that satisfy any single one of them would be fine. (I do not expect to find a single term that would satisfy more than one simile.)

Simile #1: wires through a tube

The job of the multiplexer is akin to taking a bunch of wires and making them fit into a tube, so that we have a single inconspicuous tube crossing the room instead of a bunch of separate wires dangling around. The job of the demultiplexer is akin to taking the wires out of the other end of the tube and separating them from each other so that we have the wires that we started with. Note that in actual cabling this process usually involves twisting the wires, but for my purposes conveying such a notion is entirely optional, perhaps even slightly undesirable.

Simile #2: generalization-specialization

The job of the multiplexer is akin to taking objects, each one of which is unique in shape, color and function, stripping them of their properties, and making them completely homogeneous and barren of any characteristic features. The job of the demultiplexer is akin to taking these homogenized objects and restoring their properties and their characteristic features back to what they originally used to be.

Simile #3: assembly-disassembly

The job of the multiplexer is akin to taking things and putting them together into conglomerations thereof; the job of the demultiplexer is akin to taking these conglomerations and breaking them down into their constituent parts.

Simile #4: translation

The job of the multiplexer is akin to translating the language that someone speaks to some cipher suitable for transmission, and the job of the demultiplexer is akin to translating from the cipher back to the original language so that someone else can understand it. (But note that cipher/decipher are not applicable because they already mean other things.)

Please consider the fact that I need six terms:

  1. a synonym for the act of multiplexing.
  2. a synonym for the performer of the act. (The multiplexer.)
  3. a synonym for the verb of the act. (To multiplex.)
  4. a synonym for the act of demultiplexing.
  5. a synonym for the performer of the act. (The demultiplexer.)
  6. a synonym for the verb of the act. (To demultiplex.)

(I am mentioning this because someone suggested "fusion" and "fission", which would have been fine if all I needed was names for the acts, but then I tried to think of the corresponding names for the performers and for the verbs for "fusion" and "fission" and I realized that there is a slight problem.)

It goes without saying that the terms need to be as symmetric as possible, preferably even with the same number of letters for each part.

To help to get things started, here are some sets of terms that I have been able to come up with so far. I do not know which, if any, I should choose. You can pick one of these sets, or suggest your own set.

                name of action   name of performer  verb
multiplexing:   generalizing     generalizer        generalize
demultiplexing: specializing     specializer        specialize

                name of action   name of performer  verb
multiplexing:   normalizing      normalizer         normalize 
demultiplexing: denormalizing    denormalizer       denormalize

                name of action   name of performer  verb
multiplexing:   entwining        entwiner           entwine
demultiplexing: untwining        untwiner           untwine

                name of action   name of performer  verb
multiplexing:   enmeshing        enmesher           enmesh
demultiplexing: unmeshing        unmesher           unmesh

                name of action   name of performer  verb
multiplexing:   enplexing        enplexer           enplex
demultiplexing: deplexing        deplexer           deplex

                name of action   name of performer  verb
multiplexing:   coalescence      coalescer          coalesce
demultiplexing: separation       separator          separate

                name of action   name of performer  verb
multiplexing:   twisting         twister            twist
demultiplexing: raveling         raveler            ravel

                name of action   name of performer  verb
multiplexing:   folding          folder             fold
demultiplexing: unfolding        unfolder           unfold

                name of action   name of performer  verb
multiplexing:   braiding         braider            braid 
demultiplexing: unbraiding       unbraider          unbraid

                name of action   name of performer  verb
multiplexing:   enlacing         enlacer            enlace
demultiplexing: unlacing         unlacer            unlace

The answer that I will accept is the one that I will end up using.


I finally decided to call the terms entwine/untwine, and since the software project in which these words are used deals with interfaces, the name of the project is intertwine. If you want to read about it, here it is: michael.gr - Intertwine: Normalizing Interface Invocations

  • 1
    I didn't think this trough yet, but did you consider looking at equivalents of multi- and -plex? The meaning of the Latin root for instance is also "to weave". Interestingly the art of weaving has a large lexicon for all kinds of technicalities. Commented Jan 4, 2012 at 23:05
  • @Benjamin I have considered this, and some of the suggestions in the above list resulted from this consideration. But I do not know how thorough I was in doing this.
    – Mike Nakis
    Commented Jan 4, 2012 at 23:13

7 Answers 7


The terms muxing and demuxing are in the technical lexicon, so it wouldn't be too much of a stretch to imagine what interface muxing and interface demuxing might entail.

If you have no philosophical objections to the terms, your grid would look like this:

mux/demux grid

If you're looking for terms that are both unique (as applied to software interfaces) and easier on the ear, consider coalesce and deliquesce:

coalesce/deliquesce grid

  • Thank you. My objections are more acoustic than philosophical, but in any case these terms are just abbreviations of the longer forms, used interchangeably, so they have the same disadvantages. (Minus the length, admittedly.)
    – Mike Nakis
    Commented Jan 4, 2012 at 23:55
  • I suggested coalesce/deliquesce; the physical analogy may not be as exact, but they will pique interest in the process.
    – Gnawme
    Commented Jan 5, 2012 at 0:54
  • I didn't trawl through the details of OP's proposed routine, but basically it looks like a general-purpose wrapper intended to allow monitoring of a wide variety of calls. Your link is specifically about muxing video data, but in my understanding the term is far more general, so I can't see a problem with OP using it. Though if the calls never return anything, I'm not sure where the demuxing comes into play, so perhaps he might just as well use the now-standard term marshall for the first part and be done with it. Commented Jan 5, 2012 at 2:20

Here is my input:


-plex has an etymological meaning of "weaving", hence:

   weaving      weaver      weave   
   unweaving    unweaver    unweave

This terminology gives you the benefit of using other names for variables, such as weft, woof and perhaps yarn and warp too.


Interlacing describes an act similar to weaving, hence:

   interlacing     interlacer     interlace
   deinterlacing  deinterlacer  deinterlace

This may not provide your with a larger lexicon though.


Similar semantics as the above:

    knitting    knitter    knit
    unknitting  unknitter  unknit

There again you may have terms as knot which may add to the lexicon.

  • Thank you. The term is actually "deinterlacing", and unfortunately it is already used. Weaving sounds very promising.
    – Mike Nakis
    Commented Jan 4, 2012 at 23:52
  • Oops -- I somehow doubted all that whilst writing it :) Commented Jan 4, 2012 at 23:57
  • If you want to destroy my sweater.... youtube.com/watch?v=LHQqqM5sr7g Commented Jan 5, 2012 at 16:57

Here's a list of short verbs that you might co-opt for your purpose: align, blob, bottle, bust, claim, clothe, collect, commandeer, congregate, conscript, conserve, costume, convene, convoke, coop, cork, cure, deploy, depose, dismiss, dispose, draft, dress, enlist, enroll, fire, fix, gather, hire, impose, jam, lead, levy, marshal, mask, meet, mobilize, muddle, muster, pickle, preserve, raise, rally, reclaim, recruit, remit, shelve, summon, swathe, unmask, yoke.

Via this list, [which of course includes Python's pickle, marshal, and shelve] one can come up with pairings such as clothe, costume or mask, with unclothe or unmask; rally, conscript, muster with unrally or demob; cork or bottle with decork or decant; blob, bust; yoke, unyoke; hire, fire; org, deorg; etc.


As I visualize it, you are basically putting a wrapper around each type of object. This wrapper must be removed to get the original objects back. This paradigm suggests wrap/unwrap. (bundle/unbundle almost works, but seems more appropriate to wrapping a group of objects together.)

This operation is also very similar to backup/restore, so you might also want to consider backup/restore, export/import, and archive/extract. (Even zip/unzip might make sense, although that will imply compression which you are not performing.)

  • Actually no, it is not wrapping of objects. It is transformation of interfaces. An interface can be thought of as a means through which objects communicate with each other. It is as if all kinds of different objects speak all kinds of different languages, and the job of my system is on one end to translate any of these languages into a common language suitable for transmission, and on the other end to translate back to, not just any other, but the original language.
    – Mike Nakis
    Commented Jan 4, 2012 at 23:07
  • Yes. I notice you use network language in your explanation: you prepare the object for transmission, transmit it, and at the receiving end restore the object. We tend to think of whatever we need to get through a network as a payload or cargo, and to think of the generic object such as a TCP packet which carries it as a wrapper. You will very often see wrap/unwrap used to describe the transformation of an object into a transmission unit and transformation back to an object at the other end. See what I mean by Google searching [ wrap unwrap network protocol ] or [ payload wrapper ].
    – MetaEd
    Commented Jan 4, 2012 at 23:33
  • I should add that, yes, I understand this is a little different than the way you think about what you are doing. That seems to me to be the point of your question: you want to know what would be intuitive and easy to understand for someone who doesn't think like you.
    – MetaEd
    Commented Jan 4, 2012 at 23:35
  • Okay, but wrapping and unwrapping is already used in software engineering to mean a very specific other thing, (wrapping/unwrapping of objects,) so I cannot use it for interfaces.
    – Mike Nakis
    Commented Jan 4, 2012 at 23:36
  • I do not expect someone to necessarily understand what I am talking about; I hope to establish a term which, once you know it, you know what it stands for, and if you do not already know it, you understand that it is about something new.
    – Mike Nakis
    Commented Jan 4, 2012 at 23:37

What's about composition and decomposition?

Composition is the successive application of functions to a variable, the value of the first function being the argument of the second, and so on.

(Source: Oxford Dictionary)

Even if it is not the exact synonym but it can represent your technical idea.



Produce (something, especially a list, report, or book) by assembling information collected from other sources.

Compiling    Compiler    Compile
Decompiling  Decompiler  Decompile

Source: Oxford Languages for Google

  • Thanks, but this term already has a pretty specific meaning in programming, so it cannot be reused for my purpose.
    – Mike Nakis
    Commented Aug 21, 2022 at 0:00

Aggregating / decomposing seem a fair match

  • Why is that? Please explain your answer fully. Commented Mar 19, 2015 at 9:38

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.