2 ms·
I am a theoretical computer scientist. I can appreciate the insightfulness (on the surface) of that commentary. However, the fact that modern computers can be
by jfkebwjsbx 7y ago
I am a theoretical computer scientist. I can appreciate the insightfulness (on the surface) of that commentary.
However, the fact that modern computers can be exploited due to architectural and engineering decisions (eg memory unsafety) does not mean a separation between code and data is not possible.
In fact, it is precisely a hot topic how to cheaply bend current practices back to that model given the rampant amount of vulnerabilities in the wild.
- madsbuch 7y agoMy comment was not limited to the realm of hardware, ISAs and microcode. It was much more general. If you never treat data as code, you can only do uninteresting things. My example was the email address. The instance you look into the "black box" of the string, you are starting to treat the string as an executable structure. An email address' raison d'etre is provide that; an address to send an email to. You can not do that without looking into it. Now, from here we can discuss safe and unsafe ways of doing that. You could use string splits or what not, or you could use a parser combinator library. Doing the latter will make it easy to see that parsing and executing a program is not that different from parsing an email into an AST, (user, hostname), and then treating that as a higher order program (ie. we need to specialize with a message before we can execute it as a "send email" program).