The first approach, if not undertaken as a serious programming language design and implementation enterprise, might cause duplicated effort and less than optimal solutions.
The second approach may have the advantage that the linguists don't have to learn a new programming language, but can continue to use their high-level description languages. But it is not clear how far such a compilation technique can be extended. It might be possible for a certain class of problems according to a specific grammar theory. But in general, it is a nontrivial problem to come up with appropariate representations and control structures that provide an efficient implementation of the phenomena described by a particular grammar. This might be mitigated somewhat by interactive compilation techniques, but this is a research area in its own right.
The third approach is the most direct one and requires a deep understanding of the operational reading of a given grammatical specification. It also requires profound knowledge of the programming language and their available control facilities. It renders it relatively difficult to maintain the distinction between grammar-writing and programming, which may be socially problematic.