| Версия для печати темы
Нажмите сюда для просмотра этой темы в оригинальном формате |
| Форум программистов > Функциональные языки: общие вопросы > описание и реализация алгоритма |
| Автор: mrgloom 11.7.2012, 16:35 |
| теоретический вопрос. 1.допустим есть описание алгоритма словестное\умственное. 2.есть его описание на более строгом скажем математическом языке или каком то высокоуровневом. 3.и есть его реализация. функциональные языки вроде как постулируют "что я хочу получить", а "а не как я это получаю путем последовательности действий". так вот возник вопрос ко второму шагу, какие тут ограничения, т.е. если я не хочу думать на уровне файлов, циклов и т.д., а например пишу "получить все файлы в папке", а компилятор ищет в репозитории уже реализованных алгоритмов(без разницы на чем написанных) подходящий алгоритм для моей системы. т.е. кончено понятно, что такой язык будет не гибкий и будет скорее недопонимае пишешь одно-получаешь не совсем то. но вопрос в том какой предел на "высокоуровневость" языка? |
| Автор: baldina 14.8.2012, 13:15 |
видимо предельный язык - человеческий. |
| Автор: baldina 16.8.2012, 14:13 |
существуют нечеткие множества, теория возможностей, нейронные сети... к тому же разговор о пределе. предел это горизонт. |
| Автор: mrgloom 17.8.2012, 15:50 |
| ну вообще изначально я имел ввиду из-за того что мы пишем код программы "что я хочу получить", а "а не как я это получаю путем последовательности действий" не возможно ли по "описанию" алгоритма находить код в неком общем репозитории? например получить все чётные X из множества мы лишь описываем, что хотим получить. конечно можно это заменить на get_all_X_numbers() и найти по описанию и скачать библиотеку, но возможно в разных библиотеках под этим понимается разное. вообщем я имею ввиду что тут необходим некий лаконичный язык, но однозначно интерпретируемый, пока это похоже подходит только для математики. |
| Автор: baldina 17.8.2012, 17:07 | ||||||||
| с одной стороны, есть декларативные языки, которые как раз позволяют писать программу, объясняя что нужно получить, не описывая сам алгоритм (Пролог, например). с другой стороны, существуют "черные ящики", где хранятся реализации алгоритмов, это - библиотеки. в т.ч. есть библиотеки, в которых есть функция "получить все файлы в папке". организовать хранилище "черных ящиков", в которых реализованы задачи (более высокоуровневые, чем простые алгоритмы), возможно, но есть затруднение: что бы их применять требуется унифицированный интерфейс. применяя библиотеки, унификацию интерфейса обеспечивает программист, вручную. в данном случае, как я понял, речь идет о мета-языке, который переводит некоторое (почти человеческое) описание в формальные требования, а в используемой библиотеке каждая функция снабжена формальным описанием. что ж, это возможно. но, боюсь, идея сводится на нет необходимостью учить такой язык, т.е. все трудности современного (в т.ч. декларативного) программирования никуда не исчезают. вообще-то современные языки этому имхо во многом удовлетворяют:
конечно, в каждом языке (и библиотеке) свои правила и подпрограммы (функции, классы), но ведь правила придется учить и для вашего мета-языка |
| Автор: baldina 17.8.2012, 17:30 |
| кстати, были неоднократные попытки (CLU, С++) включать в язык спецификации требований (к типам и подпрограммам). правда, целью было увеличения правильности программ |
| Автор: mrgloom 14.1.2014, 10:29 |
| по теме http://habrahabr.ru/post/204124/ |
| Автор: msAvtor 19.6.2014, 20:17 |
| существуют нечеткие множества, теория возможностей, нейронные сети... к тому же разговор о пределе. предел это горизонт. |
| Автор: dorcasmelda 27.5.2020, 09:09 |
| Purchase healthcare research paper services and healthcare coursework writing services since students find help when they visit Healthcare Essay Writing Services. https://researchpapers247.com/healthcare-essay-writing-services/ |