Cyril Slobin (slobin) wrote,
Cyril Slobin
slobin

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

Беда в том, что слишком круто. По крайней мере, моя личная беда. Может быть, это я один такой идиот, не знаю. Дело вот в чём: сколько там наоптимизирует компилятор с Фортрана за счёт своего знания школьной алгебры? Пусть в три раза по сравнению с "наивной" реализацией, вряд ли больше. А умный компилятор с какого-нибудь Хаскелла или J легко может изменить порядок сложности алгоритма. И это не теория, это реальные сегодняшние компиляторы. На этом месте я встаю в тупик. Я не понимаю, как можно писать программу, если по её тексту не видно порядка её сложности!

... Россумовы Универсальные Роботы ...

Tags: tekniko
Subscribe

  • Гендерно-кошачье

    Ланцелот. Как тебя зовут? Кот. Машенька. Ланцелот. Я думал — ты кот. Кот. Да, я кот, но люди иногда так невнимательны. (Е.Шварц, "Дракон")…

  • Именовательное

    На заре отечественной толкинистики, когда знакомство с темой у подавляющего большинства читателей ограничивалось КистяМуровским переводом, многие…

  • Автомобильное - 2

    "Второй раз слово "пикап" было заимствовано в середине XX века для обозначения метода соблазнения посредством автомобиля. Так, пикапами стали…

  • Post a new comment

    Error

    default userpic

    Your IP address will be recorded 

    When you submit the form an invisible reCAPTCHA check will be performed.
    You must follow the Privacy Policy and Google Terms of use.
  • 27 comments

  • Гендерно-кошачье

    Ланцелот. Как тебя зовут? Кот. Машенька. Ланцелот. Я думал — ты кот. Кот. Да, я кот, но люди иногда так невнимательны. (Е.Шварц, "Дракон")…

  • Именовательное

    На заре отечественной толкинистики, когда знакомство с темой у подавляющего большинства читателей ограничивалось КистяМуровским переводом, многие…

  • Автомобильное - 2

    "Второй раз слово "пикап" было заимствовано в середине XX века для обозначения метода соблазнения посредством автомобиля. Так, пикапами стали…