Существуют ли языки программирования, предназначенные для определения решения данной проблемы вместо определения инструкций по ее решению? Таким образом, можно определить, как должно выглядеть решение или конечный результат, и интерпретатор языка определит, как достичь этого результата. Глядя на list of programming languages, я не уверен, как начать изучать это.Языки программирования, которые определяют проблему вместо решения?
Лучшие примеры, которые я могу сейчас представить, чтобы помочь проиллюстрировать то, что я пытаюсь спросить, - это SQL и MapReduce, хотя это оба типа мини-языков, предназначенных для извлечения данных. Но при написании операторов SQL или MapReduce вы определяете конечный результат, и БД решает наилучший курс действий для достижения конечного набора результатов.
Я мог видеть эти типы языков, если они существуют, используется для хрустания большого количества данных или поиска решений для набора уравнений. Язык мечты был бы тем, который мог бы интерпретировать определенную проблему, определять, какие части являются параллелизуемыми, и выполнять решение по нескольким процессам/ядрам/ящикам.
Возблагодарите мой вопрос, пожелайте мне ответа! –
Звучит как другая идея при переносе проблемы ко мне, так же, как и в спецификации языка. Если вы создаете что-то вроде этого, вы либо теряете много энергии (SQL и MapReduce являются узкоспециализированными и бесполезными для вещей общего назначения), или вы просто создаете что-то сложное, как то, что вы пытаетесь заменить. – workmad3
@ workmad3: Полностью согласен, что эти типы языков будут либо специализированными, либо слишком смехотворными и излишне сложными для практического использования. Тем не менее, похоже, что для таких языков есть ниши, и мы не узнаем, насколько они жизнеспособны, пока мы не попробуем, верно? –