I think that while the code expressing MUL is harder to read, since there are a lot more characters strewn about in a small space, it would be more informative as to what all the parameters are and I would much more prefer to come back to it three months from now as opposed to the classical approach.<p><pre><code>    MUL(opcode(0x1c), funct(2), mnemonicPattern(&quot;iname rd, rs, rt&quot;),
            Example.theMnemonicRepresentation(&quot;mul $t1, $t0, $at&quot;)
                    .isRepresentedNumericallyAs(0x71014802),
            Example.theMnemonicRepresentation(&quot;mul $v0, $a0, $v0&quot;)
                    .isRepresentedNumericallyAs(0x70821002)),

    SUB(0x00, 0x22, &quot;iname rd, rs, rt&quot;,
            Example.from(&quot;sub $a0, $zero, $at&quot;, 0x12022);

    private static String mnemonicPattern(String m) { return m; }
    private static int opcode(int opcode) { return opcode; }
    private static int funct(int funct) { return funct; }
</code></pre>
​Now, as you can see I did not have to wrangle Java much for the first three parameters.<p>The Example class is used so that I do not have to write separate test cases for my assertions nor store valuable information about truisms in different files regarding my objects. Using it I can (in both examples) loop over an Example set and checking that the assertions hold, viz. that my JUnit tests can check that by inputting &quot;mul $t1, $t0, $at&quot; at the appropriate place 0x71014802 comes out at the other end.<p>For the MUL example, I just had to create a private Stub class and employ a Builder-esque pattern to express what is shown in the example.<p>It has been awhile since I coded alongside other people, and would love to receive feedback on both the Python keyword emulation as well as your thoughts on the Example ploy.