Re: Compilation Was: Is DEFCONSTANT broken?



pjb@xxxxxxxxxxxxxxxxx (Pascal J. Bourguignon) writes:

Duane Rettig <duane@xxxxxxxxx> writes:

Actually, quite the opposite. A loop is more complex than straight-
line code; it has a branch instruction within it, which is well-
understood to create pipeline stalls, unless the hardware has the
added complexity itself to duplicate effort in order to perform branch
prediction. No, the simplest code is the fully-unrolled loop which
executes no branches, but which simply performs the required
instructions. Is it necessarily optimal? No, because code size does
factor into the mix, and so the fact that loops are only unrolled
partially is due to tradeoffs between code complexity and instruction
cache size.

We fight complexity with abstractions. Which is mostly inventing new
levels of source code generating the existing lower level of lisp, VOP
or binary. If adding an abstraction didn't reduce the complexity we
wouldn't do it, we'd keep programming in assembler.

I think you two are working from two different senses of the word
“complexity”. Duane's definition in this context seems to be that
complex code is that which requires more legwork — a more involved
series of steps — for the computer to execute. Obviously interpreting
code from text or in-memory lists takes more work than running machine
code or byte code, so by this definition the process of running a
program has been simplified immensely by compilation.
.



Relevant Pages

  • Code density and performance?
    ... For a new ISA intended to be suitable for markets from ... Since all implementations would have an on-chip L2 cache, ... Heidi Pan's "High Performance, Variable-Length Instruction ... In addition to decode complexity constraints, ...
    (comp.arch)
  • Re: ptrace single-stepping change breaks Wine
    ... the instruction will set TF, so we should not touch it afterwards. ... > go back to the old state, revert all the recent ptrace changes ... The _only_ real complexity is actually following the silly LDT ... "prefetch" check does exactly the same thing except it seems to get a few ...
    (Linux-Kernel)
  • Instruction Scheduling Complexity
    ... In the paper "Optimal Instruction Scheduling Using Integer ... "The complexity of local instruction scheduling can depend on the ... latency is defined to be the difference ...
    (comp.compilers)
  • Re: Nibz processor @ <570 MAXII LEs (16 bit generic specified), 20MHz
    ... with the speed of serially fetched instruction ... fectch in a word or SPI nibble of the next instruction. ... complexity due to the number of seperate multiplexed particulates ... Yes the control overhead can be larger than a lot of people expect. ...
    (comp.arch.fpga)
  • Re: Java is becoming the new Cobol
    ... drag, kicking and screaming, into structured programming, were beyond ... Believe me, I don't have a problem with complexity, when it's warranted. ... The "data" doesn't back up your impressions at all. ... Structured Programming is a useful and powerful ...
    (comp.lang.cobol)