Portable buttemblers, was Where should the type information be
Where should the type information be 231
On Thu, 31 Mar 2005 20:50:58 -0500, Herman Rubin Many modern compilers will do constant propagation. If your pow function is in-lined, then the constant propagation will follow naturally, and you may end...
Where should the type information be 233
At one shop the standard was to overprint all heading and total lines. The more worn the ribbon was, the more dramatic the...
Just a pbutting comment: Like compilers, buttemblers can also be made portable, as has been done in a number of specific situations. The usual approach is to have a powerful set of macros that each expand into dozens of pages of pseudo operations, only to then collapse into a few well-optimized machine instructions. To retarget the language to a new computer only requires rewriting the bottom level of macros - just a day or two of work, and a LOT less work than retargeting C-C++.
Where should the type information be 232
I don't think it is that simple. While the "taste of the designer" is important, there are other facotrs. To use your...
In one case that I was personally involved with, a vendor (that I was working with) contracted with large corporation to build the SORT verb for a COBOL compiler, which was done with a set of macros as I described. The special advantage here is that all of the available high-level languages buttumed too much about the run-time environment that could not be made so while snuggling in with the COBOL run-time system, whereas a macro-based approach buttumed NOTHING regarding the run-time environment. The contract specified that the large corporation would not market a competing SORT. Then, the large corporation announced a new system, and along with it a SORT from another vendor. The vendor that I was buttociated with pointed out that this was a contractual violation, and collected more in a negotiated Debt Settlement than they ever made on their product! All because of the unrealized PROSPECT of retargeting the bottom level macros. Sorry that I can't give you the names of the companies and people involved, but the guilty must be protected.
The above macros worked like a 4-banger calculator, with the destination of a computation on the right of the expression rather than on the left. The top level macro simply pealed its arguments off so that A + B = C turned into Load A, Add B, Store C, but with lots of surrounding buttembly-time logic to recognize various optimizeable structures and collapse them. It worked AMAZINGLY well, because without parentheses it FORCED people to clean up their expressions, ultimately resulting in shorter and faster code.
From this experience, I have become convinced that portable buttembly code is the best approach where complex (sub)systems must be shoehorned into small-perverse operating environments.