4 ms·
Wow, a machine devoted to a programming language. That is pretty interesting. Were there other machines devoted to a single language like that?
by RexRollman 12y ago
Wow, a machine devoted to a programming language. That is pretty interesting. Were there other machines devoted to a single language like that?
- cbd1984 12y agoWell, if you take some partisan grumblings, most hardware is devoted to C, but that's arguable: Frankly, C isn't as good a fit for those machines as the partisans make out, being rather too high-level to really take advantage of the vector opcodes and parallelism those systems offer. Chuck Moore has made some CPUs which are really a nice fit for Forth, but I don't know if he considers them "Forth Machines" the way these computers were Lisp Machines.
- Animats 12y agoMoore's little Forth CPUs were cute. They only needed about 4K gates. The original version got wrong answers on division if the divisor was odd, and they couldn't afford to redo the custom silicon, so it shipped that way, with errata. Moore had an I/O system where the input device was three buttons, used in a chord fashion, and the output was color NTSC generated entirely by software by the Forth chip. The whole thing was a beautiful exercise in minimalism. As ICs got more gates, it was pointless. As for most hardware being devoted to C, that is true to some extent. C assumes you have one big flat address space. That killed off segmented-memory machines (IA-32 can do some interesting things in segmented mode, but nobody uses those features). It also killed off stack machines such as old Burroughs mainframes, where addresses are more like directory paths ("process 22/array 15/subscript 10", with hardware subscript checking and hardware support for array growth and moving). The price we pay for this is decade after decade of buffer overflow security flaws.
- cbd1984 12y ago> C assumes you have one big flat address space. Which means you can't talk about caching in C. You used to be able to declare that some variables would live in registers, but if you try that now, compilers ignore you. (As they should, given how easy register scheduling is for a compiler.) But not being able to declare things about cache can hurt you in some loops. I agree that near and far pointers were a blot on C and it's good that that mess is gone, but the "Big flat address space" is just as much an abstraction as "In-order execution", and C can't let you peel back the covers on either. (Assembly doesn't always let you peel back the covers, either, but that's another topic.)
- pjmlp 12y agoYes. C, Ada, Modula-2, Oberon, Forth, Basic, UCSD Pascal, Smalltalk, Mesa/Cedar all had their own full stack. C just got luckier.