If Lisp is more expressive than C, why Lisp can be compiled into C and C cannot be compiled into Lisp?
Name:
Anonymous2016-02-17 21:40
It's only more difficult because C depends on the underlying machine representation and Lisp does not.
Lisp is hardware-agnostic. You can compile it to C, to Java, to Brainfuck, to Matlab, to more Lisp, whatever. It's easy to do because Lisp doesn't care exactly how you implement it: as long as the builtins are consistent with the internal memory model (which you, the implementer, define), everything is fine.
C assumes a von Neumann architecture with contiguous memory, registers, and a bunch of other shit that (luckily!) most hardware has already. In order to compile C to anything other than assembly or binary, you basically have to write your own virtual machine. Guess what: that is really tedious!