3 ms·
Agree with all that! Except: > Lisp, and Lisp-like languages are the highest, and most compilers are somewhat mid-level Most Lisps have compilers (except the
by fmakunbound 6y ago
Agree with all that!
Except:
> Lisp, and Lisp-like languages are the highest, and most compilers are somewhat mid-level
Most Lisps have compilers (except the toy ones), and have had compilers for several decades.
- Jtsummers 6y agoI think GP may have worded that poorly, and "most compilers" in your quoted portion would be better read as "most other languages". Taken this way, the sentence becomes something like: For computing, transistors are the lowest level of abstraction (they are literally the things doing the computing), Lisp and kin languages are at the extreme end of abstraction, and most other languages fit somewhere in between. Though not entirely true (Lisps let you get pretty low level if you want), it's a reasonable perspective if you look not at what the languages permit, but what they encourage. Forth encourages building your own abstractions from the bottom up. Lisp encourages starting with an abstract machine model and building up even higher levels of abstractions (same with most functional and declarative languages). C++ (for something in between) encourages understanding the underlying machine, but not necessarily to the degree that Forth does. Forths and Forth programs are often closely tied to a specific CPU or instruction set. C++ can be seen as abstracted across a particular machine model that's typical of many modern CPUs but not with a direct tie to a specific instruction set (doing so constrains many programs more than necessary). And Lisp's abstract model is (or can be) even more disconnected from the particular physical machine. I'd put Haskell, SQL, or Prolog and languages at their level at the extreme end of abstraction before Lisp. Their abstract machines are even further from the hardware (for most users of the languages) than Lisp's.