4 ms·
Yes, I agree entirely. I think if you went backwards in history you'd hit the point where the additional overhead in implementing a higher-level language would
by duncan_bayne 11y ago
Yes, I agree entirely. I think if you went backwards in history you'd hit the point where the additional overhead in implementing a higher-level language would render the resultant system either unusable, or unusable for a class of problem that could be solved with a lower-level language.
Edited: in fact, I started a project to implement a toy Lisp implementation on an 8-bit micro a few years ago. I'm almost at the point of giving up on the idea because it became quickly apparent that a less resource-hungry language would allow me to achieve more with the same hardware.
- aidenn0 11y agoForth is by far the most bang-for-the-buck on severely resource constrained machines. Lisp isn't CPU hungry, but it tends to be quite RAM heavy.
- duncan_bayne 11y agoIndeed; that's where I was thinking of going instead. The system in question has 42KiB usable RAM w/o expansions.
- eggy 11y agoYou could always write it in Forth, and then create a Lisp in Forth :)
- agumonkey 11y agoWhat were the main issues ? the heap all the thing + GC ? the cost of cons and atomic types ? all of that ?
- aidenn0 11y agoDon't forget that most lisps have symbol names available at runtime. IIRC MIT modified the early PDP-10s to have demand paging support for running ITS, so even Maclisp wants many kilo-words of address space. LISP 1.5[1] did run on a 704 which had only 4096 words, but that's in many ways unrecognizable as a lisp of today. [edit] The 704 included up to 16384 words on the 733 magnetic drum (core was 4096), so that already is more space than what the parent has, and this is circa 1960! 1: http://www.softwarepreservation.org/projects/LISP/book/LISP%201.5%20Programmers%20Manual.pdf http://www.softwarepreservation.org/projects/LISP/book/LISP%...
- hga 11y agoIIRC MIT modified the early PDP-10s to have demand paging support for running ITS, so even Maclisp wants many kilo-words of address space. Yes, and then convinced ARPA to fund the purchase of 1 megabyte (MiB, of 9 bit bytes) of core memory, a full address space. At the edge of the state of the art back then, many people said it couldn't be made, and I seem to remember coming across some stories about it being quite difficult to get operating. When I showed up in 1979 it was referred to with names like the "crufty", it wasn't all that reliable. Those were original formula KA10s. Afterwards came a KI 10 processor I don't know much about, none were bought by MIT. For MIT-MC, David Moon modified the KL10 firmware to do ITS style paging. Developing that KA10 paging unit must have been wild; a student run computer center I started inherited the hardware, and the schematics were fascinating, especially since they were from before there was a standard for logic gates. Instead, they were represented by boxes with the logic function marked in an upper corner. A friend of mine (who I recruited into LMI and who put several "100 hour weeks" into successfully debugging and finishing their LAMBDA processor) noticed that in some cases the state of a gate, or perhaps a flip-flop?, was changed by hitting its output hard. Gates were sufficiently expensive, and the designers knew the hardware sufficiently well; you can see a picture of one 9 transistor Flip-Chip here: https://en.wikipedia.org/wiki/Flip_Chip_(PDP_module) https://en.wikipedia.org/wiki/Flip_Chip_(PDP_module)