tags: 🔖ソフトウェア開発手法
文芸的プログラミング(Literate Programming)とは
ドナルド・クヌースさん(Art of Computer Programmingの人)の提唱したプログラミングのスタイル.
「本を書くようにプログラムを書こう」という運動とそのためのツール.
具体的にはソースコードとドキュメントを別々のファイルではなく一つのファイルに記述してそこからドキュメントとソースコードを生成することで情報の一元管理を目指す.
散文的プログラミングともいう.
個人的にはorg-babel, RMarkdownで発展してJupyter Notebookで完成したとおもった.
Basics
記事は text
, code
(chunks) からなる
- A documantation Language (human redable)
- P programming language (machine readable)
文芸的プログラムは
- 人間が読みやすいドキュメントに
waved
される. - コンピュータが実行可能なドキュメントに
tangled
される.
Research Pipeline
- Mesured Data
- Processing code
- Analytic Data
- Analytics code
- Computational Resuluts
- Presentation code
- Presentation Results
- Fugures
- Tables
- Numerical Summaries
- Articles
必要な技術
- Analytic data are available
- Analytic code are available
- Documentation of code and data
- Standard means of distribution
files
- Data
- Raw data: 生データ
- Processed data: 前処理がおわったデータ
- Figures
- Exploratory figures, 分析の途中でできる図.
- Final Figures: 最終結果の図.
- Code
- Raw scripts
- Final scripts
- Text
- README.md
- R markdown
文芸的プログラミングツール
- org-babel(ob)
- 📝Jupyter Notebook
- Run book Automation
R markdown
R Studio のための 記法.
knitr
HTML や markdown, pdf への export. R と Markdown を利用して文芸的プログラミングをするためのツール.
CRAN から取得可能.