Презентация F функциональный язык «новой» волны Артем Присяжнюк Kiev ALT. NET 2010 онлайн

На нашем сайте вы можете скачать и просмотреть онлайн доклад-презентацию на тему F функциональный язык «новой» волны Артем Присяжнюк Kiev ALT. NET 2010 абсолютно бесплатно. Урок-презентация на эту тему содержит всего 39 слайдов. Все материалы созданы в программе PowerPoint и имеют формат ppt или же pptx. Материалы и темы для презентаций взяты из открытых источников и загружены их авторами, за качество и достоверность информации в них администрация сайта не отвечает, все права принадлежат их создателям. Если вы нашли то, что искали, отблагодарите авторов - поделитесь ссылкой в социальных сетях, а наш сайт добавьте в закладки.
Презентации » Технологии » F функциональный язык «новой» волны Артем Присяжнюк Kiev ALT. NET 2010



Оцените!
Оцените презентацию от 1 до 5 баллов!
  • Тип файла:
    ppt / pptx (powerpoint)
  • Всего слайдов:
    39 слайдов
  • Для класса:
    1,2,3,4,5,6,7,8,9,10,11
  • Размер файла:
    540.35 kB
  • Просмотров:
    39
  • Скачиваний:
    0
  • Автор:
    неизвестен



Слайды и текст к этой презентации:

№1 слайд
F функциональный язык новой
Содержание слайда: F# функциональный язык «новой» волны Артем Присяжнюк Kiev ALT.NET 2010

