LINUX.ORG.RU
ФорумTalks

Декларативных языков программирования нить

 


0

3

Какие декларативные семейства ЯП (кроме SQL) вам известны? Логические, стековые и функциональные ЯП за декларативные не считать.

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

★★★★★

Ну если бы ты пролог не выкинул, я бы написал про даталог, если считать, что критерием является именно декларативность (тут требуется четкое определение). Он, по некоторым данным, что ни на есть само отражение реляционной алгебры, в отличие от.

arturpub ★★
()

Логические, стековые и функциональные ЯП за декларативные не считать.

А почему функциональные языки не являются декларативными по-твоему?

aiive
()
Ответ на: комментарий от aiive

Я так понимаю, ему не нравится проблема останова, иначе трудно объяснить.

Кстати, тс, есть еще изврат xslt, ну и регэкспы в принципе можно считать dsяп.

arturpub ★★
()
Ответ на: комментарий от beastie

Глянул в вики на пример кода и... уж больно напоминает С с каким-нибудь SDL.

label.llft (btex $z_4$ etex, z4t);
    for i=0 upto 4:
        drawdot z[i]t withpen pencircle scaled 2;
    endfor

вот это вот всё

next_time ★★★★★
() автор топика

Какие декларативные семейства ЯП (кроме SQL) вам известны?

Не семейство и даже не отдельный язык, но сразу в голову приходит LINQ из .NET.

invy ★★★★★
()
Последнее исправление: invy (всего исправлений: 1)
Ответ на: комментарий от aiive

А почему функциональные языки не являются декларативными по-твоему?

Чуть уточню. Почему тот-же haskell нельзя назвать декларативным?

aiive
()

Эппл для view layout использует constraint'ы вместо упаковки. Там есть язык расположения контролов, типа H:|-[view1(==view2)]-[view2]-(>=20)-|. DSL построен на линейном решателе cassowary.

arturpub ★★
()
Ответ на: комментарий от beastie

Мм, круто, вырешивает общий whatever, правильно понимаю? А его встраивать можно, а то мне как раз скоро возможно нужен будет такой язычок?

arturpub ★★
()
Ответ на: комментарий от aiive

Декларативное программирование подразумевает непосредственное декларирование желаемого результата, из чего, очевидно, следует, что декларативный ЯП, не являющийся AI, не может быть полным по Тьюрингу.

В функциональном же программировании, всё равно надо описывать метод решения задачи (как именно вычислить приближённое значение числа пи, например). И кроме того, ФЯП полны по Тьюрингу, обычно.

next_time ★★★★★
() автор топика
Ответ на: комментарий от arturpub

вырешивает общий whatever, правильно понимаю?

Угу, и решает всякую линейную алгебру. По поводу встраивания не знаю.

beginfig(70)
    pair A,B,C,D,M;
    A=(0,0); B=(2cm,3cm);
    C=(1cm,0); D=(-1cm,2cm);
    M = whatever [A,B];
    M = whatever [C,D];
    draw A--B;
    draw C--D;
    draw M withpen pencircle scaled 4bp;
end fig;
beastie ★★★★★
()
Последнее исправление: beastie (всего исправлений: 1)

функциональные ЯП за декларативные не считать.

Чойта? Total functional programming

Esteban_Garcia
()

Как тут уже сказали: SQL — не язык программирования.

Логические, стековые и функциональные ЯП за декларативные не считать

Ответ: пустое множество.

buddhist ★★★★★
()
Ответ на: комментарий от Tweaker

QML — это ж джабаскрипт банальный (ну почти). он императивный.

next_time ★★★★★
() автор топика
Ответ на: комментарий от beastie

это же

for(auto &i: scene)
{...
}

такой, не?

next_time ★★★★★
() автор топика
Ответ на: комментарий от buddhist

Как тут уже сказали: SQL — не язык программирования.

да? SQL (ˈɛsˈkjuˈɛl; англ. structured query language — «язык структурированных запросов») — формальный непроцедурный язык программирования (wiki).

next_time ★★★★★
() автор топика
Ответ на: комментарий от MKuznetsov

Да, кстати, пожалуй подойдёт. Вообще, всё семейство языков, предназначенных для сборки приложений.

next_time ★★★★★
() автор топика
Ответ на: комментарий от Legioner

Prolog — логический.

XSLT, пожалуй, подойдёт

next_time ★★★★★
() автор топика
Ответ на: комментарий от next_time

Прошу прощения, не обратил внимания на эти статьи из Всемирного Словаря Обязательных к Употреблению Определений.

buddhist ★★★★★
()
Последнее исправление: buddhist (всего исправлений: 1)
Ответ на: комментарий от next_time

Вообще, всё семейство языков, предназначенных для сборки приложений.

можно добавить все семейства языков «соединяющих входы с выходами», то есть всякие Verilog`и и иже с ними. Они скорее декларативные чем нет, хотя и на грани :-)

MKuznetsov ★★★★★
()
Ответ на: комментарий от next_time

Sql тоже тогда язык запросов, а не программирования. К чему это словоедство? Что sql, что html/css, что ini это все описание чего-то, по чему можно построить автомат некоторого рода. У нас тут XY проблема или что, не томи?

arturpub ★★
()
Ответ на: комментарий от arturpub

SQL (ˈɛsˈkjuˈɛl; англ. structured query language — «язык структурированных запросов») — формальный непроцедурный язык программирования,

next_time ★★★★★
() автор топика
Ответ на: комментарий от next_time

Прокачивай свою ищейку:

https://github.com/nikodemus/esrap

https://common-lisp.net/project/asdf/

Вообще CL - самый натуральный язык для поклёпки сабжей на базе s-exp. По части вопроса:

Какие декларативные семейства ЯП (кроме SQL) вам известны?

Я сам создал 2 более-менее навороченных языка.

ados ★★★★★
()
Ответ на: комментарий от next_time

Почему? Язык же программирует прорисовку веб-страничек на экране.

ados ★★★★★
()
Последнее исправление: ados (всего исправлений: 1)

подозреваю что в подобной формулировке декларативный язык и язык программирования это дихотомия

Debasher ★★★★★
()
Ответ на: комментарий от next_time

Но это не язык программирования.

Уж всяко не меньше, чем SQL.

Miguel ★★★★★
()
Ответ на: комментарий от Kuzy

Продолжайте наблюдения. Не забывайте писать отчёты!

next_time ★★★★★
() автор топика
Вы не можете добавлять комментарии в эту тему. Тема перемещена в архив.