3 ms·
Yeah, but what maps the characters 1 and 0 to the numerical value 10? I bet it’s the same chain of compilation, at some point leading to an assembly compiler, a
by xixixao 2y ago
Yeah, but what maps the characters 1 and 0 to the numerical value 10? I bet it’s the same chain of compilation, at some point leading to an assembly compiler, and that itself leading to some proto binary implementation, maybe even going into bios/hardware implementation?
- fluoridation 2y agoThe logic can be implemented entirely in a parser written in a high level language. For example, //const int ZERO = '0'; const int ZERO = 0x30; int convert(const char *s){ int ret = 0; for (; *s; s++){ ret *= 10; ret += *s - ZERO; } return ret; } After that you just dump the value to the output verbatim. Any high level language can handle this, it's just a change of representation like any other. There's no need to do any further delegation.
- fluoridation 2y agoReplying to myself because I can't edit the comment anymore. I think I see what you mean now. The parser for the language that compiles your parser also needs to know that "10" means 10, and that "0x30" means 48. I guess that also is knowledge that is passed down through compiler generations. I wonder if you could write a simple parser that doesn't contain a single numerical constant.