7.53M
Category: programmingprogramming

Грамотное программирование

1.

Парадигмы программирования
(с примерами на языке R)
Грамотное программирование
Голубничий А.А.
[email protected]
@Golubnichij

2.

Структура занятия
• основные понятия;
• подходы к грамотному программированию;
• Markdown, R Markdown, knitr, pandoc.
2

3.

Основные понятия
Грамотное программирование
(Literate
Programming)

концепция,
методология
программирования
и
документирования,
в
которой
программа состоит из прозы на
естественном языке вперемежку с
макроподстановками и кодом на
Дональд Эрвин Кнут
языках программирования.
Термин и саму концепцию предложил Дональд Кнут в 1981 году при
разработке системы компьютерной верстки TeX.
3

4.

Описание подходов грамотного
программирования
• ГП есть цельный метаподход к написанию программ, применимый на
метауровне к любой программе на любом языке программирования;
• ГП есть система макросов, создаваемая из фраз на человеческом языке,
которые становятся метаязыком над конкретным языком программирования.
Пользование этими фразами подобно объяснению алгоритмов на
«псевдокоде», но в случае ГП они становятся точными «новыми операторами»
метаязыка;
• программа и документация более не пишутся как код на языке
программирования с примечаниями. Конструирование программы идет в
порядке, определяемом логикой мысли, где макросы псевдокода играют роль
абстракций;
• технически ГП осуществляется с помощью утилиты, которая одной командой
запускает препроцессор, раскрывает все макросы и «спутывает», «запутывает»
логическое изложение в код на языке программирования, который потом можно
откомпилировать или интерпретировать как обычно. Другая команда
«сплетает» («weave») из этого общего для программы и объяснений файла
4
отформатированную документацию (для печати, веба и т. д.).

5.

Технология R Markdown
Markdown – облегченный язык разметки, созданный
с целью написания наиболее читаемого и удобного
для
правки
текста,
но
пригодного
для
преобразования в языки продвинутых публикаций
R Markdown – пакет языка R, базирующийся на
технологии Markdown, позволяющий создавать
динамические документы, при помощи вставок кода
на языке R.
5

6.

Зачем нужен Markdown?
HTML – это набор инструкций для браузера
Написание HTML-страниц в ручном режиме очень не удобно
Markdown – текстовый формат, удобный для написания и чтения
Markdown – это инструмент конвертации такого текста в HTML
6

7.

knitr
knitr – это движок для генерации динамических отчетов с
использованием языка 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
English     Русский Rules