4 ms·
Abstract machine doesn't necessarily means that your code will be interpreted. An intermediate representation can just be a practical way to reason about low le
by mrighele 7y ago
Abstract machine doesn't necessarily means that your code will be interpreted. An intermediate representation can just be a practical way to reason about low level code (well, the fact itself that is called "intermediate" gives an hint that it is not necessarily the "final" representation).
Many lisps in fact generate native code, in Common Lisp you can even use "disassemble" to get the native code generated for a function
- pfdietz 7y agoAnd many lisps that generate native code go through an intermediate representation. SBCL has two, simply named IR1 and IR2. Also, even an interpreter of "intermediate code" can (dynamically) translate that intermediate code to native code. That's how many JVMs work, for example.