Писать компиляторы без аппарата грамматик не очень удобно. Так не делают, как я понимаю. Из моего универа многие проходят практику в компании JetBrains, которая как раз разрабатывает среды программирования, им приходится осваивать основы грамматик, чтобы что-то содержательное делать.
Вообще говоря, даже арифметическое выражение с +-*() с грамматиками парсить приятнее.
В практическом смысле даже можно смотреть на грамматики не как на математический аппарат, а как на шаблон проектирования. Типа более менее универсальная схема, по которой кодятся разборщики выражений (в широком смысле, программа -- тоже выражение). Опять же, эта схема описывает и как преобразовать выражение, и как в нем ошибки найти, и иногда даже исправить.
Есть много исследований на тему "а что, если разрешить в грамматиках еще то-то и то-то", пока они выглядят бесполезно, но _может_ случиться так, что получится построить модель, которую еще более удобно применять на практике.
Есть чисто теоретические применения -- какой-то комбинаторный анализ языка можно делать с помощью грамматик. Производящую функцию длины слова, например, по грамматике просто построить.
А, ну и еще есть несколько открытых проблем, и если про некоторые факты вдруг докажут, что они таки верны, то P не равно NP. Еще один из сотен вряд ли выполнимых путей прийти к этому результату :)
Но вообще я не особо интересуюсь практической стороной дела. Главное, чтобы няшно было :)