Является ли SQL свободным от контекста или каким-либо другим языком?Что такое язык SQL?
ответ
@aquinas писал:
ли вы имеете в виду SQL тоже регулярно? CFG охватывает обычные языки. Таким образом, они не являются взаимоисключающими. Однако, чтобы ответить на ваш вопрос, SQL не является обычным языком.
@MSX писал:
Просто для уточнения, языком является контекстно-свободным, когда он порожден контекстно-свободной грамматикой. В онлайн-определениях грамматики нет контекста. Просто google, и вы найдете некоторые. Here's один, например.
([Отвечено в комментариях и преобразовано в сообщество wiki.] (Http://meta.stackoverflow.com/questions/251597/question-with-no-answers-but-issue-solved-in-the-comments)) –
Согласно https://stackoverflow.com/a/31265136 SQL не является обычным языком. Краткое объяснение в том, что каждый запрос на выборку выглядит
SELECT x FROM y WHERE z
и y
может быть сам по себе еще один запрос на выборку, поэтому он не может быть смоделировано с конечного автомата. Как уже упоминалось ранее, существуют некоторые CFG для SQL-стандартов в Backus–Naur Form, поэтому SQL является нерегулярным контекстом.
SQL - это декларативный язык, с (в некоторых случаях/реализациями) процедурные элементы – Barranka
Вы имеете в виду SQL * также * regular? CFG охватывает обычные языки. Таким образом, они не являются взаимоисключающими. Чтобы ответить на ваш вопрос, SQL является * не * регулярным языком. – aquinas
Использует ли SQL как регулярные, так и контекстные контексты грамматики? В этом случае, будучи пересечением обоих, он по-прежнему остается свободным от контекста. –