Прочёл я несколько тем в этом форуме, и осознал, что люди тут, насколько я могу судить, знающие. В том числе и теорию. Поэтому и захотелось спросить следующее.
Вот осилил я тексты о семантических доменах, о рекурсии, как о поиске неподвижной точки, и всё такое прочее.
Но вот вообще, никак до меня не доходит, а как из этого всего получается язык программирования? Вроде как, компьютер же не умеет бесконечными структурами оперировать. Так как в том же Haskell представляются какие-нибудь типы, вроде tree a = nothing | node (tree a) a (tree a)? И как он с ними работает? Решением, ведь, такого уравнения является бесконечная структура. Как-то мне кажется очень сомнительным, что Haskell здесь считает неподвижные точки.
Есть что почитать на этот счёт? (Исходники Haskell не предлагать, к сожалению, я в них мало чего понимаю).
Или вот ещё про неподвижные точки. В списке рассылки LLVM частенько проскакивают обсуждения использования этих самых точек для решения каких-то задач. Но там в списке хардкорные разработчики, и из их мудрых слов не понятно, для чего именно эти неподвижные точки нужны. Насколько я примерно понял, речь шла о векторизации циклов. Но какое отношение НТ могут иметь к векторизации?
Можно ли и про это что-то почитать?
Заранее благодарю за ответы.
fixed points, semantic domains, функциональное программирование