There is no encrypted program, there is encrypted data. You can operate on this data, and it will reflect on the plaintext after decryption. I think what you're thinking about is functional encryption?
In general, this is only of theoretical interest, since the interpreter apply and the specialized interpreter eval_x are large, complicated programs.
https://blog.cryptographyengineering.com/2014/02/21/cryptogr... seems an interesting article.
Is it practical on an intel cpu ?