Similar presentations:
Грамотное программирование
1.
Парадигмы программирования(с примерами на языке R)
Грамотное программирование
Голубничий А.А.
[email protected]
@Golubnichij
2.
Структура занятия• основные понятия;
• подходы к грамотному программированию;
• Markdown, R Markdown, knitr, pandoc.
2
3.
Основные понятияГрамотное программирование
(Literate
Programming)
–
концепция,
методология
программирования
и
документирования,
в
которой
программа состоит из прозы на
естественном языке вперемежку с
макроподстановками и кодом на
Дональд Эрвин Кнут
языках программирования.
Термин и саму концепцию предложил Дональд Кнут в 1981 году при
разработке системы компьютерной верстки TeX.
3
4.
Описание подходов грамотногопрограммирования
• ГП есть цельный метаподход к написанию программ, применимый на
метауровне к любой программе на любом языке программирования;
• ГП есть система макросов, создаваемая из фраз на человеческом языке,
которые становятся метаязыком над конкретным языком программирования.
Пользование этими фразами подобно объяснению алгоритмов на
«псевдокоде», но в случае ГП они становятся точными «новыми операторами»
метаязыка;
• программа и документация более не пишутся как код на языке
программирования с примечаниями. Конструирование программы идет в
порядке, определяемом логикой мысли, где макросы псевдокода играют роль
абстракций;
• технически ГП осуществляется с помощью утилиты, которая одной командой
запускает препроцессор, раскрывает все макросы и «спутывает», «запутывает»
логическое изложение в код на языке программирования, который потом можно
откомпилировать или интерпретировать как обычно. Другая команда
«сплетает» («weave») из этого общего для программы и объяснений файла
4
отформатированную документацию (для печати, веба и т. д.).
5.
Технология R MarkdownMarkdown – облегченный язык разметки, созданный
с целью написания наиболее читаемого и удобного
для
правки
текста,
но
пригодного
для
преобразования в языки продвинутых публикаций
R Markdown – пакет языка R, базирующийся на
технологии Markdown, позволяющий создавать
динамические документы, при помощи вставок кода
на языке R.
5
6.
Зачем нужен Markdown?HTML – это набор инструкций для браузера
Написание HTML-страниц в ручном режиме очень не удобно
Markdown – текстовый формат, удобный для написания и чтения
Markdown – это инструмент конвертации такого текста в HTML
6
7.
knitrknitr – это движок для генерации динамических отчетов с
использованием языка R.
knitr – это пакет на языке статистического программирования
R, позволяющий интегрировать код языка R в документы
LaTeX, LyX, HTML, Markdown, AsciiDoc и reStructuredText.
7
8.
Устройство R MarkdownПути конвертации:
• исходный файл: .Rmd
• knitr: .Rmd → .md
• pandoc: .md → .html, .docx, ,tex
• latex: .tex → .pdf
YAML header:
• в заголовке .Rmd-файла можно указывать различные опции
• опции отвечают за генерацию конечных файлов
• опции задаются в формате YAML в виде списке ключей
8
9.
Преимущества R Markdown• средство для создания
динамических документов;
• полная воспроизводимость
результатов;
• конвертирование исходного .Rmd в
разные форматы;
• удобство написания, разметки и
форматирования документа;
• распространение исходного кода,
идей и алгоритмов.
9
10.
Работа с кодом в R Markdown (Inline code)Простейший случай: вставка текста в
исходный код
Синтаксис: backtick-r-пробел-код на R- backtick
Пример: Теорема доказана в предположении,
что число пи равно `r ceiling(pi) `.
Результат: Теорема доказана в предположении,
что число пи равно 4.
10
11.
Работа с кодом в R Markdown (Code chunks)Основной способ вставки кода
Каждый кусок (chunk, чанк) настраиваем с помощью опций
Чанк может что-либо печатать, рисовать или не иметь вывода
11
12.
Опции чанковВ фигурных скобках через запятую можно указать опции чанка
По умолчанию печатается и код, и его результат
Опция echo = FALSE подавит вывод кода:
12
13.
Пример создания R Markdown документа13