November 2019

S M T W T F S
      12
34 5 678 9
10111213141516
17181920212223
24252627282930

Style Credit

Expand Cut Tags

No cut tags
Friday, May 23rd, 2008 02:36 pm
Можно ли считать SQL языком программирования?
А Пролог?

Upd: чтоб было понятнее, откуда возник вопрос. Они оба не являются алгоритмическими языками, в том смысле, что не содержат алгоритма получения результата. Они содержат только критерии, которым этот результат должен удовлетворять. Можно ли считать их при этом языками программирования?
Friday, May 23rd, 2008 07:28 pm (UTC)
углубимся в терминологию: что такое программа?
Ну, меня везде учили и я везде читал, что “программа — это запись алгоритма в виде, понятном исполнителю, для которого эта программа предназначена.”
Friday, May 23rd, 2008 07:32 pm (UTC)
да-да. Запись на языке SQL понятна исполнителю - серверу.
Friday, May 23rd, 2008 07:34 pm (UTC)
Но она не является записью алгоритма, кроме вырожденных случаев типа SELECT 2+2..

С другой стороны — с прологом почти та же фигня…
Friday, May 23rd, 2008 07:46 pm (UTC)
я вот, честно говоря, совсем не помню привязки к "алогоритму".

В любом случае, алгоритм есть, потому как процессор у нас выполняет таки команды последовательно.

Для декларативных языков программирования, алгоритм фиксирован. Этот набор деклараций управляет машиной, которая работает по тому самому фиксированному алгоритму.

Например, для SQL алгоритм машины можно записать так:
1. получить запрос
2. выполнить запрос
Если дальше разворачивать пункты вглубь, то получим программу, которая будет составлена строго по этим самым декларациям.
Sunday, May 25th, 2008 11:52 pm (UTC)
да нет почему же, select * from table1 это описание алгоритма выбирающего все записи из table1.
Monday, May 26th, 2008 06:18 am (UTC)
А как же “Алгоритм есть последовательность элементарных действий, и так далее”? Тут никакой последовательности не видно.
Если переходить на бытовые примеры — то просьба жене “свари борщ” как-то не похожа на алгоритм варки борща. Это скорее запуск макроса, который уже в себе содержит алгоритм (рецепт) :)
Monday, May 26th, 2008 08:48 am (UTC)
Нет - просто для базы это "элементарное действие".
А так алгоритм на ассемблере это тоже макрос, т.к. ты не управляешь пересылкой электронов в процессоре.
Monday, May 26th, 2008 08:51 am (UTC)
Ну, вот и получается — всё о терминологии спор :)
Monday, May 26th, 2008 06:18 am (UTC)
Вообще, всё упирается в определения, и только в них :)