2014-10-27 11 views
-1

Является ли SQL свободным от контекста или каким-либо другим языком?Что такое язык SQL?

+3

SQL - это декларативный язык, с (в некоторых случаях/реализациями) процедурные элементы – Barranka

+3

Вы имеете в виду SQL * также * regular? CFG охватывает обычные языки. Таким образом, они не являются взаимоисключающими. Чтобы ответить на ваш вопрос, SQL является * не * регулярным языком. – aquinas

+0

Использует ли SQL как регулярные, так и контекстные контексты грамматики? В этом случае, будучи пересечением обоих, он по-прежнему остается свободным от контекста. –

ответ

0

@aquinas писал:

ли вы имеете в виду SQL тоже регулярно? CFG охватывает обычные языки. Таким образом, они не являются взаимоисключающими. Однако, чтобы ответить на ваш вопрос, SQL не является обычным языком.

@MSX писал:

Просто для уточнения, языком является контекстно-свободным, когда он порожден контекстно-свободной грамматикой. В онлайн-определениях грамматики нет контекста. Просто google, и вы найдете некоторые. Here's один, например.

+0

([Отвечено в комментариях и преобразовано в сообщество wiki.] (Http://meta.stackoverflow.com/questions/251597/question-with-no-answers-but-issue-solved-in-the-comments)) –

2

Согласно https://stackoverflow.com/a/31265136 SQL не является обычным языком. Краткое объяснение в том, что каждый запрос на выборку выглядит

SELECT x FROM y WHERE z 

и y может быть сам по себе еще один запрос на выборку, поэтому он не может быть смоделировано с конечного автомата. Как уже упоминалось ранее, существуют некоторые CFG для SQL-стандартов в Backus–Naur Form, поэтому SQL является нерегулярным контекстом.