
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
- 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)
- 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
- 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