Имеют ли теоретические темы в области информатики приложения для "реального мира"?

Под "теоретическими темами информатики" я имею в виду такие вещи, как регулярные или нерегулярные языки, лемму о перекачке и грамматики.

Я знаком с приложениями реального мира конечных автоматов и регулярных выражений, но такие темы, как эти другие, дают мне больше проблем, так как я не вижу приложений реального мира.

Ответ 1

Эти вещи полезны, если вы хотите знать, является ли попытка сделать что-то тщетным с регулярными выражениями. Например, знание того, что XML нерегулярно, полезно, если идея разбора XML с регулярным выражением когда-либо входит в ваш разум. И если вы не знаете, что XML является нерегулярным, то эта проблема даст вам возможность доказать это тривиально. А потом есть компиляторы, где, если вы не знаете этого, вы обречены. Это просто зависит от приложения.

Ответ 2

Здесь Стив Йегге принимает о пользе компиляторов, подытоживается как:

На самом деле, Compiler Construction, по моему собственному скромному и, вероятно, смущающе ошибочному мнению, второму по важности классу CS вы можете принять программу бакалавриата по компьютерной науке.

Грамматики необходимы для анализа рекурсивных структур, которые появляются в языках программирования, естественных языках и сложных структурах данных. Я считаю, что некоторые программисты вообще не встречаются с ними, но люди, которые пишут компиляторы, IDE, сериализацию и т.д., Очень часто встречаются с ними.

Ответ 3

Как указал Ювал Ф, грамматики имеют решающее значение для разбора языка. Если вы посмотрите на генераторы парсеров, такие как ANTLR, вы обнаружите, что структура грамматик удивительно похожа на то, что вы узнали в школе.