Tools & Methods of Program Analysis (TMPA-2013)
Tsytelov, D., Trifanov, V., Devexperts LLC, St. Petersburg State University
Search of Race Conditions in Java Programs Based on Synchronization Contracts
Created by: Alex Slinko, Senior Ruby on Rails Developer.
Summary:
In a nutshell about one of the most object-oriented programming languages
An alternative viewpoint on development process, testing and deployment
About Ruby in the Web in whole and Rails in particular
Other Ruby interpreters
Statements in VHDL - Sequential Statementsvitaliykulanov
The lecture is about statements in VHDL - classification and principles of work. Sequential statements (operators) in VHDL: principles, operators, examples
Tools & Methods of Program Analysis (TMPA-2013)
Tsytelov, D., Trifanov, V., Devexperts LLC, St. Petersburg State University
Search of Race Conditions in Java Programs Based on Synchronization Contracts
Created by: Alex Slinko, Senior Ruby on Rails Developer.
Summary:
In a nutshell about one of the most object-oriented programming languages
An alternative viewpoint on development process, testing and deployment
About Ruby in the Web in whole and Rails in particular
Other Ruby interpreters
Statements in VHDL - Sequential Statementsvitaliykulanov
The lecture is about statements in VHDL - classification and principles of work. Sequential statements (operators) in VHDL: principles, operators, examples
Alasql.js - SQL база данных на JavaScript / Андрей Гершун (МАГ КОНСАЛТИНГ)Ontico
AlaSQL - это библиотека для обработки данных с помощью языка SQL, которая написана на JavaScript и может работать в браузере (в том числе, и в режиме WebWorker) или Node.js. Библиотека может быть использована в приложениях для обработки данных, а также для решения задач ETL (extract-transform-loading), таких как приложения бизнес-аналитики.
Тезисы - http://frontendconf.ru/2015/abstracts/1713
Мы любим ОПП, так для чего же нам его мешать с ФП? Краткий обзор функциональных возможностей Java.
Спикер — Иван Сербинюк — teamlead Компания Rooky Pro
Уровень аудитории — Теория есть, начальный опыт применения
Цель доклада – Обучение
В презентации затрагиваются следующие темы:
Три столпа ООП
Что отсутсвует в js
"this" и как это можно изменить
"prototype" или / и "__proto__"
что делает "new"
как убить конструктор
разные способы создания объектов
наследование
The lecture is about structural description of projects in VHDL: component declaration, component instantiation, for...generate, if...generate statements
Из презентации вы узнаете:
— как работает database/sql;
— интерфейс и реализации database/sql/driver;
— обзор популярных ORM и что с ними не так;
— как мы делали свой лучший ORM;
— и почему столько раз его переделывали.
TypeScript: особенности разработки / Александр Майоров (Tutu.ru)Ontico
TypeScript – светлое будущее ES6 уже вчера.
Почему не "Кофе"? Чай полезней.
Что не так с Flow от Facebook?
Реальная практика использования: плюсы и минусы.
Не VisualStudio единым. Особенности работы в других IDE.
Интеграция с уже существующим JS кодом.
Использование совместно с RequireJS. Подводные камни.
Использование TypeScript совместно с React.
TypeScript и Angular.
Плюшки, которых нет в ES6/7 (пока нет): [static] enum, интерфейсы, private, protected, декораторы... Что дают и зачем?
Alasql.js - SQL база данных на JavaScript / Андрей Гершун (МАГ КОНСАЛТИНГ)Ontico
AlaSQL - это библиотека для обработки данных с помощью языка SQL, которая написана на JavaScript и может работать в браузере (в том числе, и в режиме WebWorker) или Node.js. Библиотека может быть использована в приложениях для обработки данных, а также для решения задач ETL (extract-transform-loading), таких как приложения бизнес-аналитики.
Тезисы - http://frontendconf.ru/2015/abstracts/1713
Мы любим ОПП, так для чего же нам его мешать с ФП? Краткий обзор функциональных возможностей Java.
Спикер — Иван Сербинюк — teamlead Компания Rooky Pro
Уровень аудитории — Теория есть, начальный опыт применения
Цель доклада – Обучение
В презентации затрагиваются следующие темы:
Три столпа ООП
Что отсутсвует в js
"this" и как это можно изменить
"prototype" или / и "__proto__"
что делает "new"
как убить конструктор
разные способы создания объектов
наследование
The lecture is about structural description of projects in VHDL: component declaration, component instantiation, for...generate, if...generate statements
Из презентации вы узнаете:
— как работает database/sql;
— интерфейс и реализации database/sql/driver;
— обзор популярных ORM и что с ними не так;
— как мы делали свой лучший ORM;
— и почему столько раз его переделывали.
TypeScript: особенности разработки / Александр Майоров (Tutu.ru)Ontico
TypeScript – светлое будущее ES6 уже вчера.
Почему не "Кофе"? Чай полезней.
Что не так с Flow от Facebook?
Реальная практика использования: плюсы и минусы.
Не VisualStudio единым. Особенности работы в других IDE.
Интеграция с уже существующим JS кодом.
Использование совместно с RequireJS. Подводные камни.
Использование TypeScript совместно с React.
TypeScript и Angular.
Плюшки, которых нет в ES6/7 (пока нет): [static] enum, интерфейсы, private, protected, декораторы... Что дают и зачем?
Tech Talks @NSU: Как приручить дракона: введение в LLVMTech Talks @NSU
http://techtalks.nsu.ru
Видеозапись: http://www.youtube.com/watch?v=v7uBLSm6ft8
06 октября 2015. Как приручить дракона: введение в LLVM (Дмитрий Кашицын, HDsoft)
«В этом докладе мы кратко расскажем о таком звере, о котором много кто слышал, но немногие щупали. Что такое компилятор на самом деле? Чем LLVM отличается от других компиляторов? Как в LLVM происходит компиляция программы, как работают оптимизации? Наконец, какой путь проходит программа от разбора исходного текста до генерации исполняемого файла?
Лекция будет обзорной и не потребует от слушателей глубоких знаний теории компиляторов.»
Лекция прочитана в рамках проекта Tech Talks @NSU – серии открытых лекций о разработке ПО и карьере в IT, проводимых в Новосибирском государственном университете.
Подробности: http://techtalks.nsu.ru
10 июня 2015. Дмитрий Кашицын (HDsoft) дает обзор LLVM.
http://techtalks.nsu.ru
Видеозапись: https://plus.google.com/events/ctes98f7uhf19t5jlvlbk24dan4
В этом докладе мы кратко расскажем о таком звере, как LLVM, о котором много кто слышал, но немногие щупали. Что такое компилятор на самом деле? Чем LLVM отличается от других компиляторов? Как в LLVM происходит компиляция программы, как работают оптимизации? Наконец, какой путь проходит программа от разбора исходного текста до генерации исполняемого файла?
Лекция будет обзорной и не потребует от слушателей глубоких знаний теории компиляторов.
Лекция прочитана в рамках проекта Tech Talks @NSU – серии открытых лекций о разработке ПО и карьере в IT, проводимых в Новосибирском государственном университете.
Подробности: http://techtalks.nsu.ru
Руслан Гроховецкий "Как Python стал делать погоду в Яндексе"Yandex
2 июля 2011, Я.Субботник в Екатеринбурге
Руслан Гроховецкий "Как Python стал делать погоду в Яндексе"
О докладе:
Про Python и Django: зачем нужна красота и простота перфекционистам с дедлайнами, на примере Яндекс.Погоды.
Когда число сервисов, которые делаются в Яндексе, стало возрастать, дедлайны — поджимать, а от процесса разработки требовалось стать более гибким, возникла потребность в свежих решениях. В докладе на примере Яндекс.Погоды рассказывается, как в Яндексе делают сервисы с помощью языка Python и веб-фреймворка Django.
"Formal verification of C code" Efremov D.V.
The talk covers the issue of developing correct software applying one of the types of static code analysis. The speaker will also address the matters of using such methods, their weaknesses and limitations, as well as the results they can guarantee.
PHDays VII, PDUG section, Moscow, May 24 2017.
"Формальная верификация кода на языке Си" Ефремов Д.В.
Доклад посвящен разработке корректного программного обеспечения с применением одного из видов статического анализа кода. Будут освещены вопросы применения подобных методов, их слабые стороны и ограничения, а также рассмотрены результаты, которые они могут дать. На конкретных примерах будет продемонстрировано, как выглядят разработка спецификаций для кода на языке Си и доказательство соответствия кода спецификациям.
Доклад представлен на конференции PHDays VII (2017) 24 мая в секции PDUG.
Доклад посвящен разработке корректного программного обеспечения с применением одного из видов статического анализа кода. Будут освещены вопросы применения подобных методов, их слабые стороны и ограничения, а также рассмотрены результаты, которые они могут дать. На конкретных примерах будет продемонстрировано, как выглядят разработка спецификаций для кода на языке Си и доказательство соответствия кода спецификациям.
1. Алгоритмы + Структуры данных = Программы.
2. Виды данных.
3. Машинное представление данных.
4. Понятие алгоритма.
5. Парадигмы программирования: императивная, функциональная, логическая.
6. Язык C, его история.
7. Структура C-программы.
8. Сборка программы: компиляция и линковка.
Solit 2014, EcmaScript 6 in Action, Трухин Юрий solit
Юрий Трухин, Россия. Эксперт по облачным технологиям хостинговой компании InfoboxCloud. В прошлом – обладатель статуса Microsoft Most Valuable Professional. Гик, стратег, разработчик. Подробнее на trukhin.com
«Обзор InfoboxCloud для разработчиков». Development секция. Высокий уровень подготовки. Для разработчиков.
В этом докладе будет рассказано об устройстве InfoboxCloud из первых рук, о деталях внутренней реализации, о том, какую пользу несет облако для разработчиков и о будущем InfoboxCloud. Будут рассмотрены 2 кита облачных технологий: IaaS и PaaS без vendor-lock. Отличная возможность спросить обо всём, что касается PaaS/IaaS непосредственно архитектора и разработчика этих систем.
«EcmaScript 6 in Action». Development секция. Для разработчиков.
Поговорим о том, как жизнь разработчиков изменится с приходом нового стандарта.
Функциональное программирование с использованием библиотеки fp-ts | Odessa Fr...OdessaFrontend
Дмитрий Ховрич рассказывает как использовать строгую типизацию TypeScript и писать надёжный код в функциональном стиле. А также делится знаниями как использовать функторы и монады в ежедневной фронтенд разработке.
3. теория категорий- исчисление
Основы
λ
Чистые функции
Функции высшего
порядка
Неизменяемость
Каррирование Рекурсия Композиция функций
Алгебраические
типы данных
Pattern matching
Специализированные
функции
Функторы
Параметрический
полиморфизм
Монады
8. Чистые функции (pure functions)
λ
Побочные эффекты
•Запись в файл
•Чтение из файла
•Запрос к базе данных
•Глобальные переменные
•console.log(‘Hello’)
77...
9. Чистые функции (pure functions)
λ
var pushed = push100(
var array = [1, 2, 3];
function push100(
);
) {
return array;
array.push(100);
E//[1, 2, 3, 100]
E//[1, 2, 3, 100, 100]
}
11. Чистые функции (pure functions)
λ
var pushed = push100(
function push100(
);
) {
array.push(100);
array
[1, 2, 3]
return array;
}
console.log('Pushing to arrayEE...');
12. Чистые функции (pure functions)
λ
var pushed = push100(
function push100(
);
) {
array.push(100);
array
[1, 2, 3]
return array;
}
saveToDatabase(array);
13. Чистые функции (pure functions)
λ
var pushed = push100(
function push100(
);
) {
array.push(100);
array
[1, 2, 3]
return array;
}
launch(🚀🚀🚀🚀);
14. λ Функции высшего порядка (higher-order)
•Функции обычные значения
•Функции принимают функции
•Функции возвращают функции
•Абстракция над действием
•Callbacks, promises
•Filter, map, reduce
•Похоже на DI в OOP
15. λ Функции высшего порядка (higher-order)
function delay5(launch) {
setTimeout(function() {
launch();
}, 5000);
}
delay5(function() {
console.log("Launching 🚀🚀🚀🚀");
});
E// Через 5 секунд
E// Launching 🚀🚀🚀🚀
16. λ Каррирование (curring)
•Преобразует функцию с
несколькими аргументами, в
функцию с меньшим количеством
аргументов
•Создает функции с
“предзаполненными” аргументами
•Rambda.js
17. λ Каррирование (curring)
var logo = function(main) {
return function(second) {
console.log("Logo is: ".concat(main, " and ", second));
}
}
var bearLogo = logo(“🐻”);
var bearAndBeerLogo = bearLogo(“🍺");
E// Logo is: 🐻 and 🍺
var bearAndRocketLogo = bearLogo("🚀");
E// Logo is: 🐻 and 🚀
19. λ Рекурсия (recursion)
•Функция вызывает сама себя
•Проверяется условие для выхода
•Нет побочных эффектов
•Локальные переменные не
изменяются
•Оптимизация часть стандарта, но
реализованные еще нет на всех
платформах
23. λ Что с этим делать ?
Императивная
оболочка
Функциональное
ядро
24. λ С чего начать ?
JavaScript
Разделить вычисления
и побочные эффекты
Заменить все циклы на
filter, map и reduce
Библиотеки
Ramda
Immutable.js
Lodash
Underscore.js
Типизация
Flow
Транскомпиляция
С типами Без типов
ClojureScript
TypeScript
Elm
ReasonML
PureScript
25. Сложностиλ
•Другая парадигма, нужно время
чтобы привыкнуть
•Много библиотек, плохое
взаимодействие
•Примеры и документация часто в
императивном стиле