Hopefully, this question isn't too generic:

Conventionally, [MDSD](http://en.wikipedia.org/wiki/Model-driven_engineering) is defined as the conversion of model specifications into sources of compilable programs.

Besides this, one could interpret a model.

While interpretation typically tends to be slower, the deployment of an updated model could be simpler.

In general: Why would one compile a model using MDSD? When should one interpret models?