Языки программирования

Jan 27, 2021 02:33

Я тут понял удивительную вещь. Одно из тех открытий, когда вдруг понимаешь, что всю жизнь говорил прозой. Ну когда обнаруживаешь, что ты какую-то вещь считал естественной, считал что вообще все вокруг так думают, а оказывается, ровно наоборот: так не думает почти никто ( Read more... )

Leave a comment

Comments 53

chaource January 27 2021, 15:23:12 UTC
До появленiя FP, въ трудѣ программиста не было мѣста для математическихъ концепцiй. Ни теорiя категорiй, ни теорiя логическихъ доказательствъ, ни теорiя типовъ, ни HoTT не были нужны, потому что они никакъ не облегчали трудъ программиста и даже вообще не относились къ процессу написанiя программъ. Если посмотрѣть на книгу Кнута "Искусство программированiя", то она заполнена угадыванiемъ того, какъ написать программу и потомъ доказательствомъ, что Кнуту удалось угадать правильно.

Только въ FP математика реально используется для построенiя языка программированiя и для написанiя программъ. Только въ FP построенiе языковъ и программъ можно формализовать достаточно содержательнымъ образомъ, чтобы программистъ могъ думать о программѣ въ терминахъ "здѣсь у меня коварiантный функторъ - здѣсь у меня естественное преобразованiе - значитъ, тутъ тоже долженъ быть коварiантный функторъ" и создавать кодъ, пользуясь этими концепцiями.

Reply

akuklev January 28 2021, 02:05:54 UTC
Мне теперь в ЖЖ очень нехватает лайков. В данный момент, чтобы поставить их ко всём трём вашим комментариям.

Reply

chaource January 28 2021, 11:51:35 UTC
По существу, вы выдвигаете слѣдующую гипотезу: если языкъ программированiя хорошо подходитъ для того, чтобы на немъ записать аксiоматику натуральныхъ чиселъ Пеано, универсальной алгебры, и т.п., то этотъ языкъ программированiя будетъ также хорошъ для написанiя базъ данныхъ, вебъ-браузеровъ и бизнесъ-приложенiй (т.к. языки программированiя въ реальномъ мiрѣ нужны только для этого).

Иными словами, дается рекомендацiя дѣлать такiе языки программированiя, для которыхъ предметная область разнообразныхъ индуктивныхъ алгебраическихъ конструкцiй является "декларативной предметной областью", т.е. чтобы на данномъ языкѣ было легко и просто записать аксiоматику Пеано или аксiомы категорiи или другiя такiя вещи.

Неочевидно, что эта гипотеза вѣрна. Пока что, напримѣръ, неочевидно, что Coq, Agda и Idris существенно облегчаютъ программированiе по сравненiю съ OCaml и Haskell.

Reply

akuklev January 28 2021, 11:58:03 UTC
> По существу, вы выдвигаете слѣдующую гипотезу: [...]

Не совсем; я считаю, что языки программирования в идеале должны в том числе подходить и для этого. Я нигде не утверждаю, что этого достаточно для декларативного описания других предметных областей. Пример языка Coq отлично иллюстрирует эту мысль - в этом языке напрочь отсутствует машинерия для концептуализации чего бы то ни было, выходящего за пределы конструктивной математики. (В Idris 2 это уже не так.)

Reply


ext_3948950 January 29 2021, 10:05:32 UTC
> Ну как можно _хотеть_ работать на языке, на котором _невозможно сказать то, что ты имеешь в виду_?

Как всегда - мы хотим максимальной свободы для СЕБЯ, но минимальной - для соседа. Или для себя же трёхмесячной давности, когда приходится свои же бредни разгребать...

Reply


66george February 10 2021, 18:48:36 UTC
А посмотрите, что я напрограммировал
https://mega.nz/file/igo0zDBC#JgIYMtie3UmKXgDgtWBKzXE25xPA-qvZuKMKQ3y8fFk

Reply

akuklev February 10 2021, 21:46:26 UTC
Эге! Осталось только придумать, где мне взять виндоус, чтобы это запустить :)

Reply

66george February 10 2021, 21:50:15 UTC
Поставьте Qt и попробуйте собрать под Linux (есть шанс, что заработает, хотя я не отлаживал под Linux)

Reply


38irtimd May 20 2021, 11:32:07 UTC
> Но если бы это было так, не было бы затруднений несколькими умелыми штрихами превращать словесные описания в формализованные машинно-читаемые. Раз это далеко не так, значит в словесных описаниях лишь видимость conceputal clarity, а на самом деле что-то существенное замели под ковёр.

это в общем ниоткуда не следует.

практика показывает, что под ковёр заметается как раз что-то занудное. насколько я понимаю, это как раз и есть челлендж всех этих новомодных систем доказательств --- сделать так, чтобы не писать то, что в текущей практике не принято прописывать. именно поэтому так мало доказательств на этих языках. последнее, что я слышал --- какой-то кусок про этальные когомологии кодифицировали. даже не помню, в чём (idris что ли). ну ок, математика 50летней давности.

Reply


66george June 21 2021, 11:45:31 UTC
Мне кажется, я нашёл баг в Факторе. Посмотрите, пожалуйста
https://www.blogger.com/comment.g?blogID=8513438391157777465&postID=8680112867593321902

Reply


Leave a comment

Up