Функциональное программирование::Журнал СА 10.2014
www.samag.ru
     
Поиск   
              
 www.samag.ru    Web  0 товаров , сумма 0 руб.
E-mail
Пароль  
 Запомнить меня
Регистрация | Забыли пароль?
Журнал "Системный администратор"
Журнал «БИТ»
Наука и технологии
Подписка
Где купить
Авторам
Рекламодателям
Архив номеров
Контакты
   

  Опросы
  Статьи

Электронный документооборот  

5 способов повысить безопасность электронной подписи

Область применения технологий электронной подписи с каждым годом расширяется. Все больше задач

 Читать далее...

Рынок труда  

Системные администраторы по-прежнему востребованы и незаменимы

Системные администраторы, практически, есть везде. Порой их не видно и не слышно,

 Читать далее...

Учебные центры  

Карьерные мечты нужно воплощать! А мы поможем

Школа Bell Integrator открывает свои двери для всех, кто хочет освоить перспективную

 Читать далее...

Гость номера  

Дмитрий Галов: «Нельзя сказать, что люди становятся доверчивее, скорее эволюционирует ландшафт киберугроз»

Использование мобильных устройств растет. А вместе с ними быстро растет количество мобильных

 Читать далее...

Прошу слова  

Твердая рука в бархатной перчатке: принципы soft skills

Лауреат Нобелевской премии, специалист по рынку труда, профессор Лондонской школы экономики Кристофер

 Читать далее...

1001 и 1 книга  
19.03.2018г.
Просмотров: 9932
Комментарии: 0
Потоковая обработка данных

 Читать далее...

19.03.2018г.
Просмотров: 8141
Комментарии: 0
Релевантный поиск с использованием Elasticsearch и Solr

 Читать далее...

19.03.2018г.
Просмотров: 8248
Комментарии: 0
Конкурентное программирование на SCALA

 Читать далее...

19.03.2018г.
Просмотров: 5223
Комментарии: 0
Машинное обучение с использованием библиотеки Н2О

 Читать далее...

12.03.2018г.
Просмотров: 5907
Комментарии: 0
Особенности киберпреступлений в России: инструменты нападения и защита информации

 Читать далее...

Друзья сайта  

 Функциональное программирование

Архив номеров / 2014 / Выпуск №10 (143) / Функциональное программирование

Рубрика: Карьера/Образование /  Образование в сети

Игорь Штомпель ИГОРЬ ШТОМПЕЛЬ, инженер, системный администратор. Сфера профессиональных интересов – свободное программное обеспечение, keepercoder@gmail.com

Функциональное программирование

Различные интеллектуальные системы занимают все больше места в нашем окружении. При этом интеллект цифровых помощников становится все совершеннее и со временем только улучшается. В этом обзоре разберем, где можно научиться функциональному программированию, которое является основой моделирования искусственного интеллекта

Основы функционального программирования

  • Авторы: Л.В. Городняя.
  • Учебное заведение: Интернет-Университет Информационных Технологий (ИНТУИТ, intuit.ru).
  • Специальность: Программист.
  • Лекции: 15.
  • Материалы: Текст.
  • Уровень сложности: Специалисты.
  • Сертификат: Да.
  • Источник: http://old.intuit.ru/department/pl/funcpl.

Начать изучение функционального программирования (ФП) следует с данного курса, в котором теоретическая часть хорошо подкреплена практикой. Слушателям предлагается ознакомиться с базовыми идеями функционального программирования, а также со сферой его применения, историей языка Лисп (LISP) и его влиянием на развитие информационных технологий.

Изучая Лисп, мы познакомимся с символьным представлением программ. На практике для его иллюстрации используются формализм рекурсивных функций и простые алгоритмы символьной обработки. Слушатели узнают, что определения в Лисп могут быть рекурсивными, и подробности их использования, а также изучат метод выбора семантического базиса для класса решаемых задач на примере организации информационной обработки символьными выражениями.

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

Большой темой курса стали методы расширения функциональных систем – с помощью иерархии разнородных контекстов определений, а также обобщения базовой схемы обработки символьных выражений и представленных с их помощью функциональных форм на основе списков свойств атомов. Также рассмотрен функциональный подход к низкоуровневому программированию, который использовался при создании Лисп и компиляции функциональных программ.

Отметим еще навыки и знания, которые слушатели смогут приобрести, пройдя курс до конца: использование структур данных, которые удобны при динамической обработке информации; понимание связи функционального программирования и объектно-ориентированного; умение обобщать процесс информационной обработки на базе возможностей отложенных действий (lazy evaluation) и многое другое.

Курс является хорошим введением в ФП, особенно для тех, кто хочет начать с языка программирования Лисп.

Введение в программирование на Лиспе

  • Авторы: Л.В. Городняя, Н.А. Березин.
  • Учебное заведение: Интернет-Университет Информационных Технологий (ИНТУИТ, intuit.ru).
  • Специальность: Программист.
  • Лекции: 12.
  • Материалы: Текст.
  • Уровень сложности: Специалисты.
  • Сертификат: Да.
  • Источник: http://old.intuit.ru/department/pl/lisp.

Авторы считают, что знакомство с Лиспом «важная составляющая современного образования в области информатики». Более того, на их взгляд, этот язык является ключом для исследования основных задач системного программирования, а также искусственного интеллекта. Особенностью курса является то, что в качестве основного программного обеспечения в нем задействуется GNU Clisp.

