Hacker Newsnew | past | comments | ask | show | jobs | submitlogin

That’s not “independently created” you’re suggesting reimplementing the output of a process not from first principles but from the output of the process. I can make a compiler in a programming language without it being a derivative work of any other compiler.

Further, people have programmed in languages before any compilers where created which worked after the compilers where created.



The CPU is a compiler for programs written in the machine instruction set architecture the CPU claims to implement which happens to output real world effects just as a compiler outputs program code. So, no, you can't.


No all CPU’s aren’t a compiler. Words have meanings and you used them incorrectly.

Early CPU’s didn’t compile anything they directly executed the instruction pipeline.


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.


Again “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.


Simply 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.


If 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.




Guidelines | FAQ | Lists | API | Security | Legal | Apply to YC | Contact

Search: