Languages with eval() kind of give you a pass on this challenge.
A more impressive alternative would be writing nested interpreters in multiple languages... Or writing code which runs in one "language" and then self modifies to another language which runs and subsequently self modifies, and so on.