自己書き換えコード
自己書き換えコードはセキュリティ上問題があるため、いくつかのオペレーティングシステムではそれを禁止している。懸念されているのは、そのプログラム自身が自分のコードを書き換えることではなく、他者が悪意を持ってコードを改変することである。たとえばOpenBSDの最近のバージョンは W^X("write XOR execute")という機能を持っており、あるメモリページについてプログラムは書き込むことができるか「あるいは」実行することができるが、書き込んで実行することはできないというものである。W^X 機能を持った OpenBSDでは自己書き換えコードは通常は動作できない。自己書き換えが必要なプログラムは、mmap で PROT_EXEC | PROT_WRITE 属性でページをマッピングしてそこにコードを書き込まなければならない。
メタなレベルで考えれば、適切なデータ構造を使うことで振る舞いを変化させるプログラムは一種の自己書き換えとも言える(メタプログラミング参照)。