I expoect a different class of problems in their place but self modifying code is rightfully highlighted as unprovably correct.
Lisp is not the only language that can build a string and throw it at an eval function.
I expoect a different class of problems in their place but self modifying code is rightfully highlighted as unprovably correct.
Lisp is not the only language that can build a string and throw it at an eval function.
Not exactly. The totally unsafe programming model of C is what has caused this. Once you have untyped pointers that need not point to objects owned by your program, it is very easy to fuck something up.
> Lisp is not the only language that can build a string and throw it at an eval function.
Well, evaluating a string in (Common) Lisp just returns the string. Evaluating a symbol or list will actually do something interesting.
As for C, it's not just the fault of pointers. You just can't shellcode something that doesn't execute data.
Like I say, we'd just have a different class of problems, so it's not a panacea.