2 ms·
> My hunch is that this constraint should be that abstractions must be reversible. > Here's an example: When you use a compiler, you can work at a higher layer
by saghm 3y ago
> My hunch is that this constraint should be that abstractions must be reversible.
> Here's an example: When you use a compiler, you can work at a higher layer of abstraction (the higher-level language). But, this means you're now locked into that layer of abstraction. By that I mean, you can no longer work at the lower layer (assembly), even if you wanted to. You could in theory of course modify the compiler output after it's been generated, but then you'd have to somehow manually keep that work in sync whenever you want to re-generate. Using an abstraction kinda locks you into that layer.
Just to make sure I understand, you're proposing a constraint that would rule out every compiler in existence today? I feel like overall I think compilers have worked out well, but if I'm not misunderstanding and this is how you actually feel, I guess I at least should comment your audacity, because I don't think I'd be willing to seriously propose something that radical.
- yogorenapan 3y agoA lot of languages allow in-line assembly
- saghm 3y agoI'm repeating the claim that the parent comment made; the assertion that compilers lock you into a level of abstraction is theirs, not mine.
- cloogshicer 3y agoYes, you understood correctly. What I'm saying is extremely radical and would require rethinking and rebuilding practically everything we have.
- saghm 3y agoThanks for the clarification! I'm probably too far into the orthodoxy to seriously consider something like this, but I admire your willingness to question things that most of us probably take for granted.