Ббк 32. 973-018 г рецензент канд физ мат наук, Ф. А. Мурзин
Download 278.16 Kb.
|
FIT-Gor-PP3
Пример. 20. Выражение «-1» через «+1» Решение получилось через введение формально усложненной функции F со вспомогательными параметрами, которое противоречит интуитивному стремлению к монотонности при движении от простого к сложному. Возможны ограничения на типы данных, допускаемых в качестве аргументов, в таком случае речь идет о частичных функциях. Эти функции должны выяснять допустимость фактических параметров и сообщать о несоответствии. Удобно, если часть такой работы берет на себя компилятор в классической традиции статического контроля правильности типов данных, но динамический контроль типов данных в условиях, характерных для современных информационных сетей, может быть надежнее, чем традиционный статический анализ, сложившийся для замкнутых, защищенных от несанкционированного доступа конфигураций, обеспечивающий гарантии сохранения скомпилированного кода программы при его использовании. (Имеется в виду вероятность искажения скомпилированного кода при его эксплуатации на компьютере в сетях.) Это приводит к компромиссу в виде объектно-ориентированного программирования, допускающего динамический контроль типов данных. Важно отметить, что преимущества ФП обусловлены не только семантикой используемых языков программирования, но и особенностями его поддержки в системах программирования: представления данных (чисел, строк, имѐн, списков) не ограничены по длине; полностью автоматизировано первичное и повторное распределение памяти – «сборка мусора»; выделен комплекс базовых средств для программирования без побочных эффектов в памяти программы, достаточный для представления ленивых вычислений, отображений и других функций высших порядков; – встроены средства управления вычислениями, расширяющие возможности СП в направлении основных парадигм программирования. Функциональные ЯП Идеи ФП достаточно полно поддержаны в проекте Lisp 1.5, выполненном Дж. Маккарти и его коллегами. В этом исключительно мощном языке не только реализованы основные средства, обеспечившие практичность и результативность ФП, но и впервые опробован целый ряд поразительно точных построений, ценных как концептуально, так и методически и конструктивно, понимание и осмысление которых слишком отстает от практики применения. Понятийно функциональный потенциал языка Lisp 1.5 в значительной мере унаследован стандартом Common Lisp. Языки ФП достаточно разнообразны. Существует и активно применяется более трехсот диалектов Lisp-а и родственных ему языков: Interlisp, muLisp, Clisp, Sсheme, ML, Cmucl, Logo, Hope, Sisal, Haskell, Miranda и др. При сравнении языков и парадигм программирования часто классифицируют функциональные языки по следующим критериям: «ленивый» или аппликативный, последовательный и параллельный. Например, ML является аппликативным и последовательным, Erlang – аппликативным и параллельным, Haskell – «ленивым» и последовательным, а Clean – параллельным и «ленивым». Scheme, ML, Hope, Haskell – типичные представители академического стандарта LISP1, а Common Lisp, Clisp, Sisal, Cmucl – производственного стандарта LISP2. В рамках проекта .Net выполнено большое число реализаций различных языков программирования, в числе которых Haskell, Sml, Scheme, Mondrian, Mercury, Perl, Oberon, Component Pascal, Разработан F# – новый язык ФП. Еще большее разнообразие предлагает проект DotGNU, пытающийся отстоять приоритет в области разработки переносимого ПО. Развиваются линии учебного и любительского программирования и методично осваивается техника выстраивания иерархии абстрактных машин при определении языков программирования. Разработка языков функционального программирования (ЯФП) и приспособленность средств ФП к быстрой отладке, верификации, их лаконизм, гибкость, конструктивность и моделирующая сила позволяют рассматривать ФП как основу информационной среды обучения современного программирования на всех уровнях проблематики от алгоритмизации до включения в социальный контекст приложений разрабатываемых ИС. Download 278.16 Kb. Do'stlaringiz bilan baham: |
ma'muriyatiga murojaat qiling