Literate programming

Literate programming

Literate programming is a programming paradigm introduced in 1984 by Donald Knuth in which a computer program is given as an explanation of its logic in a natural language, such as English, interspersed (embedded) with snippets of macros and traditional source code, from which compilable source code can be generated. The approach is used in scientific computing and in data science routinely for reproducible research and open access purposes. Literate programming tools are used by millions of programmers today.

Comment
enLiterate programming is a programming paradigm introduced in 1984 by Donald Knuth in which a computer program is given as an explanation of its logic in a natural language, such as English, interspersed (embedded) with snippets of macros and traditional source code, from which compilable source code can be generated. The approach is used in scientific computing and in data science routinely for reproducible research and open access purposes. Literate programming tools are used by millions of programmers today.
Date
enNovember 2022
Depiction
Literate Programming book cover.jpg
Has abstract
enLiterate programming is a programming paradigm introduced in 1984 by Donald Knuth in which a computer program is given as an explanation of its logic in a natural language, such as English, interspersed (embedded) with snippets of macros and traditional source code, from which compilable source code can be generated. The approach is used in scientific computing and in data science routinely for reproducible research and open access purposes. Literate programming tools are used by millions of programmers today. The literate programming paradigm, as conceived by Donald Knuth, represents a move away from writing computer programs in the manner and order imposed by the computer, and instead gives programmers macros to develop programs in the order demanded by the logic and flow of their thoughts. Literate programs are written as an exposition of logic in more natural language in which macros are used to hide abstractions and traditional source code, more like the text of an essay. Literate programming (LP) tools are used to obtain two representations from a source file: one understandable by a compiler or interpreter, the "tangled" code, and another for viewing as formatted documentation, which is said to be "woven" from the literate source. While the first generation of literate programming tools were computer language-specific, the later ones are language-agnostic and exist beyond the individual programming languages.
Homepage
www.maplesoft.com
Hypernym
Approach
Is primary topic of
Literate programming
Label
enLiterate programming
Link from a Wikipage to an external page
wiki.c2.com/%3FLiterateProgramming
www.idealliance.org/papers/xml02/dx_xml02/papers/06-01-01/06-01-01.html
web.archive.org/web/20080511181057/http:/www.idealliance.org/papers/xml02/dx_xml02/papers/06-01-01/06-01-01.html
developer.apple.com/library/prerelease/ios/recipes/Playground_Help/Chapters/AboutPlaygrounds.html
github.com/gpoore/codebraid
www.ctan.org/tex-archive/help/comp.programming.literate_FAQ
github.com/hackbg/ganesha
literateprogramming.com/
mpastell.com/pweave/
nuweb.sourceforge.net/
github.com/ganelson/inweb/
nbdev.fast.ai/
rmarkdown.rstudio.com/
web.archive.org/web/20060125040922/http:/www.ross.net/funnelweb/
www.cs.aau.dk/~normark/litpro/issues-and-problems.html
mirrors.ctan.org/macros/latex/contrib/listings/listings.pdf
github.com/zyedidia/Literate
github.com/zyedidia/literate.vim
github.com/unixtechie/Literate-Molly
www.mathworks.com/products/matlab/live-editor.html
www.mathworks.com/products/matlab.html
github.com/mljar/mercury
ipython.org/ipython-doc/3/notebook/nbformat.html
observablehq.com
github.com/slott56/py-web-tool
quarto.org
github.com/observablehq/stdlib%23readme
www.jstatsoft.org/article/view/v046i03/v46i03.pdf
www.maplesoft.com/support/help/Maple/view.aspx%3Fpath=Worksheet
archive.org/details/weavingprogramli0000sewe
witheve.com
Link from a Wikipage to another Wikipage
Agda (programming language)
Algol 68
Algorithm
AsciiDoc
AWK
Axiom (computer algebra system)
Bash (Unix shell)
C (programming language)
C++
Category:Articles with example code
Category:Computer-related introductions in 1981
Category:Literate programming
Category:Programming paradigms
CoffeeScript
Colossal Cave Adventure
Communications of the ACM
Compiler
Computer language
Computer program
Computers and Typesetting
Computer science
CTAN
CWEB
D (programming language)
Datalog
Data science
Directed acyclic graph
Documentation
Documentation generation
Documentation generator
Donald Knuth
Douglas McIlroy
Emacs
Emacs Lisp
Essay
File:Literate Programming book cover.jpg
Hash trie
Haskell (programming language)
HTML
Icon (programming language)
Inform
Interactive fiction
IPython
Java (programming language)
Javadoc
JavaScript
Jon Bentley (computer scientist)
JSON
Julia (programming language)
KaTeX
Knitr
Language-independent specification
LaTeX
Leo (text editor)
LibreOffice
LyX
Macro (computer science)
Magic number (programming)
Maple (software)
Markdown
Markup language
Microsoft Word
Natural language
Node.js
Notebook interface
Noweb
Npm (software)
Open access
Org-mode
Pandoc
Pascal (programming language)
PDF
Perl
Pierre-Arnoul de Marneffe
Plain Old Documentation
Plain text
Portable Document Format
Preprocessor
Programmer
Programming paradigm
Project Jupyter
Pseudocode
Python (programming language)
R (programming language)
Reproducible research
ReStructuredText
Ruby (programming language)
Rust (programming language)
Scientific computing
Sed
Self-documenting code
Shell script
Slide show
Snippet (programming)
Sort (Unix)
Source code
SQL
Stanford University
Sweave
Swift (programming language)
TeX
Text Encoding Initiative
The C Programming Language
Tr (Unix)
Troff
TypeScript
Typography
Uniq
University of Aalborg
Unix
WEB
Web application
Web browser
Web widget
WikiWikiWeb
Wolfram Language
Wolfram Mathematica
XML
Reason
enawkward wording; meaning unclear
SameAs
4npP3
Literate programming
Literate programming
Literate programming
Literate programming
Literate programming
Litterat programmering
m.04zm22j
Programação letrada
Programació literària
Programación literaria
Programmation lettrée
Q607703
Грамотное программирование
Գրագետ ծրագրավորում
برنامه‌نویسی ادیبانه
文学编程
文芸的プログラミング
문학적 프로그래밍
Subject
Category:Articles with example code
Category:Computer-related introductions in 1981
Category:Literate programming
Category:Programming paradigms
Thumbnail
Literate Programming book cover.jpg?width=300
WasDerivedFrom
Literate programming?oldid=1122031796&ns=0
WikiPageLength
42823
Wikipage page ID
18136
Wikipage revision ID
1122031796
WikiPageUsesTemplate
Template:Cite book
Template:Cite conference
Template:Cite news
Template:Cite web
Template:Clarification needed
Template:Donald Knuth navbox
Template:Programming paradigms
Template:Quote
Template:Refbegin
Template:Refend
Template:Reflist
Template:Short description