4 ms·
Can someone please explain to me what this code does? I know some C, but I couldn't understand this.
by hereisdx 7y ago
Can someone please explain to me what this code does? I know some C, but I couldn't understand this.
- vfinn 7y agoAFAIK after taking a quick glance, it takes c code as input, then translates it to internal format by doing tokenization and parsing, and then executes the code. So, it's an interpreter. You could call it with other names as well. You can also have the program itself as an input, and have many layers of execution.
- Iv 7y agoconsidering the code is translated into a kind of simple, non-native opcode, I think it is also correct to call it a VM.
- bluetomcat 7y agoA one-pass compiler for a subset of C, relying on a recursive-descent parser, doing the lexing, parsing and code generation in lockstep. The generated code, consisting of abstract machine instructions, is then executed by an instruction fetch and execute loop. BTW, the code looks relatively short because many semicolon-separated statements are crammed on a single line, and short variable names make that somewhat manageable and even visually symmetric. If you were to unfold it with each statement on its own line, I guess it would be at least 3 times the size.
- epicide 7y ago> A one-pass compiler for a subset of C, relying on a recursive-descent parser, doing the lexing, parsing and code generation in lockstep. The generated code, consisting of abstract machine instructions, is then executed by an instruction fetch and execute loop. This should be added to the README.
- hereisdx 7y agoThanks a lot for the explanation!