3 ms·
Words have meanings, and the instruction pipeline consists of electrical signals - and those early CPUs were almost all microcoded or had multiphase clocks or s
by justinjlynn 3y ago
Words have meanings, and the instruction pipeline consists of electrical signals - and those early CPUs were almost all microcoded or had multiphase clocks or some other implementation abstraction which they did not expose to their architectural state... so yes, they were in a very real sense compilers.
- Retric 3y agoAgain “Almost” means not every. So no saying all CPU’s are compilers is clearly false from the words you just wrote. Also, the number of CPU’s manufactured heavily favored very simple designs.
- justinjlynn 3y agoSimply because I didn't state "for all and every" doesn't invalidate my point, nor does it support yours as true - further, "heavily favored" suffers from the same problem. The point is, there's a system which takes as input formatted in a specification (a program) and some transformed output (a set of actions to be taken or another program input for another compiler). So, there you go. If a hot dog on a bun could be considered a sandwich, then a CPU could be considered to be a compiler. shrug disagree all you like.
- Retric 3y agoIf you say X is Y, but it’s not true for all X then the statement is false. Ie: “All integers are even.” is false. As to your point that’s not what CPU’s do though, they have both a set of instructions and a set of IO with the outside world. A compiler always results in the same output from a given set of instructions, but with CPU’s you can run the same code and get wildly different output due to that IO. The only way you can call a CPU a compiler is as a subset of its capabilities. If they they have internal microcodes where a given instruction gets translated into a different internal representation, but that’s not the end it also executes those microcodes.