Compilation Was: Is DEFCONSTANT broken?



Duane Rettig <duane@xxxxxxxxx> writes:

The problem here is that the whole reason for
compilation is to reduce code complexity, and having these hooks to
break these simplifications goes against the goal of compilation.

This surprize me.

I thought that the purpose of compilation was foremost to optimize
speed.

I'm not sure that it reduces code complexity. For a start, assembler
is harder to read than high level language. Then the compiler may
open code, inline, unroll loops, and implement any other kind of trick
which dilutes abstractions a lot, which I understand as rendering the
code more complex, not less.



Perhaps you mean that the target virtual machine is usually simplier
(a single memory vector, a few registers, a few instructions to move
bits), than the CL virtual machine (with special operators and
notions that are more sophisticated and intertwined).

But the code itself, by consequence of this difference of complexity
of the virtual machines, must be more complex on the simplier VM, at
least when generated by a compiler trying to optimize anything but
readability of the assembler code.

--
__Pascal Bourguignon__
.



Relevant Pages

  • Re: Compilation Was: Is DEFCONSTANT broken?
    ... compilation is to reduce code complexity, ... break these simplifications goes against the goal of compilation. ... And, by the way, assembler code is not compiled code; ... they are just instructions which happen to be the target of the jump). ...
    (comp.lang.lisp)
  • Re: Compilation Was: Is DEFCONSTANT broken?
    ... compilation is to reduce code complexity, ... break these simplifications goes against the goal of compilation. ... And, by the way, assembler code is not compiled code; ... they are just instructions which happen to be the target of the jump). ...
    (comp.lang.lisp)
  • Re: Compilation Was: Is DEFCONSTANT broken?
    ... break these simplifications goes against the goal of compilation. ... We fight complexity with abstractions. ... instructions. ... level to low level is one of increasing simplicity. ...
    (comp.lang.lisp)
  • Re: object file size is reduced after build
    ... LOC without requiring a great deal of complexity. ... pre-process the source - this saves headaches with comments ... and conditional compilation and stuff; ... and compile for pure code (i.e. no debuggery, ...
    (comp.lang.c)
  • Re: Compilation Was: Is DEFCONSTANT broken?
    ... break these simplifications goes against the goal of compilation. ... Duane: Are you distinguishing between compilation and interpretation ... binary is simplier than a lisp interpreter. ...
    (comp.lang.lisp)