Лекции начинаются с введения базовых понятий. Слушатели узнают о концепции символьной обработки данных, об обозначениях и определениях, списках и т.п., познакомятся с основами символьной обработки данных и принципами ФП. Отталкиваясь от этой базы, авторы предлагают освоить работу GNU Clisp: диалог с ней, запуск Лисп-программ из файлов, пошаговое вычисление и т.п.

В целом в ходе прохождения курса, помимо указанного выше, можно приобрести навыки и знания о структурах данных, которые используются при символьной обработке информации; о методах программирования на Лиспе и запуске программ, написанных на нем; о приемах создания практичных решений на Лиспе на базе отображений и функционалов; о методах повышения эффективности вычислений на основе ленивых вычислений, работы с событиями и т.п.

Кроме того, лекции позволяют научиться эффективной работе с определениями функций и освоить механизмы эффективной работы со структурами данных в памяти на базе свойств атомов, работы с памятью и др., а также работе с расширениями и приложениями Лиспа.

В целом курс позволяет познакомиться с основами языка Лисп и получить базу для дальнейшего совершенствования навыков программирования на этом языке.

Функциональное программирование

  • Авторы: Д.В. Сошников.
  • Учебное заведение: Интернет-Университет Информационных Технологий (ИНТУИТ, intuit.ru).
  • Специальность: Программист.
  • Лекции: 30.
  • Материалы: Видео, презентации (в формате .ppt).
  • Уровень сложности: Специалисты.
  • Сертификат: Да.
  • Источник: http://old.intuit.ru/department/pl/funcprog.

Курс преследует цель ознакомления слушателей с основами ФП (как дисциплины на стыке программирования и дискретной математики), научить программированию на F#, а также показать связь между теорией информатики (Computer Science в авторской терминологии) и программированием. Ориентирован как на практикующих программистов, так и на математиков и студентов.

Начало традиционное – введение понятия ФП, история вопроса, актуальность изучения ФП и его место в реальной жизни. Рассматриваются проблемы абстракции и декомпозиции при функциональном подходе, проблемы декларативного программирования.

Свое дальнейшее развитие рассмотрение ФП в курсе получает в виде изучения ряда специальных тем. В частности, слушатели узнают о функциональных структурах данных, лямбда-исчислениях, деревьях, рекурсии (виды, структуры данных, хвостовая), работы со списками, редукции (в том числе нормального и апликативного порядка), функциях нескольких аргументов, каррировании, условных выражениях, последовательностях и ленивых вычислений на F#, мемоизации, комбинаторах и комбинаторной логике и т.п.

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

Особенностью курса являются примеры построения графика 2D-функции, работы со списками, реализации машины Тьюринга на F#.

В целом лекции позволяют заложить отличный фундамент в области ФП, но с одной оговоркой: с учетом специфики F# они в первую очередь подойдут тем, кто работает в операционной системе Windows в среде Visual Studio.

Функциональное программирование

  • Авторы: А. Кубенский.
  • Учебное заведение: Проект Лекториум (lektorium.tv).
  • Специальность: Программист.
  • Лекции: 14.
  • Материалы: Видео.
  • Уровень сложности: Специалисты.
  • Сертификат: Нет.
  • Источник: http://www.lektorium.tv/course/22848.

Помимо Лиспа и F#, важное место среди языков ФП занимает Haskell. Именно на базе этого языка и основан предлагаемый курс, который автор начинает с введения в ФП. Из него слушатели узнают об основах функционального стиля и о языке программирования Haskell. Что касается последнего, то на этапе введения предлагается ознакомиться с его основными типами данных и интерпретаторами, а также с определением функций в нем. Кстати, на этапе введения освещается интересный вопрос о том, почему не получается программировать в функциональном стиле на традиционных языках.

Основываясь на отмеченном выше базисе, автор переходит к рассказу о списках и функциях высших порядков, среди прочего позволяя освоить реализацию эффективных рекурсивных функций, концевой рекурсии и др.

Не остаются в стороне и ленивые вычисления, их, как и карринг, автор раскрывает следующими, уделяя внимание частичной параметризации функций, каррингу и сечениям, бесконечным спискам и т.п. Кроме того, немало места в лекциях отведено лямбда-исчислениям. В частности, слушатели узнают об их основах в виде лямбда-выражений и редукции, нормальной формы, а также о чистом лямбда-исчислении в представлении логических значений и функций, а также списков и арифметики целых чисел.

В заключение курса слушатели смогут ознакомиться с такой проблемой, как интерпретация и компиляция функциональных программ. Речь идет об Eval/Apply-интерпретаторе, эффективной и ленивой интерпретациях, SECD-машине. Другие проблемы, которым посвящены заключительные лекции, – представление последовательных процессов в ФП и введение в комбинаторную редукцию.

Отдельно стоит отметить то, что ряд лекций посвящен таким темам, которые не всегда находят отражение в курсах, посвященных ФП, как техника «завязывания узлов» и системы ФП. В рамках первой предлагается познакомиться с примерами программирования регулярных выражений и функционального представления графов, а в рамках второй – с Лисп и FP. Курс можно рассматривать как позволяющий расширить представление в области ФП. Его можно изучать после прохождения первых двух описанных в этой статье, если вы не специализируетесь на платформе Windows. Если же вы интересуетесь ФП в целом, то можно изучить все курсы из нашего обзора и получить цельное представление о его состоянии и реализациях соответствующих программных систем, их возможностях и особенностях использования на нескольких платформах.


Комментарии отсутствуют

Добавить комментарий

Комментарии могут оставлять только зарегистрированные пользователи

               Copyright © Системный администратор

Яндекс.Метрика
Tel.: (499) 277-12-41
Fax: (499) 277-12-45
E-mail: sa@samag.ru