Similar presentations:
История возникновения и развития функционального программирования. Лекция 1
1.
Лекция 1История возникновения и развития функционального программирования
2.
Что такое функциональноепрограммирование?
Функциональное программирование — раздел дискретной
математики и парадигма программирования, в которой
процесс вычисления трактуется как вычисление значений
функций в математическом понимании последних. Основой
всех языков функционального программирования является
лямбда-исчисление (λ-исчисление), которое описывается как
«самый маленький универсальный язык программирования
в мире».
3.
Алонзо ЧёрчАлонзо Черч родился 14 июня 1903 года в городе
Вашингтон, США.
Известность пришла к Черчу после разработки
теории лямбда-исчислений. Данная теория
последовала за его знаменитой статьей 1936 года, в
которой показал существование так называемых
«неразрешимых задач».
Статья предшествовала знаменитому
исследованию Алана Тьюринга на тему проблемы
остановки, в котором также продемонстрировано
существование задач, неразрешимых
механическими способами.
Также Черчу принадлежит работа, в которой
доказал, что проблема для исчисления предикатов
неразрешима.
4.
Джон МаккартиДжон Маккарти родился 4 сентября 1927 в Бостоне,
умер 24 октября 2011 в Стэнфорде.
Отстаивал использование математической логики для
искусственного интеллекта. В 1958 разработал язык
программирования LISP и опубликовал его описание в
журнале Communications of the ACM в апреле 1960 года
«Рекурсивные функции символьных выражений
и их вычисление на машине»
В 1961 году публично предположил, что
вычислительные ресурсы и даже определённые
приложения могут распространяться с использованием
бизнес-модели сферы коммунальных услуг, но эта идея
вышла из моды к середине 1970 годов, начиная с 2000-х
годов эта она получила воплощение в облачных
вычислениях.
5.
История функциональных языков6.
Эволюция языков программирования7.
Популярность языковпрограммирования начало
Ranking the popularity of programming
languages
This week John Myles White and I (Drew
Conway) set out to gather data that measured
both the number of projects using various
languages, as well as their community sizes.
While neither metric has a straightforward
means of collection, we decided to exploit data
on Github and StackOverflow to measure each
respectively. Github provides a popularity
ranking for each language based on the number
of projects, and using the below R function we
were able to collect the number of questions
tagged for each language on StackOverflow.
http://www.dataists.com/2010/12/rankingthe-popularity-of-programming-langauges/
8.
Популярность языковпрограммирования 2015 и 2020 гг.
9.
Популярность языковпрограммирования 2020 и 2022 гг.
10.
Какой язык программированиялучший (2015 и 2020 гг.)?
11.
Популярность языковпрограммирования 2011 и 2020 гг.
12.
Популярность языковпрограммирования обзор
13.
Императивная парадигма•в исходном коде программы записываются инструкции (команды);
•инструкции должны выполняться последовательно;
•данные, получаемые при выполнении предыдущих инструкций, могут читаться
из памяти последующими инструкциями;
•данные, полученные при выполнении инструкции, могут записываться в память.
14.
Функциональная парадигма•Не используется оператор присваивания для изменения состояний
•Не используются циклы
•Выполнение последовательности команд не имеет смысла, т.к. одна команда не
влияет на выполнение следующей
•Функции можно передавать в другие функции в качестве аргументов и
возвращать в качестве результата, результатом вычислений тоже может быть
функция
•Вместо циклов используется рекурсия
15.
Декларативная парадигма•задаётся спецификация решения задачи, то есть описывается, что представляет
собой проблема и ожидаемый результат;
•не используют понятия состояния, в частности, не используют переменные и
операторы присваивания;
• обеспечивается ссылочная прозрачность.
16.
Спасибо за внимание17.
Классификация языковпрограммирования