4
Compiling To Logic Gates
(lemm.ee)
Hello!
This is the current Lemmy equivalent of https://www.reddit.com/r/ProgrammingLanguages/.
The content and rules are the same here as they are over there. Taken directly from the /r/ProgrammingLanguages overview:
This community is dedicated to the theory, design and implementation of programming languages.
Be nice to each other. Flame wars and rants are not welcomed. Please also put some effort into your post.
This isn't the right place to ask questions such as "What language should I use for X", "what language should I learn", and "what's your favorite language". Such questions should be posted in /c/learn_programming or /c/programming.
This is the right place for posts like the following:
See /r/ProgrammingLanguages for specific examples
Another problem I see is that for some machine instructions, the boolean output would be absolutely massive (not to mention redundant). Take something like a fetch from RAM for example - which happens at least once on every machine instruction. The binary description would be huge, especially if you include every "false" check.
If you haven't seen it, I highly recommend Ben Eater's Breadboard Computer series. His videos take you from logic gates up to a simple functioning computer.
If you could create/find a C compiler for this simple-as-possible computer, then in theory you could use these videos to get the full boolean logic of each instruction. Not something I would do, but I think that would be the easiest way to do it.
This is a really good point. If a complicated pure function is straightforward-ly converted into a boolean expression; at some point the the best way to simplify it would be making a Turing machine INSIDE the expression itself.
I was mostly thinking of small scale functions or sections of really hot/real-time code. Maybe using it for analysis for potential new/helpful instructions for an assembly language or as a foundation for highly advanced bit-level optimizations like the inverse square root hack for Quake (but automated and generic).
I'll check out that link! In my undergrad one of the classes had us make our own machine language starting from logic gates, muxers, building registers, memory, adders, ALU's, etc all the way up to a our own custom assembly language. It was probably the most helpful class in my entire undergraduate.