№2 слайд
Представлюсь Артем Присяжнюк
Содержание слайда: Представлюсь Артем Присяжнюк Технический директор компании ХостТрекер Опыт работы с ФЯ – 10 лет (Ocaml, F#) ХостТрекер – распределенная система мониторинга доступности сайтов a.p@host-tracker.com http://host-tracker.com

№3 слайд
Рожденные в -х F Scala
Содержание слайда: Рожденные в 2000-х F#(2002) Scala (2003) Nemerle (2005) Clojure (2007) C#/VB.NET LINQ/PLINQ, lambda ФЯ от Intel. 2011? Явный уклон в функциональшину

№4 слайд
Содержание слайда:

№5 слайд
Текущий тренд в железе
Содержание слайда: Текущий тренд в железе – мультиядерность Вместо роста ввысь рост в ширь

№6 слайд
Две основные тенденции Приход
Содержание слайда: Две основные тенденции Приход MultyCPU-систем в широкие массы На «десктопе» теперь по идее можно решать более «тяжелые» задачи; Приход масс в интернет Нужны высоконагруженные, высокопроизводительные системы.

№7 слайд
Нужны эффективные программы
Содержание слайда: Нужны «эффективные» программы «заточенные» под мультиядерность. Нужны «эффективные» программы «заточенные» под мультиядерность. В идеале, на N CPU система должна: работать в N раз быстрее; обслуживать в N раз больше пользователей; выполнять в N раз больше транзакций.

№8 слайд
Старые подходы не оправдали
Содержание слайда: Старые подходы не оправдали себя Развития софта не успевает за развитием железа; Софт не эффективно работает на новом железе; Плохо масштабируется; С ростом сложности систем, сложность программ растет экспоненциально.

№9 слайд
Содержание слайда:

№10 слайд
Параллельное программирование
Содержание слайда: Параллельное программирование вышло в массы Нужны языки/платформы/инструменты «с человеческим лицом» для разработки многопотоковых программ; Появление новых ФЯ программирования, дает надежду на появление новых таковых.

№11 слайд
Поддержка параллелизма Старый
Содержание слайда: Поддержка параллелизма «Старый» подход

№12 слайд
Императивный подход
Содержание слайда: Императивный подход Изменяемые данные - да Разделяемые изменяемые данные - да Side эффекты – да Блокировки, синхронизации – да Межпотоковое взаимодействие – разделяемые ресурсы

№13 слайд
Mutable shared state
Содержание слайда: Mutable shared state

№14 слайд
Проблемы с блокировками и
Содержание слайда: Проблемы с блокировками и разделяемыми ресурсами Мало блокировок Много блокировок Неправильное использование блокировок Блокировки в неверном порядке Следствия Dead-lock-и Нарушение целостности данных Race condition Плохая повторяемость (трудность отладки)

№15 слайд
Функциональный подход
Содержание слайда: Функциональный подход Изменяемые данные – нет Разделяемые изменяемые данные – нет Side эффекты – нет Блокировки, синхронизации – нет Межпотоковое взаимодействие – сообщения, Map/Reduce

№16 слайд
Кто использовал
Содержание слайда: Кто использовал функциональное программирование на практике?

№17 слайд
Кто использовал
Содержание слайда: Кто использовал функциональное программирование на практике? Электронные таблицы (Excel) XSLT SQL

№18 слайд
Носители Нового подхода
Содержание слайда: Носители «Нового» подхода Функциональное программирование Agent & message-passing style programming (Erlang) Async Cω Axum LINQ, PLINQ Rx Framework Task Parallel library C# F#

№19 слайд
История F Лямбда-счисление
Содержание слайда: История F# (2002) Лямбда-счисление 1936 Lisp/Schema 1958 ML 1970 Hindley–Milner Система типов

№20 слайд
История F Haskell Seq
Содержание слайда: История F# (2002) Haskell 1990 Seq Workflow (aka Монады) List comprehensions Python 1990 List comprehensions Whitespace indentation

№21 слайд
Развитие языков
Содержание слайда: Развитие языков

№22 слайд
Основные направления развития
Содержание слайда: Основные направления развития языков Упрощение технологий (Пример SGML -> XML) Безопасность кода Перенос рутинных задач на компилятор /рантайм (GC, Type inference) ; Строгая типизация + автоматический вывод типов; Мета программирование Макросы - изменение языка Синтаксис (выразительность, краткость) Потокобезопасность Параллелизм - на уровень языка.

№23 слайд
FP, F , Haskell amp друзья
Содержание слайда: FP, F#, Haskell & друзья как источник идей Движение концепций F# -> C# Generics Lambda LINQ (former monads) Type inference Async List comprehension ?

№24 слайд
F features Краткость Строгая,
Содержание слайда: F# features Краткость Строгая, статическая типизация Выведение типов Pattern matching Clousers Кортежи (Tuples) Currying High-order function

№25 слайд
Что нужно чтобы научиться
Содержание слайда: Что нужно чтобы научиться есть палочками?

№26 слайд
Что нужно чтобы научиться
Содержание слайда: Что нужно чтобы научиться есть палочками? Есть палочками Выкинуть вилки/ложки

№27 слайд
Что нужно чтобы научится
Содержание слайда: Что нужно чтобы научится программировать функционально?

№28 слайд
Что нужно чтобы научится
Содержание слайда: Что нужно чтобы научится программировать функционально? Программировать функционально; Выкинуть из обихода императивные конструкции.

№29 слайд
Выворачиваем с изнанки
Содержание слайда: Выворачиваем с изнанки Императивный стиль -> FP X = x + 1 -> let x = x + 1 For/while -> let rec (tail recursion) If/switch -> pattern matching In/out параметры -> tuples Enum -> variant types Array -> List FP style OO Null -> option type

№30 слайд
Тяжелое наследие прошлого
Содержание слайда: Тяжелое наследие прошлого Thread Safety Any public static ( Shared in Visual Basic) members of this type are thread safe. Any instance members are not guaranteed to be thread safe. Microsoft Help Library 2010

№31 слайд
Выворачиваем с изнанки
Содержание слайда: Выворачиваем с изнанки Паралельное программирование Миграция с lock style на message passing style Использование не мутабельных данных Async First class events

№32 слайд
Асинхронная обработка Ключ к
Содержание слайда: Асинхронная обработка Ключ к построению производительных, хорошо масштабируемых систем; Уши растут из I/O Completion Ports, который очень сложен в использовании; .NET – асинхронность через BeginXXX, EndXXX. Все равно достаточно сложно. Логика расползается.

№33 слайд
Async-workflow Идея спрятать,
Содержание слайда: Async-workflow Идея спрятать, BeginXXX и EndXXX для асинхронных операций. Дать программисту такой же легкий способ выполнять асинхронные операции, как и синхронные.

№34 слайд
Sync code VS Async code
Содержание слайда: Sync code VS Async code

№35 слайд
Erlang Message Passing
Содержание слайда: Erlang Message Passing Concurrency Много легких процессов(agents) Нет общего состояния No sequential bottlenecks Сообщения для коммуникации между процессами Немутабельный состояние - аналогия с системой контроля версий

№36 слайд
Mailbox processing amp
Содержание слайда: Mailbox processing & Message passing style У нас очень много легких агентов которые выполняют некоторую работу; У каждого агента есть Mailbox с очередью, через который он получает сообщения из вне; Агенты могут посылать сообщения как другим агентам, так и себе; У каждого агента есть внутреннее состояние (аналогия с контролем версий)

№37 слайд
Mailbox processing amp
Содержание слайда: Mailbox processing & Message passing style Вся работа происходит асинхронно (Async); Блокирующих операций нет; Сотни тысяч агентов могут жить в десятке потоков из ThreadPool; Все отлично растягивается по доступным процессорам/ядрам

№38 слайд
Demo
Содержание слайда: Demo

№39 слайд
Спасибо за внимание Вопросы?
Содержание слайда: Спасибо за внимание Вопросы?

Скачать все slide презентации F функциональный язык «новой» волны Артем Присяжнюк Kiev ALT. NET 2010 одним архивом:
Похожие презентации