Оцените презентацию от 1 до 5 баллов!
Тип файла:
ppt / pptx (powerpoint)
Всего слайдов:
53 слайда
Для класса:
1,2,3,4,5,6,7,8,9,10,11
Размер файла:
2.06 MB
Просмотров:
69
Скачиваний:
0
Автор:
неизвестен
Слайды и текст к этой презентации:
№1 слайд
Содержание слайда: Комбинаторные парсеры для простых смертных
Комбинаторные парсеры для простых смертных
№2 слайд
Содержание слайда: Распределенный API: по 22 сервера в 2-х датацентрах (Америка, Европа).
Распределенный API: по 22 сервера в 2-х датацентрах (Америка, Европа).
Разнообразные клиентские приложения: 40 desktop и web приложений.
Датацентр обрабатывает 12 000 запросов в минуту.
Ресурсоёмкие запросы и пакетные запросы.
№3 слайд
Содержание слайда: Возникла необходимость добавить новый источник данных HBase.
№4 слайд
Содержание слайда: NoSql – <ключ значение>;
NoSql – <ключ значение>;
написана на Java;
аналог Google Big table;
не является заменой SQL;
интерфейсы взаимодействия: REST, Java API, Apache THRIFT.
№5 слайд
Содержание слайда: Apache Avro — система сериализации данных.
Apache Avro — система сериализации данных.
Система использует JSON для определения структуры данных (схемы), которые сериализуются в компактный бинарный формат.
№6 слайд
Содержание слайда: AVRO – схема
AVRO – схема
№7 слайд
Содержание слайда: HBase + Thrift-AVRO + .NET = ?
HBase + Thrift-AVRO + .NET = ?
№8 слайд
Содержание слайда: Workflow
Workflow
№9 слайд
Содержание слайда: META-DRIVEN;
META-DRIVEN;
результат – простая таблица;
возможность выполнять Map/Reduce;
сохранить отношения данных;
№10 слайд
Содержание слайда: Проблемы
Проблемы
№11 слайд
Содержание слайда: Что делать?
Что делать?
№12 слайд
Содержание слайда: Разработка синтаксиса
Разработка синтаксиса
№13 слайд
Содержание слайда: А давай еще Join’s
А давай еще Join’s
№14 слайд
Содержание слайда: А как быстро написать парсер?
А как быстро написать парсер?
№15 слайд
Содержание слайда: Парсинг(синтаксический анализ текста)
Парсинг(синтаксический анализ текста)
№16 слайд
Содержание слайда: Парсер генератор на основе формальных языков (ANTLR).
Парсер генератор на основе формальных языков (ANTLR).
Подключаемая библиотека комбинаторных парсеров (Sprache, SuperPower).
...
№17 слайд
№18 слайд
Содержание слайда: ANTLR (Another Tool for Language Recognition)
ANTLR (Another Tool for Language Recognition)
Расширенная форма Бэкуса — Наура
№19 слайд
Содержание слайда: декларативный синтаксис;
декларативный синтаксис;
строгое соблюдение грамматики;
не нужно думать о performance;
не нужно писать документацию.
№20 слайд
Содержание слайда: реализован как библиотека языка;
реализован как библиотека языка;
модульный и поддерживаемый;
полуавтоматическая генерация сообщений об ошибках;
backtracking и look ahead;
возможности в runtime;
не требует предварительной токенизации(лексера).
№21 слайд
Содержание слайда: никакого внешнего кода;
никакого внешнего кода;
поддается к индивидуальным требованиям;
потенциально быстр, как только это возможно.
№22 слайд
Содержание слайда: Причем тут функциональное прог-ие?
Причем тут функциональное прог-ие?
№23 слайд
Содержание слайда: Императивное vs Функциональное
Императивное vs Функциональное
№24 слайд
Содержание слайда: Написать примитивные парсеры(функции).
Написать примитивные парсеры(функции).
Написать функции для комбинирования.
Скомбинировать простые парсеры в более сложные.
PROFIT!
№25 слайд
Содержание слайда: type Parser = String -> Tree
type Parser = String -> Tree
type Parser = String -> (String, Tree)
type Parser<T> = String -> (String, T)
type Parser<TInput, T> = TInput -> (TInput, T)
№26 слайд
Содержание слайда: Пишем простой комбинаторный парсер
Пишем простой комбинаторный парсер
№27 слайд
№28 слайд
Содержание слайда: Библиотеки с готовым набором комбинаторных парсеров для С#
Библиотеки с готовым набором комбинаторных парсеров для С#
№29 слайд
Содержание слайда: Готовый код парсера для “42 + 5”
Готовый код парсера для “42 + 5”
№30 слайд
Содержание слайда: Ну, а как же без TDD?
Ну, а как же без TDD?
№31 слайд
№32 слайд
Содержание слайда: Парсер на Sprache “42 + 5 - 7”
Парсер на Sprache “42 + 5 - 7”
№33 слайд
Содержание слайда: DSL (Domain-specific language) Пример: XPath, SQL;
DSL (Domain-specific language) Пример: XPath, SQL;
использование NoSQL;
не хватает всей “Мощи” XML;
разработка IDE или плагинов к ним;
клиентские приложения, например, поиск;
анализ документов.
№34 слайд
Содержание слайда: Что внутри?
Что внутри?
№35 слайд
Содержание слайда: Тип Result<T>
Тип Result<T>
№36 слайд
Содержание слайда: Тип Input (обертка над string)
Тип Input (обертка над string)
№37 слайд
Содержание слайда: Начнем с простых парсеров
Начнем с простых парсеров
№38 слайд
Содержание слайда: Пишем первый комбинирующий парсер
Пишем первый комбинирующий парсер
№39 слайд
Содержание слайда: Строим путь к LINQ’s query синтаксису
Строим путь к LINQ’s query синтаксису
№40 слайд
Содержание слайда: Комбинируем
Комбинируем
№41 слайд
Содержание слайда: Полный код на GitHub
Полный код на GitHub
№42 слайд
Содержание слайда: HASL – HBase Avro Snapshot Language
HASL – HBase Avro Snapshot Language
№43 слайд
Содержание слайда: прототип был написан за 1 вечер на Sprache;
прототип был написан за 1 вечер на Sprache;
был переписан на Superpower;
в дальнейшем все изменения занимали 1-2 часа.
№44 слайд
Содержание слайда: Что получилось достичь за 1 день?
Что получилось достичь за 1 день?
№45 слайд
Содержание слайда: Транформирует объекты в таблицу.
Транформирует объекты в таблицу.
Ориентирован на AVRO-схему.
Селекторы для всех типов: object, type[], примитивы.
Фильтры для [].
API функций для сложных вычислений и фильтраций.
Поддержка Join’ов.
№46 слайд
Содержание слайда: Перформанс HASL - Основа
Перформанс HASL - Основа
№47 слайд
Содержание слайда: 3 424 знаков.
3 424 знаков.
120 строк.
3 Join’а.
102 селектора.
25 с фильтрами.
Полностью отформатирован.
№48 слайд
Содержание слайда: Перформанс HASL - Результаты
Перформанс HASL - Результаты
№49 слайд
Содержание слайда: Схема
Схема
№50 слайд
Содержание слайда: Пример запроса
Пример запроса
№51 слайд
Содержание слайда: Результат
Результат
№52 слайд
Содержание слайда: Спасибо за внимание!
Спасибо за внимание!
№53 слайд
Содержание слайда: Вопросы?
Вопросы?