Knowledge (XXG)

Literate programming

Source đź“ť

199:
which is not an add-on, but is grown naturally in the process of exposition of one's thoughts during a program's creation. The resulting documentation allows the author to restart their own thought processes at any later time, and allows other programmers to understand the construction of the program more easily. This differs from traditional documentation, in which a programmer is presented with source code that follows a compiler-imposed order, and must decipher the thought process behind the program from the code and its associated comments. The meta-language capabilities of literate programming are also claimed to facilitate thinking, giving a higher "bird's eye view" of the code and increasing the number of concepts the mind can successfully retain and process. Applicability of the concept to programming on a large scale, that of commercial-grade programs, is proven by an edition of
3081:
bottom-up, because a program is best thought of as a web instead of a tree. A hierarchical structure is present, but the most important thing about a program is its structural relationships. A complex piece of software consists of simple parts and simple relations between those parts; the programmer's task is to state those parts and those relationships, in whatever order is best for human comprehension not in some rigidly determined order like top-down or bottom-up.
3254:. TANGLE is able to scramble everything up into the arrangement that a PASCAL compiler demands. This feature of WEB is perhaps its greatest asset; it makes a WEB-written program much more readable than the same program written purely in PASCAL, even if the latter program is well commented. And the fact that there's no need to be hung up on the question of top-down versus bottom-up, since a programmer can now 218:– or to voluminous commentaries included with code. This is the converse of literate programming: well-documented code or documentation extracted from code follows the structure of the code, with documentation embedded in the code; while in literate programming, code is embedded in documentation, with the code following the structure of the documentation. 2430:
by Knuth Web tool or tools like "noweb") is possible only with some degree of inventiveness and the use of the editor in a way not exactly envisioned by its author (in modified @root nodes). However, this and other extensions (@file nodes) make outline programming and text management successful and easy and in some ways similar to literate programming.
3345:
delicately pieced together from simple materials. We understand a complicated system by understanding its simple parts, and by understanding the simple relations between those parts and their immediate neighbors. If we express a program as a web of ideas, we can emphasize its structural properties in a natural and satisfying way.
149:" since he believed that it was one of the few three-letter words of English that had not yet been applied to computing. However, it resembles the complicated nature of software delicately pieced together from simple materials. The practice of literate programming has seen an important resurgence in the 2010s with the use of 2836: 3210:
project. Not only has it enabled me to write and maintain programs faster and more reliably than ever before, and been one of my greatest sources of joy since the 1980s-it has actually been indispensable at times. Some of my major programs, such as the MMIX meta-simulator, could not have been written
3162:
WEB's macros are allowed to have at most one parameter. Again, I did this in the interests of simplicity, because I noticed that most applications of multiple parameters could in fact be reduced to the one-parameter case. For example, suppose that you want to define something like  .... In other
1114:
The documentation for a literate program is produced as part of writing the program. Instead of comments provided as side notes to source code a literate program contains the explanation of concepts on each level, with lower level concepts deferred to their appropriate place, which allows for better
189:
is used to substitute arbitrary hierarchies, or rather "interconnected 'webs' of macros", to produce the compilable source code with one command ("tangle"), and documentation with another ("weave"). The preprocessor also provides an ability to write out the content of the macros and to add to already
198:
According to Knuth, literate programming provides higher-quality programs, since it forces programmers to explicitly state the thoughts behind the program, making poorly thought-out design decisions more obvious. Knuth also claims that literate programming provides a first-rate documentation system,
165:
Literate programming is writing out the program logic in a human language with included (separated by a primitive markup) code snippets and macros. Macros in a literate source file are simply title-like or explanatory phrases in a human language that describe human abstractions created while solving
2429:
editor which supports optional noweb and CWEB markup. The author of Leo mixes two different approaches: first, Leo is an outlining editor, which helps with management of large texts; second, Leo incorporates some of the ideas of literate programming, which in its pure form (i.e., the way it is used
3344:
I chose the name WEB partly because it was one of the few three-letter words of English that hadn't already been applied to computers. But as time went on, I've become extremely pleased with the name, because I think that a complex piece of software is, indeed, best regarded as a web that has been
3211:
with any other methodology that I've ever heard of. The complexity was simply too daunting for my limited brain to handle; without literate programming, the whole enterprise would have flopped miserably. ... Literate programming is what you need to rise above the ordinary level of achievement.
3080:
I had the feeling that top-down and bottom-up were opposing methodologies: one more suitable for program exposition and the other more suitable for program creation. But after gaining experience with WEB, I have come to realize that there is no need to choose once and for all between top-down and
3224:
Another surprising thing that I learned while using WEB was that traditional programming languages had been causing me to write inferior programs, although I hadn't realized what I was doing. My original idea was that WEB would be merely a tool for documentation, but I actually found that my WEB
235:
systems, are "literate programming tools". However, because these tools do not implement the "web of abstract concepts" hiding behind the system of natural-language macros, or provide an ability to change the order of the source code from a machine-imposed sequence to one convenient to the human
296:
literate program shows how arbitrary descriptive phrases in a natural language are used in a literate program to create macros, which act as new "operators" in the literate programming language, and hide chunks of code or other macros. The mark-up notation consists of double angle brackets
1081:
The grand totals must be initialized to zero at the beginning of the program. If we made these variables local to main, we would have to do this initialization explicitly; however, C globals are automatically zeroed. (Or rather,``statically zeroed.'⁠' (Get it?) <<Global
22: 1529:
It is an inverse literate programming tool available as a Ruby Gem. Instead of the machine-readable source code being extracted out of the literate documentation sources, the literate documentation is extracted out of the normal machine-readable source code files.
657:
The unraveling of the chunks can be done in any place in the literate program text file, not necessarily in the order they are sequenced in the enclosing chunk, but as is demanded by the logic reflected in the explanatory text that envelops the whole program.
309:
symbol stands for the "root", topmost node the literate programming tool will start expanding the web of macros from. Actually, writing out the expanded source code can be done from any section or subsection (i.e. a piece of code designated as
1560:
Requires Babel, which allows embedding blocks of source code from multiple programming languages within a single text document. Blocks of code can share data with each other, display images inline, or be parsed into pure source code using the
666:
Macros are not the same as "section names" in standard documentation. Literate programming macros hide the real code behind themselves, and be used inside any low-level machine language operators, often inside logical operators such as
2703: 190:
created macros in any place in the text of the literate program source file, thereby disposing of the need to keep in mind the restrictions imposed by traditional programming languages or to interrupt the flow of thought.
1053:
The macros stand for any chunk of code or other macros, and are more general than top-down or bottom-up "chunking", or than subsectioning. Donald Knuth said that when he realized this, he began to think of a program as a
1119:
above show how an explanation of the program and its source code are interwoven. Such exposition of ideas creates the flow of thought that is like a literary work. Knuth wrote a "novel" which explains the code of the
3104:
If one remembers that the first version of the tool was called WEB, the amusing literary reference hidden by Knuth in these names becomes obvious: "Oh, what a tangled web we weave when first we practise to deceive"
4174: 1140:, which is evolved from scratchpad, a computer algebra system developed by IBM. It is now being developed by Tim Daly, one of the developers of scratchpad, Axiom is totally written as a literate program. 113:
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
2708: 1445:
It can translate a single LP source into any number of code files. It does it in a single invocation; it does not have separate weave and tangle commands. It does not have the extensibility of
2861:
format. From this prose documentation, schemas, and processing model pipelines can be generated and Knuth's Literate Programming paradigm is cited as the inspiration for this way of working.
2447:
The literate scripts can be full LaTeX source text, at the same time it can be compiled, with no changes, because the interpreter only compiles the text in a code environment, for example:
90:
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 compiler, and instead gives
2307:
Stored on the cloud with web interface. Contents are publishable as websites. Version controlled; the platform defines its own version control operations. Code cells can be organized
3557: 4080: 214:
Literate programming is very often misunderstood to refer only to formatted documentation produced from a common file with both source code and comments – which is properly called
4144: 2364:
to load literate modules, represented by Markdown files containing JavaScript or TypeScript code interspersed with richly formatted prose. Supports bundling literate modules for
1194:
There are various other implementations of the literate programming concept as given below. Many of the newer among these do not have macros and hence do not comply with the
4093: 2535:
The code can be also marked in the Richard Bird style, starting each line with a greater than symbol and a space, preceding and ending the piece of code with blank lines.
133:
Literate programming was first introduced in 1984 by Donald Knuth, who intended it to create programs that were suitable literature for human beings. He implemented it at
5112: 1703:
Provides an interactive programming environment that evaluates each statement and displays live results as the code is edited. Playgrounds also allow the user to add
3119:
in 1513. – the actual citation appeared as an epigraph in a May 1986 article by Jon Bentley and Donald Knuth in one of the classical "Programming Pearls" columns in
5205: 206:
Knuth also claims that literate programming can lead to easy porting of software to multiple environments, and even cites the implementation of TeX as an example.
4980: 4243: 2831:{\displaystyle {\begin{aligned}&comp::(\beta \to \gamma )\to (\alpha \to \beta )\to (\alpha \to \gamma )\\&(g\operatorname {comp} f)x=g(fx)\end{aligned}}} 4178: 2266:
file. Documents can be scheduled for automatic execution. The document presence and widgets are controlled with YAML header in the first cell of the notebook.
4009: 3286: 94:
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
4073: 1198:
principle, which makes them perhaps "semi-literate" tools. These, however, allow cellular execution of code which makes them more along the lines of
1161:
as its underlying programming language and TeX for typesetting of the documentation. The complete commented TeX source code was published in Knuth's
4307: 4657: 4519: 4921: 4663: 3861: 5097: 5102: 4066: 3932: 4848: 4596: 3057: 3027: 1803:
is a library that allows one to develop a python library in Jupyter Notebooks, putting all code, tests and documentation in one place.
4316: 1508:
Aims to modernize and scale it with "folding HTML" and "virtual views" on code. It uses "noweb" markup for the literate source files.
122: 3951: 3906: 3742: 3607: 2437:
programming language has native support for semi-literate programming. The compiler/interpreter supports two file name extensions:
4688: 4368: 4312: 2891:– examples of use of the "noweb"-like Literate Programming tool inside the R language for creation of dynamic statistical reports 2846:
as the underlying programming language, although there was nothing in the pre-processor 'tang' to force the use of that language.
1634:
are a platform-agnostic literate programming environment that combines text and graphics with live code for symbolic computation.
5117: 3401:, was originally written by Crowther in about 700 lines of FORTRAN code; Knuth recast it into the WEB idiom. It is available at 4987: 4945: 4548: 4421: 4352: 4287: 4210: 2839:
Although the package does not provide means to organize chunks of code, one can split the LaTeX source code in different files.
1137: 3409: 5210: 4726: 4489: 4119: 2434: 3329: 3835: 5200: 4504: 4494: 4272: 2232: 2227: 2124: 2101: 2088: 1954: 1899: 1789: 1763: 1721: 1478: 1462: 1241: 1236: 1158: 5159: 5128: 4888: 4868: 4798: 4741: 4703: 4693: 4653: 4578: 4514: 4484: 4411: 4400: 4297: 4277: 4252: 4215: 2084: 1958: 1903: 1812: 1690: 1353:
It is well known for its simplicity and it allows for text formatting in HTML rather than going through the TeX system.
3052:
Kery, Mary Beth (April 2018). "The Story in the Notebook: Exploratory Data Science using a Literate Programming Tool".
1066:
In a noweb literate program besides the free order of their exposition, the chunks behind macros, once introduced with
4843: 4606: 4573: 4468: 4444: 4406: 4386: 4282: 4191: 4169: 4154: 2080: 1841: 1518: 1325: 1171:. Knuth had privately used a literate programming system called DOC as early as 1979. He was inspired by the ideas of 229: 117:, which is said to be "woven" from the literate source. While the first generation of literate programming tools were 1744:
Works in the format of notebooks, which combine headings, text (including LaTeX), plots, etc. with the written code.
284:
literate programming tool. This example provides a good illustration of the basic elements of literate programming.
178:. These arbitrary explanatory phrases become precise new operators, created on the fly by the programmer, forming a 4914: 4790: 4776: 4683: 4643: 4568: 4474: 4454: 4321: 4200: 4134: 2194: 2177: 3674:"Sweave, Part I: Mixing R and LaTeX: A short introduction to the Sweave file format and corresponding R functions" 4959: 4883: 4648: 4558: 4538: 4524: 4025: 3426: 1172: 1167: 5107: 4863: 4823: 4766: 4698: 4436: 4267: 2970: 2858: 2854: 2850: 2378: 2092: 2027: 2002: 1950: 1895: 1399: 1366: 1317: 1297: 1276: 1271: 1188: 1180: 215: 99: 60: 3484: 5123: 4952: 4873: 4853: 4794: 4781: 4761: 4588: 4325: 4229: 4187: 2872: 1391: 1199: 1125: 225: 5092: 5017: 4973: 4833: 4808: 4802: 4746: 4708: 4396: 4391: 4343: 4238: 4139: 4111: 4102: 4015: 3434: 2312: 166:
the programming problem, and hiding chunks of code or lower-level macros. These macros are similar to the
314:, with the equal sign), so one literate program file can contain several files with machine source code. 5169: 4907: 4735: 4731: 4673: 4625: 4195: 3967: 3759: 2894: 1636: 80: 56: 2875:– the inverse on literate programming where documentation is embedded in and generated from source code 4049: 4966: 4858: 4818: 4620: 4479: 4348: 4335: 4089: 3821: 3707: 3582: 2961: 1827: 72: 40: 4020: 3869: 1680:
are a platform-agnostic literate programming method that combines text and graphics with live code.
1601:
supports a "literate" mode, which enables programs to be compiled from a source document written in
4813: 4751: 4563: 4543: 4529: 4261: 4129: 4124: 3924: 1677: 1656: 1121: 134: 21: 3466: 2254:
Mercury turns Jupyter Notebook into interactive computational documents. They can be published as
5149: 4630: 4583: 4553: 4499: 4358: 4257: 4149: 4058: 3317: 2878: 1758: 150: 3963: 3519: 2857:
scheme enables users to mix prose documentation with fragments of schema specification in their
2258:, dashboards, reports, REST API, or slides. The executed document can be exported as standalone 236:
mind, they cannot properly be called literate programming tools in the sense intended by Knuth.
4786: 4678: 4533: 4509: 4449: 4416: 4378: 4363: 4302: 3947: 3928: 3902: 3738: 3651: 3641: 3116: 2422: 2096: 255:
Weaving and tangling are done on the same source so that they are consistent with each other.
118: 2145: 4668: 4600: 4464: 4205: 3987: 3976: 3655: 3106: 3061: 3017: 3002: 2974: 2058: 1668: 1661: 1631: 1615: 1610: 1467: 175: 95: 52: 48: 3977:"A Multi-Language Computing Environment for Literate Programming and Reproducible Research" 3206:
Yet to me, literate programming is certainly the most important thing that came out of the
3194: 3003:"A Multi-Language Computing Environment for Literate Programming and Reproducible Research" 2245: 1733: 5164: 5046: 4718: 4592: 4458: 4159: 3413: 2255: 1793: 1753: 1712: 1704: 3615: 263:
A classic example of literate programming is the literate implementation of the standard
3673: 3452: 3402: 5051: 4770: 4426: 4292: 3897: 3111: 2546:
environment which can be used to embellish the source code. It can be used to define a
2324: 1970: 1918: 3377: 5194: 5144: 4756: 3732: 3054:
CHI '18: Proceedings of the 2018 CHI Conference on Human Factors in Computing Systems
305:
symbol which, in a noweb file, indicates the beginning of a documentation chunk. The
114: 3430: 4930: 3916: 3350: 3267: 3230: 3190: 3168: 3086: 2949: 1598: 1580: 1575: 1570: 248:
Weaving: Generating a comprehensive document about the program and its maintenance.
186: 154: 76: 44: 29: 3133: 2953: 1830:
notebook environment allowing custom order. But web-like macros aren't supported.
3321: 2150: 1685: 5154: 4638: 4044: 3839: 2550:
environment to use within Haskell to print the symbols in the following manner:
2365: 2316: 1974: 1922: 221:
This misconception has led to claims that comment-extraction tools, such as the
103: 87:
purposes. Literate programming tools are used by millions of programmers today.
84: 64: 3406: 3225:
programs were better than the programs I had been writing in other languages.
1486: 2395: 2390: 2386: 2346: 2341: 2337: 2320: 2285: 2281: 2276: 2236: 1982: 1978: 1930: 1926: 1584: 1551: 1546: 171: 142: 91: 3708:"The Joy of Sweave – A Beginner's Guide to Reproducible Research with Sweave" 2979: 1078:
is added by the document formatter for readability, and is not in the code).
5179: 5084: 5041: 3163:
words, the name of one macro can usefully be a parameter to another macro.
3065: 268: 167: 138: 4040: 1383: 3991: 3659: 3022: 5011: 4998: 2843: 2400: 2351: 2157: 2106: 2054: 2050: 1881: 1768: 1602: 1589: 1538: 1454: 1371: 68: 3645: 1707:
along with the code that provide headers, inline formatting and images.
5174: 2361: 1877: 1836:
Supports the iJulia mode of development which was inspired by iPython.
1716: 1358: 232: 2323:. Cells from different observable notebooks can reference each other. 2071: 3785: 3766: 3532: 3499: 3438: 2884: 2189: 2185: 2172: 2076: 1997: 1749: 1074:
and adding more content to it, as the following snippet illustrates (
3781: 2332: 2382: 2222: 2181: 1431: 1418:
It has more complicated markup, but has many more flexible options
1301: 1267: 1195: 1184: 4000: 3760:"knitr: A General-purpose Tool for Dynamic Report Generation in R" 2888: 2853:
which enables the constraining, modification, or extension of the
2294: 2034: 2022: 1562: 1535: 1446: 1436: 1342: 1330: 1309: 281: 107: 20: 3287:""Oral History of Donald Knuth"- an Interview with Ed Feigenbaum" 2897:– source code that can be easily understood without documentation 1889: 5074: 5033: 5022: 4053: 2373: 2298: 2259: 2241: 2207: 2198: 2046: 1856:
Supports a limited form of literate programming out of the box.
1729: 1499: 1494: 1423: 1404: 1338: 1262: 1176: 1070:, can be grown later in any place in the file by simply writing 273: 264: 222: 4903: 4899: 4062: 3250:
Thus the WEB language allows a person to express programs in a
1477:
Respects indentation which makes usable for the languages like
5069: 5006: 3207: 2290: 2263: 2203: 2131: 2119: 2042: 2038: 2009: 1966: 1914: 1907: 1622: 1408: 1334: 1321: 1293: 1281: 1246: 1231: 1154: 1150: 200: 146: 2311:; observable notebooks will construct the execution graph (a 2881:– virtual notebook environment used for literate programming 2271: 3782:"ganelson/inweb: A modern system for literate programming" 2217:
Used to write the Inform Programming Language since 2004.
1187:, runs on most operating systems, and can produce TeX and 3520:
Milestones in Computer Science and Information Technology
1784: 1149:
The first published literate programming environment was
244:
Implementing literate programming consists of two steps:
3800: 2368:
when using the Rollup or Vite frontend module bundlers.
1876:
Programs are primarily prose. Eve combines variants of
1179:, written by Knuth and Silvio Levy, is WEB adapted for 1115:
communication of thought. The snippets of the literate
125:
and exist beyond the individual programming languages.
1823: 1481:, though one can use it for any programming language. 1257:
The first published literate programming environment.
71:
source code can be generated. The approach is used in
2706: 1945: 1861: 5137: 5083: 5060: 5032: 4997: 4937: 4832: 4717: 4619: 4435: 4377: 4334: 4237: 4228: 4168: 4110: 4101: 3256:view a large program as a web, to be explored in a 1101: 1083: 280:book. The same example was later rewritten for the 3927:Center for the Study of Language and Information. 3896: 3437:, Service d'Informatique. p. 135 – via 2830: 3944:TeX & LaTeX: Drawing and Literate Programming 3898:"Weaving a Program: Literate Programming in WEB" 55:, such as English, interspersed (embedded) with 51:is given as an explanation of how it works in a 3734:Dynamic Documents with R and knitr, 2nd Edition 3342: 3248: 3222: 3160: 3078: 182:on top of the underlying programming language. 4981:Things a Computer Scientist Rarely Talks About 3558:"Markup Formatting Reference: Markup Overview" 1884:with a live graphical development environment 1062:Order of human logic, not that of the compiler 102:are used to hide abstractions and traditional 16:A programming approach of software development 4915: 4074: 1382:Supports TeX equations. Compatible with Vim ( 276:version of this example in Chapter 12 of his 8: 3964:"Literate Programming – Issues and Problems" 3836:"Web 68: Literate programming with Algol 68" 3262:I have learned from my recent experiences. 2842:The Web 68 Literate Programming system used 251:Tangling: Generating machine executable code 32:is the seminal book on literate programming. 3371: 3369: 3367: 3365: 2445:; the latter stands for literate Haskell. 4922: 4908: 4900: 4234: 4107: 4081: 4067: 4059: 3312: 3310: 1204: 4145:Programming in the large and in the small 4019: 3644:; Garrett Grolemund (December 30, 2023), 3021: 2978: 2707: 2705: 1103:/* total number of words, lines, chars */ 272:word counting program. Knuth presented a 5180:Potrzebie system of weights and measures 2914: 2912: 2910: 5113:Robinson–Schensted–Knuth correspondence 3706:Pineda-Krch, Mario (January 17, 2011). 3635: 3633: 3185: 3183: 2906: 5206:Computer-related introductions in 1981 2327:libraries can be imported on the fly. 1981:formats plus interactive formats like 1929:formats plus interactive formats like 1153:, introduced by Knuth in 1981 for his 210:Contrast with documentation generation 3799:Ream, Edward K. (September 2, 2008). 3332:from the original on January 2, 2009. 3193:; Binstock, Andrew (April 25, 2008). 3033:from the original on November 9, 2014 7: 2452:% here text describing the function: 2319:implemented with modern features of 679:. This can be seen in the following 3780:Nelson, Graham A. (June 17, 2022). 3058:Association for Computing Machinery 2849:The customization mechanism of the 4008:Walsh, Norman (October 15, 2002). 2698:which can be configured to yield: 1072:<<name of the chunk>>= 312:<<name of the chunk>>= 14: 5098:Knuth–Bendix completion algorithm 3962:Nørmark, Kurt (August 13, 1998). 3322:"POD is not Literate Programming" 1042:/* c is newline, space, or tab */ 145:. The implementation was called " 4689:Partitioned global address space 3868:. TEI Consortium. Archived from 3647:R Markdown: The Definitive Guide 2943: 2937: 2931: 2925: 2919: 4946:The Art of Computer Programming 3984:Journal of Statistical Software 3376:Ramsey, Norman (May 13, 2008). 3252:"stream of consciousness" order 3010:Journal of Statistical Software 3975:Schulte, Eric (January 2012). 3260:is perhaps the greatest lesson 3115:(1808) an epic poem about the 2821: 2812: 2800: 2785: 2775: 2769: 2763: 2760: 2757: 2751: 2745: 2742: 2739: 2733: 2727: 1605:with indented blocks of code. 1145:Literate programming practices 1110:Record of the train of thought 1080: 121:-specific, the later ones are 1: 3608:"Eve and Literate Progamming" 3258:psychologically correct order 3195:"Interview with Donald Knuth" 1724:and any with a Jupyter Kernel 292:The following snippet of the 137:as a part of his research on 5103:Knuth–Morris–Pratt algorithm 4216:Uniform Function Call Syntax 3986:. Vol. 46, no. 3. 3431:Holon Programming – A Survey 3109:, in Canto VI, Stanza 17 of 2416:Other useful tools include: 1813:Julia (programming language) 1691:Swift (programming language) 1157:typesetting system; it uses 301:) that indicate macros. The 203:code as a literate program. 5118:Trabb Pardo–Knuth algorithm 4684:Parallel programming models 4658:Concurrent constraint logic 4011:Literate Programming in XML 3522:by Edwin D. Reilly, p. 157. 3467:"Babel Languages: redirect" 3294:Archive.ComputerHistory.org 3141:Archive.ComputerHistory.org 1842:Agda (programming language) 1165:, volume B of his 5-volume 174:typically used in teaching 106:, more like the text of an 5227: 4777:Metalinguistic abstraction 4644:Automatic mutual exclusion 3737:. Chapman & Hall/CRC. 3672:Leisch, Friedrich (2002). 3427:de Marneffe, Pierre Arnoul 1892:Notebooks (or R Notebooks) 1220:Macros & custom order 5160:Knuth's up-arrow notation 5129:Knuth's Simpath algorithm 4960:Computers and Typesetting 4649:Choreographic programming 3942:Gurari, Eitan M. (1994). 3901:. Van Nostrand Reinhold. 3123:, vol. 29, no. 5, p. 365. 3121:Communications of the ACM 2244:format specification for 1732:format Specification for 1173:Pierre-Arnoul de Marneffe 1168:Computers and Typesetting 910:/* visible ASCII codes */ 4699:Relativistic programming 4050:Literate Programming FAQ 3412:August 20, 2008, at the 3397:The game, also known as 2971:British Computer Society 2859:One Document Does-it-all 2851:Text Encoding Initiative 2552: 2449: 2315:) automatically. A rich 1862:Eve programming language 1082:variables>>+= 685: 316: 216:documentation generation 4953:The Complexity of Songs 3500:"Literate CoffeeScript" 3403:literateprogramming.com 3066:10.1145/3173574.3173748 2873:Documentation generator 1200:exploratory programming 1126:Colossal Cave Adventure 226:Plain Old Documentation 151:computational notebooks 4988:Selected papers series 4709:Structured concurrency 4094:Comparison by language 4001:"Literate Programming" 3895:Sewell, Wayne (1989). 3359: 3276: 3239: 3177: 3134:"Literate Programming" 3095: 3001:Schulte, Eric (2012). 2980:10.1093/comjnl/27.2.97 2954:"Literate Programming" 2832: 1100:tot_char_count; 129:History and philosophy 43:introduced in 1984 by 33: 5211:Programming paradigms 5170:Quater-imaginary base 4674:Multitier programming 4490:Interface description 4090:Programming paradigms 3992:10.18637/jss.v046.i03 3968:University of Aalborg 3485:"Babel: Introduction" 3453:"Babel: Introduction" 3378:"An Example of noweb" 3023:10.18637/jss.v046.i03 2895:Self-documenting code 2833: 81:reproducible research 24: 5201:Literate programming 5124:Dijkstra's algorithm 5062:Literate programming 4967:Concrete Mathematics 3921:Literate Programming 3355:Literate Programming 3272:Literate Programming 3235:Literate Programming 3173:Literate Programming 3091:Literate Programming 2962:The Computer Journal 2704: 1977:and presentation or 1925:and presentation or 1211:Supported languages 1196:order of human logic 1068:<<...>>= 278:Literate Programming 73:scientific computing 41:programming paradigm 37:Literate programming 26:Literate Programming 5093:Knuth's Algorithm X 4814:Self-modifying code 4422:Probabilistic logic 4353:Functional reactive 4308:Expression-oriented 4262:Partial application 4041:LiterateProgramming 3958:(includes software) 3925:Stanford University 3842:on January 20, 2013 3834:Mountbatten, Sian. 3731:Xie, Yihui (2015). 3562:Developer.Apple.com 3533:"Wolfram Notebooks" 3435:UniversitĂ© de Liège 3318:Dominus, Mark-Jason 2542:package provides a 1223:Cellular execution 1132:Remarkable examples 1122:interactive fiction 299:<<...>> 135:Stanford University 5150:Knuth reward check 5122:Generalization of 4727:Attribute-oriented 4500:List comprehension 4445:Algebraic modeling 4258:Anonymous function 4150:Design by contract 4120:Jackson structures 3872:on August 22, 2018 3652:Chapman & Hall 3498:Ashkenas, Jeremy. 3320:(March 20, 2000). 2879:Notebook interface 2828: 2826: 2146:MATLAB Live Editor 1637:"Maple Worksheets" 1565:reference syntax. 1058:of various parts. 683:literate program. 493:<<*>>= 288:Creation of macros 34: 5188: 5187: 4897: 4896: 4787:Program synthesis 4679:Organic computing 4615: 4614: 4520:Non-English-based 4495:Language-oriented 4273:Purely functional 4224: 4223: 3934:978-0-937073-80-3 3801:"Leo's Home Page" 3642:Joseph J. Allaire 3429:(December 1973). 3117:Battle of Flodden 3060:. pp. 1–11. 2414: 2413: 1678:Wolfram notebooks 1657:Wolfram Notebooks 307:<<*>> 123:language-agnostic 119:computer language 5218: 4924: 4917: 4910: 4901: 4799:by demonstration 4704:Service-oriented 4694:Process-oriented 4669:Macroprogramming 4654:Concurrent logic 4525:Page description 4515:Natural language 4485:Grammar-oriented 4412:Nondeterministic 4401:Constraint logic 4303:Point-free style 4298:Functional logic 4235: 4206:Immutable object 4125:Block-structured 4108: 4083: 4076: 4069: 4060: 4029: 4028:on May 11, 2008. 4024:. Archived from 4023: 4004: 3995: 3981: 3971: 3957: 3938: 3917:Knuth, Donald E. 3912: 3900: 3882: 3881: 3879: 3877: 3862:"TEI Guidelines" 3858: 3852: 3851: 3849: 3847: 3838:. Archived from 3831: 3825: 3824:for an overview. 3818: 3812: 3811: 3809: 3807: 3796: 3790: 3789: 3777: 3771: 3770: 3764: 3755: 3749: 3748: 3728: 3722: 3721: 3719: 3717: 3712: 3703: 3697: 3696: 3694: 3692: 3678: 3669: 3663: 3662: 3637: 3628: 3627: 3625: 3623: 3614:. Archived from 3604: 3598: 3597: 3595: 3593: 3579: 3573: 3572: 3570: 3568: 3554: 3548: 3547: 3545: 3543: 3529: 3523: 3517: 3511: 3510: 3508: 3506: 3495: 3489: 3488: 3481: 3475: 3474: 3463: 3457: 3456: 3449: 3443: 3442: 3423: 3417: 3395: 3389: 3388: 3386: 3384: 3373: 3360: 3357: 3340: 3334: 3333: 3314: 3305: 3304: 3302: 3300: 3291: 3283: 3277: 3274: 3246: 3240: 3237: 3220: 3214: 3213: 3203: 3201: 3191:Knuth, Donald E. 3187: 3178: 3175: 3158: 3152: 3151: 3149: 3147: 3138: 3130: 3124: 3107:Sir Walter Scott 3102: 3096: 3093: 3076: 3070: 3069: 3049: 3043: 3042: 3040: 3038: 3032: 3025: 3007: 2998: 2992: 2991: 2989: 2987: 2982: 2958: 2950:Knuth, Donald E. 2947: 2941: 2935: 2929: 2923: 2916: 2837: 2835: 2834: 2829: 2827: 2781: 2710: 2694: 2690: 2687: 2684: 2681: 2678: 2675: 2672: 2669: 2666: 2663: 2660: 2657: 2654: 2651: 2648: 2645: 2642: 2639: 2636: 2633: 2630: 2627: 2624: 2621: 2618: 2615: 2612: 2609: 2606: 2603: 2600: 2597: 2594: 2591: 2588: 2585: 2581: 2578: 2575: 2572: 2569: 2566: 2563: 2559: 2556: 2549: 2545: 2541: 2530: 2526: 2523: 2520: 2517: 2514: 2511: 2508: 2505: 2502: 2499: 2496: 2493: 2490: 2487: 2484: 2481: 2478: 2475: 2472: 2469: 2466: 2463: 2459: 2456: 2453: 2444: 2440: 2317:standard library 2059:reStructuredText 1802: 1794:Jupyter Notebook 1717:IPython Notebook 1713:Jupyter Notebook 1669:Wolfram Language 1662:Wolfram Language 1651: 1649: 1647: 1632:Maple worksheets 1616:Maple (software) 1611:Maple worksheets 1468:ReStructuredText 1217:Markup language 1205: 1163:TeX: The program 1118: 1105: 1104: 1099: 1098: 1095: 1092: 1089: 1086: 1077: 1073: 1069: 1049: 1046: 1043: 1040: 1037: 1034: 1031: 1028: 1025: 1022: 1019: 1016: 1013: 1010: 1007: 1004: 1001: 998: 995: 992: 989: 986: 983: 980: 977: 974: 971: 968: 965: 962: 959: 956: 953: 950: 947: 944: 941: 938: 935: 932: 929: 926: 923: 920: 917: 914: 911: 908: 905: 902: 899: 896: 893: 890: 887: 884: 881: 878: 875: 872: 869: 866: 863: 860: 857: 854: 851: 848: 845: 842: 839: 836: 833: 830: 827: 824: 821: 818: 815: 812: 809: 806: 803: 800: 797: 794: 791: 788: 785: 782: 779: 776: 773: 770: 767: 764: 761: 758: 755: 752: 749: 746: 743: 740: 737: 734: 731: 728: 725: 722: 719: 716: 713: 710: 707: 704: 701: 698: 695: 692: 689: 682: 678: 674: 670: 662:Program as a web 653: 650: 647: 644: 641: 638: 635: 632: 629: 626: 623: 620: 617: 614: 611: 608: 605: 602: 599: 596: 593: 590: 587: 584: 581: 578: 575: 572: 569: 566: 563: 560: 557: 554: 551: 548: 545: 542: 539: 536: 533: 530: 527: 524: 521: 518: 515: 512: 509: 506: 503: 500: 497: 494: 491: 488: 485: 482: 479: 476: 473: 470: 467: 464: 461: 458: 455: 452: 449: 446: 443: 440: 437: 434: 431: 428: 425: 422: 419: 416: 413: 410: 407: 404: 401: 398: 395: 392: 389: 386: 383: 380: 377: 374: 371: 368: 365: 362: 359: 356: 353: 350: 347: 344: 341: 338: 335: 332: 329: 326: 323: 320: 313: 308: 304: 300: 295: 271: 176:computer science 153:, especially in 96:natural language 63:and traditional 53:natural language 49:computer program 5226: 5225: 5221: 5220: 5219: 5217: 5216: 5215: 5191: 5190: 5189: 5184: 5165:Man or boy test 5133: 5079: 5056: 5047:Computer Modern 5028: 4993: 4974:Surreal Numbers 4933: 4928: 4898: 4893: 4835: 4828: 4719:Metaprogramming 4713: 4629: 4624: 4611: 4593:Graph rewriting 4431: 4407:Inductive logic 4387:Abductive logic 4373: 4330: 4293:Dependent types 4241: 4220: 4192:Prototype-based 4172: 4170:Object-oriented 4164: 4160:Nested function 4155:Invariant-based 4097: 4087: 4037: 4032: 4021:10.1.1.537.6728 4007: 3998: 3979: 3974: 3961: 3954: 3946:. McGraw Hill. 3941: 3935: 3915: 3909: 3894: 3890: 3888:Further reading 3885: 3875: 3873: 3860: 3859: 3855: 3845: 3843: 3833: 3832: 3828: 3822:listings manual 3819: 3815: 3805: 3803: 3798: 3797: 3793: 3779: 3778: 3774: 3762: 3757: 3756: 3752: 3745: 3730: 3729: 3725: 3715: 3713: 3710: 3705: 3704: 3700: 3690: 3688: 3676: 3671: 3670: 3666: 3639: 3638: 3631: 3621: 3619: 3618:on May 24, 2017 3606: 3605: 3601: 3591: 3589: 3583:"Literate Agda" 3581: 3580: 3576: 3566: 3564: 3556: 3555: 3551: 3541: 3539: 3531: 3530: 3526: 3518: 3514: 3504: 3502: 3497: 3496: 3492: 3483: 3482: 3478: 3465: 3464: 3460: 3451: 3450: 3446: 3425: 3424: 3420: 3414:Wayback Machine 3407:Knuth's website 3396: 3392: 3382: 3380: 3375: 3374: 3363: 3358: 3351:Donald E. Knuth 3349: 3341: 3337: 3316: 3315: 3308: 3298: 3296: 3289: 3285: 3284: 3280: 3275: 3268:Donald E. Knuth 3266: 3247: 3243: 3238: 3231:Donald E. Knuth 3229: 3221: 3217: 3199: 3197: 3189: 3188: 3181: 3176: 3169:Donald E. Knuth 3167: 3159: 3155: 3145: 3143: 3136: 3132: 3131: 3127: 3103: 3099: 3094: 3087:Donald E. Knuth 3085: 3077: 3073: 3051: 3050: 3046: 3036: 3034: 3030: 3005: 3000: 2999: 2995: 2985: 2983: 2956: 2948: 2942: 2936: 2930: 2924: 2918: 2917: 2908: 2904: 2869: 2864: 2838: 2825: 2824: 2779: 2778: 2702: 2701: 2696: 2695: 2692: 2688: 2685: 2682: 2679: 2676: 2673: 2670: 2667: 2664: 2661: 2658: 2655: 2652: 2649: 2646: 2643: 2640: 2637: 2634: 2631: 2628: 2625: 2622: 2619: 2616: 2613: 2610: 2607: 2604: 2601: 2598: 2595: 2592: 2589: 2586: 2583: 2579: 2576: 2573: 2571:\endlstlistings 2570: 2567: 2564: 2561: 2557: 2555:\newenvironment 2554: 2547: 2543: 2539: 2533: 2532: 2531:here more text 2528: 2524: 2521: 2518: 2515: 2512: 2509: 2506: 2503: 2500: 2497: 2494: 2491: 2488: 2485: 2482: 2479: 2476: 2473: 2470: 2467: 2464: 2461: 2457: 2454: 2451: 2442: 2438: 2423:Leo text editor 2256:web application 1800: 1705:Markup language 1645: 1643: 1635: 1191:documentation. 1147: 1134: 1116: 1112: 1107: 1102: 1096: 1093: 1090: 1087: 1084: 1075: 1071: 1067: 1064: 1051: 1050: 1047: 1044: 1041: 1038: 1035: 1032: 1029: 1026: 1023: 1020: 1017: 1014: 1011: 1008: 1005: 1002: 999: 996: 993: 990: 987: 984: 981: 978: 975: 972: 969: 966: 963: 960: 957: 954: 951: 948: 945: 942: 939: 936: 933: 930: 927: 924: 921: 918: 915: 912: 909: 906: 903: 900: 897: 894: 891: 888: 885: 882: 879: 876: 873: 870: 867: 864: 861: 858: 855: 852: 849: 846: 843: 840: 837: 834: 831: 828: 825: 822: 819: 816: 813: 810: 807: 804: 801: 798: 795: 792: 789: 786: 783: 780: 777: 774: 771: 768: 765: 762: 759: 756: 753: 750: 747: 744: 741: 738: 735: 732: 729: 726: 723: 720: 717: 714: 711: 708: 705: 702: 699: 696: 693: 690: 687: 680: 676: 672: 668: 664: 655: 654: 651: 649:<stdio.h> 648: 645: 642: 639: 636: 633: 630: 627: 624: 621: 618: 615: 612: 609: 606: 603: 600: 597: 594: 591: 588: 585: 582: 579: 576: 573: 570: 567: 564: 561: 558: 555: 552: 549: 546: 543: 540: 537: 534: 531: 528: 525: 522: 519: 516: 513: 510: 507: 504: 501: 498: 495: 492: 489: 486: 483: 480: 477: 474: 471: 468: 465: 462: 459: 456: 453: 450: 447: 444: 441: 438: 435: 432: 429: 426: 423: 420: 417: 414: 411: 408: 405: 402: 399: 396: 393: 390: 387: 384: 381: 378: 375: 372: 369: 366: 363: 360: 357: 354: 351: 348: 345: 342: 339: 336: 333: 330: 327: 324: 321: 318: 311: 306: 302: 298: 293: 290: 267: 261: 242: 212: 196: 163: 131: 17: 12: 11: 5: 5224: 5222: 5214: 5213: 5208: 5203: 5193: 5192: 5186: 5185: 5183: 5182: 5177: 5172: 5167: 5162: 5157: 5152: 5147: 5141: 5139: 5135: 5134: 5132: 5131: 5126: 5120: 5115: 5110: 5105: 5100: 5095: 5089: 5087: 5081: 5080: 5078: 5077: 5072: 5066: 5064: 5058: 5057: 5055: 5054: 5052:Concrete Roman 5049: 5044: 5038: 5036: 5030: 5029: 5027: 5026: 5020: 5014: 5009: 5003: 5001: 4995: 4994: 4992: 4991: 4984: 4977: 4970: 4963: 4956: 4949: 4941: 4939: 4935: 4934: 4929: 4927: 4926: 4919: 4912: 4904: 4895: 4894: 4892: 4891: 4886: 4881: 4876: 4871: 4866: 4861: 4856: 4851: 4846: 4840: 4838: 4830: 4829: 4827: 4826: 4821: 4816: 4811: 4806: 4784: 4779: 4774: 4764: 4759: 4754: 4749: 4744: 4739: 4729: 4723: 4721: 4715: 4714: 4712: 4711: 4706: 4701: 4696: 4691: 4686: 4681: 4676: 4671: 4666: 4661: 4651: 4646: 4641: 4635: 4633: 4617: 4616: 4613: 4612: 4610: 4609: 4604: 4589:Transformation 4586: 4581: 4576: 4571: 4566: 4561: 4556: 4551: 4546: 4541: 4536: 4527: 4522: 4517: 4512: 4507: 4502: 4497: 4492: 4487: 4482: 4477: 4475:Differentiable 4472: 4462: 4455:Automata-based 4452: 4447: 4441: 4439: 4433: 4432: 4430: 4429: 4424: 4419: 4414: 4409: 4404: 4394: 4389: 4383: 4381: 4375: 4374: 4372: 4371: 4366: 4361: 4356: 4346: 4340: 4338: 4332: 4331: 4329: 4328: 4322:Function-level 4319: 4310: 4305: 4300: 4295: 4290: 4285: 4280: 4275: 4270: 4265: 4255: 4249: 4247: 4232: 4226: 4225: 4222: 4221: 4219: 4218: 4213: 4208: 4203: 4198: 4184: 4182: 4166: 4165: 4163: 4162: 4157: 4152: 4147: 4142: 4137: 4135:Non-structured 4132: 4127: 4122: 4116: 4114: 4105: 4099: 4098: 4088: 4086: 4085: 4078: 4071: 4063: 4057: 4056: 4047: 4036: 4035:External links 4033: 4031: 4030: 4005: 3999:Mall, Daniel. 3996: 3972: 3959: 3952: 3939: 3933: 3913: 3907: 3891: 3889: 3886: 3884: 3883: 3853: 3826: 3813: 3791: 3772: 3750: 3743: 3723: 3698: 3664: 3629: 3599: 3574: 3549: 3524: 3512: 3490: 3476: 3458: 3444: 3418: 3390: 3361: 3347: 3335: 3306: 3278: 3264: 3241: 3227: 3215: 3179: 3165: 3153: 3125: 3097: 3083: 3071: 3044: 2993: 2905: 2903: 2900: 2899: 2898: 2892: 2882: 2876: 2868: 2865: 2863: 2862: 2847: 2840: 2823: 2820: 2817: 2814: 2811: 2808: 2805: 2802: 2799: 2796: 2793: 2790: 2787: 2784: 2782: 2780: 2777: 2774: 2771: 2768: 2765: 2762: 2759: 2756: 2753: 2750: 2747: 2744: 2741: 2738: 2735: 2732: 2729: 2726: 2723: 2720: 2717: 2714: 2711: 2709: 2700: 2553: 2450: 2431: 2418: 2412: 2411: 2409: 2406: 2403: 2398: 2393: 2376: 2370: 2369: 2358: 2356: 2354: 2349: 2344: 2335: 2329: 2328: 2305: 2303: 2301: 2288: 2279: 2274: 2268: 2267: 2252: 2250: 2248: 2239: 2230: 2225: 2219: 2218: 2215: 2213: 2210: 2201: 2192: 2175: 2169: 2168: 2166: 2163: 2160: 2155: 2153: 2148: 2142: 2141: 2139: 2137: 2134: 2129: 2127: 2122: 2116: 2115: 2112: 2109: 2104: 2099: 2074: 2068: 2067: 2065: 2063: 2061: 2032: 2030: 2025: 2019: 2018: 2016: 2014: 2012: 2007: 2005: 2000: 1994: 1993: 1991: 1988: 1985: 1971:Microsoft Word 1964: 1962: 1961:and Observable 1948: 1942: 1941: 1939: 1936: 1933: 1919:Microsoft Word 1912: 1910: 1893: 1886: 1885: 1874: 1872: 1870: 1868: 1866: 1864: 1858: 1857: 1854: 1852: 1850: 1848: 1846: 1844: 1838: 1837: 1834: 1831: 1821: 1819: 1817: 1815: 1809: 1808: 1806: 1804: 1798: 1796: 1787: 1781: 1780: 1778: 1775: 1772: 1766: 1761: 1759:Many Languages 1756: 1746: 1745: 1742: 1739: 1736: 1727: 1725: 1719: 1709: 1708: 1701: 1699: 1697: 1695: 1693: 1688: 1682: 1681: 1675: 1673: 1671: 1666: 1664: 1659: 1653: 1652: 1629: 1627: 1625: 1620: 1618: 1613: 1607: 1606: 1596: 1594: 1592: 1587: 1578: 1573: 1567: 1566: 1558: 1556: 1554: 1549: 1544: 1541: 1532: 1531: 1527: 1525: 1523: 1521: 1516: 1514: 1510: 1509: 1506: 1504: 1502: 1497: 1492: 1489: 1483: 1482: 1475: 1473: 1470: 1465: 1460: 1457: 1451: 1450: 1443: 1441: 1439: 1434: 1429: 1426: 1420: 1419: 1416: 1414: 1411: 1402: 1397: 1394: 1388: 1387: 1380: 1377: 1374: 1369: 1364: 1361: 1355: 1354: 1351: 1348: 1345: 1328: 1315: 1312: 1306: 1305: 1290: 1287: 1284: 1279: 1274: 1265: 1259: 1258: 1255: 1252: 1249: 1244: 1239: 1234: 1228: 1227: 1224: 1221: 1218: 1215: 1212: 1209: 1146: 1143: 1142: 1141: 1133: 1130: 1111: 1108: 1094:tot_line_count 1088:tot_word_count 1063: 1060: 686: 663: 660: 317: 289: 286: 260: 257: 253: 252: 249: 241: 238: 211: 208: 195: 192: 162: 159: 130: 127: 79:routinely for 15: 13: 10: 9: 6: 4: 3: 2: 5223: 5212: 5209: 5207: 5204: 5202: 5199: 5198: 5196: 5181: 5178: 5176: 5173: 5171: 5168: 5166: 5163: 5161: 5158: 5156: 5153: 5151: 5148: 5146: 5145:Dancing Links 5143: 5142: 5140: 5136: 5130: 5127: 5125: 5121: 5119: 5116: 5114: 5111: 5109: 5108:Knuth shuffle 5106: 5104: 5101: 5099: 5096: 5094: 5091: 5090: 5088: 5086: 5082: 5076: 5073: 5071: 5068: 5067: 5065: 5063: 5059: 5053: 5050: 5048: 5045: 5043: 5040: 5039: 5037: 5035: 5031: 5024: 5021: 5019: 5015: 5013: 5010: 5008: 5005: 5004: 5002: 5000: 4996: 4990: 4989: 4985: 4983: 4982: 4978: 4976: 4975: 4971: 4969: 4968: 4964: 4962: 4961: 4957: 4954: 4950: 4948: 4947: 4943: 4942: 4940: 4936: 4932: 4925: 4920: 4918: 4913: 4911: 4906: 4905: 4902: 4890: 4887: 4885: 4882: 4880: 4877: 4875: 4872: 4870: 4867: 4865: 4862: 4860: 4859:Data-oriented 4857: 4855: 4852: 4850: 4847: 4845: 4842: 4841: 4839: 4837: 4831: 4825: 4822: 4820: 4817: 4815: 4812: 4810: 4807: 4804: 4800: 4796: 4792: 4788: 4785: 4783: 4780: 4778: 4775: 4772: 4768: 4765: 4763: 4760: 4758: 4757:Homoiconicity 4755: 4753: 4750: 4748: 4745: 4743: 4740: 4737: 4733: 4730: 4728: 4725: 4724: 4722: 4720: 4716: 4710: 4707: 4705: 4702: 4700: 4697: 4695: 4692: 4690: 4687: 4685: 4682: 4680: 4677: 4675: 4672: 4670: 4667: 4665: 4664:Concurrent OO 4662: 4659: 4655: 4652: 4650: 4647: 4645: 4642: 4640: 4637: 4636: 4634: 4632: 4627: 4622: 4618: 4608: 4605: 4602: 4598: 4594: 4590: 4587: 4585: 4582: 4580: 4577: 4575: 4572: 4570: 4567: 4565: 4562: 4560: 4559:Set-theoretic 4557: 4555: 4552: 4550: 4547: 4545: 4542: 4540: 4539:Probabilistic 4537: 4535: 4531: 4528: 4526: 4523: 4521: 4518: 4516: 4513: 4511: 4508: 4506: 4503: 4501: 4498: 4496: 4493: 4491: 4488: 4486: 4483: 4481: 4478: 4476: 4473: 4470: 4466: 4463: 4460: 4456: 4453: 4451: 4448: 4446: 4443: 4442: 4440: 4438: 4434: 4428: 4425: 4423: 4420: 4418: 4415: 4413: 4410: 4408: 4405: 4402: 4398: 4395: 4393: 4390: 4388: 4385: 4384: 4382: 4380: 4376: 4370: 4367: 4365: 4362: 4360: 4357: 4354: 4350: 4347: 4345: 4342: 4341: 4339: 4337: 4333: 4327: 4323: 4320: 4318: 4317:Concatenative 4314: 4311: 4309: 4306: 4304: 4301: 4299: 4296: 4294: 4291: 4289: 4286: 4284: 4281: 4279: 4276: 4274: 4271: 4269: 4266: 4263: 4259: 4256: 4254: 4251: 4250: 4248: 4245: 4240: 4236: 4233: 4231: 4227: 4217: 4214: 4212: 4209: 4207: 4204: 4202: 4199: 4197: 4193: 4189: 4186: 4185: 4183: 4180: 4176: 4171: 4167: 4161: 4158: 4156: 4153: 4151: 4148: 4146: 4143: 4141: 4138: 4136: 4133: 4131: 4128: 4126: 4123: 4121: 4118: 4117: 4115: 4113: 4109: 4106: 4104: 4100: 4095: 4091: 4084: 4079: 4077: 4072: 4070: 4065: 4064: 4061: 4055: 4051: 4048: 4046: 4042: 4039: 4038: 4034: 4027: 4022: 4017: 4013: 4012: 4006: 4002: 3997: 3993: 3989: 3985: 3978: 3973: 3969: 3965: 3960: 3955: 3953:0-07-911616-7 3949: 3945: 3940: 3936: 3930: 3926: 3922: 3918: 3914: 3910: 3908:0-442-31946-0 3904: 3899: 3893: 3892: 3887: 3871: 3867: 3863: 3857: 3854: 3841: 3837: 3830: 3827: 3823: 3817: 3814: 3802: 3795: 3792: 3787: 3783: 3776: 3773: 3768: 3761: 3754: 3751: 3746: 3744:9781498716963 3740: 3736: 3735: 3727: 3724: 3709: 3702: 3699: 3686: 3682: 3675: 3668: 3665: 3661: 3657: 3653: 3649: 3648: 3643: 3636: 3634: 3630: 3617: 3613: 3609: 3603: 3600: 3588: 3584: 3578: 3575: 3563: 3559: 3553: 3550: 3538: 3534: 3528: 3525: 3521: 3516: 3513: 3501: 3494: 3491: 3486: 3480: 3477: 3472: 3468: 3462: 3459: 3454: 3448: 3445: 3440: 3436: 3432: 3428: 3422: 3419: 3415: 3411: 3408: 3404: 3400: 3394: 3391: 3379: 3372: 3370: 3368: 3366: 3362: 3356: 3352: 3346: 3339: 3336: 3331: 3327: 3323: 3319: 3313: 3311: 3307: 3295: 3288: 3282: 3279: 3273: 3269: 3263: 3261: 3259: 3253: 3245: 3242: 3236: 3232: 3226: 3219: 3216: 3212: 3209: 3196: 3192: 3186: 3184: 3180: 3174: 3170: 3164: 3157: 3154: 3142: 3135: 3129: 3126: 3122: 3118: 3114: 3113: 3108: 3101: 3098: 3092: 3088: 3082: 3075: 3072: 3067: 3063: 3059: 3055: 3048: 3045: 3029: 3024: 3019: 3015: 3011: 3004: 2997: 2994: 2981: 2976: 2972: 2968: 2964: 2963: 2955: 2951: 2946: 2945: 2940: 2939: 2934: 2933: 2928: 2927: 2922: 2921: 2915: 2913: 2911: 2907: 2901: 2896: 2893: 2890: 2886: 2883: 2880: 2877: 2874: 2871: 2870: 2866: 2860: 2856: 2852: 2848: 2845: 2841: 2818: 2815: 2809: 2806: 2803: 2797: 2794: 2791: 2788: 2783: 2772: 2766: 2754: 2748: 2736: 2730: 2724: 2721: 2718: 2715: 2712: 2699: 2551: 2536: 2448: 2436: 2432: 2428: 2424: 2420: 2419: 2417: 2410: 2407: 2404: 2402: 2399: 2397: 2394: 2392: 2388: 2384: 2380: 2377: 2375: 2372: 2371: 2367: 2363: 2359: 2357: 2355: 2353: 2350: 2348: 2345: 2343: 2339: 2336: 2334: 2331: 2330: 2326: 2322: 2318: 2314: 2310: 2306: 2304: 2302: 2300: 2296: 2292: 2289: 2287: 2283: 2280: 2278: 2275: 2273: 2270: 2269: 2265: 2261: 2257: 2253: 2251: 2249: 2247: 2243: 2240: 2238: 2234: 2231: 2229: 2226: 2224: 2221: 2220: 2216: 2214: 2211: 2209: 2205: 2202: 2200: 2196: 2193: 2191: 2187: 2183: 2179: 2176: 2174: 2171: 2170: 2167: 2164: 2161: 2159: 2156: 2154: 2152: 2149: 2147: 2144: 2143: 2140: 2138: 2135: 2133: 2130: 2128: 2126: 2123: 2121: 2118: 2117: 2113: 2110: 2108: 2105: 2103: 2100: 2098: 2094: 2090: 2086: 2082: 2078: 2075: 2073: 2070: 2069: 2066: 2064: 2062: 2060: 2056: 2052: 2048: 2044: 2040: 2036: 2033: 2031: 2029: 2026: 2024: 2021: 2020: 2017: 2015: 2013: 2011: 2008: 2006: 2004: 2001: 1999: 1996: 1995: 1992: 1989: 1986: 1984: 1980: 1976: 1972: 1968: 1965: 1963: 1960: 1956: 1952: 1949: 1947: 1944: 1943: 1940: 1937: 1934: 1932: 1928: 1924: 1920: 1916: 1913: 1911: 1909: 1905: 1901: 1897: 1894: 1891: 1888: 1887: 1883: 1879: 1875: 1873: 1871: 1869: 1867: 1865: 1863: 1860: 1859: 1855: 1853: 1851: 1849: 1847: 1845: 1843: 1840: 1839: 1835: 1832: 1829: 1825: 1822: 1820: 1818: 1816: 1814: 1811: 1810: 1807: 1805: 1799: 1797: 1795: 1791: 1788: 1786: 1783: 1782: 1779: 1776: 1773: 1770: 1767: 1765: 1762: 1760: 1757: 1755: 1751: 1748: 1747: 1743: 1740: 1737: 1735: 1731: 1728: 1726: 1723: 1720: 1718: 1714: 1711: 1710: 1706: 1702: 1700: 1698: 1696: 1694: 1692: 1689: 1687: 1684: 1683: 1679: 1676: 1674: 1672: 1670: 1667: 1665: 1663: 1660: 1658: 1655: 1654: 1642: 1641:MapleSoft.com 1638: 1633: 1630: 1628: 1626: 1624: 1621: 1619: 1617: 1614: 1612: 1609: 1608: 1604: 1600: 1597: 1595: 1593: 1591: 1588: 1586: 1582: 1579: 1577: 1574: 1572: 1569: 1568: 1564: 1559: 1557: 1555: 1553: 1550: 1548: 1545: 1542: 1540: 1537: 1534: 1533: 1528: 1526: 1524: 1522: 1520: 1517: 1515: 1512: 1511: 1507: 1505: 1503: 1501: 1498: 1496: 1493: 1490: 1488: 1485: 1484: 1480: 1476: 1474: 1471: 1469: 1466: 1464: 1461: 1458: 1456: 1453: 1452: 1448: 1444: 1442: 1440: 1438: 1435: 1433: 1430: 1427: 1425: 1422: 1421: 1417: 1415: 1412: 1410: 1406: 1403: 1401: 1398: 1395: 1393: 1390: 1389: 1385: 1381: 1378: 1375: 1373: 1370: 1368: 1365: 1362: 1360: 1357: 1356: 1352: 1349: 1346: 1344: 1340: 1336: 1332: 1329: 1327: 1323: 1319: 1316: 1313: 1311: 1308: 1307: 1303: 1299: 1295: 1291: 1288: 1285: 1283: 1280: 1278: 1275: 1273: 1269: 1266: 1264: 1261: 1260: 1256: 1253: 1250: 1248: 1245: 1243: 1240: 1238: 1235: 1233: 1230: 1229: 1225: 1222: 1219: 1216: 1213: 1210: 1207: 1206: 1203: 1201: 1197: 1192: 1190: 1186: 1182: 1178: 1174: 1170: 1169: 1164: 1160: 1156: 1152: 1144: 1139: 1136: 1135: 1131: 1129: 1127: 1123: 1109: 1079: 1061: 1059: 1057: 684: 661: 659: 315: 287: 285: 283: 279: 275: 270: 266: 258: 256: 250: 247: 246: 245: 239: 237: 234: 231: 227: 224: 219: 217: 209: 207: 204: 202: 193: 191: 188: 183: 181: 180:meta-language 177: 173: 169: 160: 158: 156: 152: 148: 144: 140: 136: 128: 126: 124: 120: 116: 115:documentation 111: 109: 105: 101: 97: 93: 88: 86: 82: 78: 74: 70: 67:, from which 66: 62: 58: 54: 50: 46: 42: 38: 31: 27: 23: 19: 5061: 4986: 4979: 4972: 4965: 4958: 4944: 4938:Publications 4931:Donald Knuth 4878: 4864:Event-driven 4268:Higher-order 4196:Object-based 4026:the original 4014:. XML 2002. 4010: 3983: 3943: 3920: 3874:. Retrieved 3870:the original 3865: 3856: 3844:. Retrieved 3840:the original 3829: 3816: 3804:. Retrieved 3794: 3784:– via 3775: 3765:– via 3758:Xie, Yihui. 3753: 3733: 3726: 3714:. Retrieved 3701: 3689:. Retrieved 3684: 3680: 3667: 3646: 3620:. Retrieved 3616:the original 3612:Eve Handbook 3611: 3602: 3590:. Retrieved 3586: 3577: 3567:November 15, 3565:. Retrieved 3561: 3552: 3542:November 28, 3540:. Retrieved 3536: 3527: 3515: 3505:November 13, 3503:. Retrieved 3493: 3479: 3470: 3461: 3447: 3421: 3398: 3393: 3381:. Retrieved 3354: 3343: 3338: 3325: 3297:. Retrieved 3293: 3281: 3271: 3257: 3255: 3251: 3249: 3244: 3234: 3223: 3218: 3205: 3198:. Retrieved 3172: 3161: 3156: 3144:. Retrieved 3140: 3128: 3120: 3110: 3100: 3090: 3079: 3074: 3053: 3047: 3035:. Retrieved 3013: 3009: 2996: 2984:. Retrieved 2966: 2960: 2944: 2938: 2932: 2926: 2920: 2697: 2565:\lstlistings 2537: 2534: 2446: 2426: 2415: 2309:out-of-order 2308: 1983:HTML widgets 1931:HTML widgets 1771:in comments 1644:. Retrieved 1640: 1599:CoffeeScript 1581:CoffeeScript 1576:CoffeeScript 1571:CoffeeScript 1384:literate.vim 1296:adapted for 1193: 1166: 1162: 1148: 1113: 1065: 1055: 1052: 1018:'\t' 976:'\n' 665: 656: 415:explanations 291: 277: 262: 254: 243: 220: 213: 205: 197: 187:preprocessor 184: 179: 164: 155:data science 141:and digital 132: 112: 89: 77:data science 45:Donald Knuth 36: 35: 30:Donald Knuth 25: 18: 5155:Knuth Prize 4874:Intentional 4854:Data-driven 4836:of concerns 4795:Inferential 4782:Multi-stage 4762:Interactive 4639:Actor-based 4626:distributed 4569:Stack-based 4369:Synchronous 4326:Value-level 4313:Applicative 4230:Declarative 4188:Class-based 4045:WikiWikiWeb 3716:January 22, 3691:January 22, 3640:Yihui Xie; 3537:Wolfram.com 3471:OrgMode.org 3299:December 7, 1975:LibreOffice 1923:LibreOffice 1752:plugin for 1715:, formerly 1686:Playgrounds 1214:Written in 1175:. The free 1006:' ' 889:' ' 586:definitions 517:Definitions 104:source code 92:programmers 85:open access 65:source code 47:in which a 5195:Categories 5085:Algorithms 4849:Components 4834:Separation 4809:Reflective 4803:by example 4747:Extensible 4621:Concurrent 4597:Production 4584:Templating 4564:Simulation 4549:Scientific 4469:Spacecraft 4397:Constraint 4392:Answer set 4344:Flow-based 4244:comparison 4239:Functional 4211:Persistent 4175:comparison 4140:Procedural 4112:Structured 4103:Imperative 3876:August 23, 3846:January 1, 3687:(3): 28–31 3433:(Report). 3383:January 4, 3200:January 4, 2986:January 4, 2973:: 97–111. 2902:References 2544:lstlisting 2538:The LaTeX 2396:JavaScript 2391:TypeScript 2387:JavaScript 2347:JavaScript 2342:TypeScript 2338:JavaScript 2321:JavaScript 2286:TypeScript 2282:JavaScript 2277:JavaScript 2272:Observable 2237:TypeScript 1979:slide show 1927:slide show 1890:R Markdown 1585:JavaScript 1552:Plain text 1547:Emacs Lisp 1009:&& 982:line_count 931:word_count 892:&& 361:characters 194:Advantages 172:pseudocode 168:algorithms 143:typography 139:algorithms 69:compilable 5042:AMS Euler 4736:Inductive 4732:Automatic 4554:Scripting 4253:Recursive 4016:CiteSeerX 3866:TEI-C.org 3660:Q76441281 3592:March 26, 3587:Agda Wiki 2795:⁡ 2773:γ 2770:→ 2767:α 2761:→ 2755:β 2752:→ 2749:α 2743:→ 2737:γ 2734:→ 2731:β 2427:outlining 2072:Codebraid 1392:FunnelWeb 1226:Comments 799:>>= 754:character 643:>>= 607:formatted 538:Functions 529:variables 98:in which 5012:Metafont 4999:Software 4889:Subjects 4879:Literate 4869:Features 4824:Template 4819:Symbolic 4791:Bayesian 4771:Hygienic 4631:parallel 4510:Modeling 4505:Low-code 4480:End-user 4417:Ontology 4349:Reactive 4336:Dataflow 3919:(1992). 3806:April 3, 3656:Wikidata 3410:Archived 3348:—  3330:Archived 3326:Perl.com 3265:—  3228:—  3166:—  3084:—  3028:Archived 2952:(1984). 2867:See also 2844:Algol 68 2540:listings 2401:Markdown 2366:browsers 2360:Enables 2352:Markdown 2190:Inform 7 2186:Inform 6 2158:Markdown 2107:Markdown 2055:AsciiDoc 2051:Markdown 1882:Markdown 1828:reactive 1824:Pluto.jl 1769:Markdown 1750:Jupytext 1603:Markdown 1590:Markdown 1539:org-mode 1372:Markdown 1359:Literate 1202:tools. 1024:continue 955:continue 856:>> 817:<< 790:<< 730:simplest 718:actually 709:counting 646:#include 628:<< 574:standard 556:>> 544:<< 541:>> 535:<< 532:>> 523:<< 520:>> 514:<< 511:>> 496:<< 439:overview 406:........ 240:Workflow 57:snippets 5175:-yllion 5016:MIXAL ( 4844:Aspects 4752:Generic 4742:Dynamic 4601:Pattern 4579:Tactile 4544:Quantum 4534:filters 4465:Command 4364:Streams 4359:Signals 4130:Modular 3622:May 25, 3146:June 3, 3112:Marmion 3037:May 30, 2435:Haskell 2362:Node.js 2333:Ganesha 2223:Mercury 1878:Datalog 1754:Jupyter 1646:May 30, 1030:in_word 940:in_word 922:in_word 691:present 640:include 568:include 553:program 508:include 478:program 466:defined 322:purpose 259:Example 233:Javadoc 161:Concept 75:and in 4607:Visual 4574:System 4459:Action 4283:Strict 4018:  3950:  3931:  3905:  3786:GitHub 3767:GitHub 3741:  3681:R News 3658:  3439:GitHub 3405:or on 3399:ADVENT 2885:Sweave 2577:\begin 2455:\begin 2425:is an 2233:Python 2228:Python 2151:MATLAB 2125:Python 2120:Pweave 2102:Python 2089:Python 2077:Pandoc 2057:, and 1998:Sweave 1955:Python 1946:Quarto 1900:Python 1790:Python 1764:Python 1722:Python 1513:Codnar 1479:Python 1463:Python 1324:, and 1242:Pascal 1237:Pascal 1159:Pascal 823:buffer 772:begins 760:change 631:Header 622:stderr 616:stdout 610:output 526:Global 499:Header 385:number 100:macros 61:macros 5138:Other 5034:Fonts 4884:Roles 4767:Macro 4530:Pipes 4450:Array 4427:Query 4379:Logic 4288:GADTs 4278:Total 4201:Agent 3980:(PDF) 3763:(PDF) 3711:(PDF) 3677:(PDF) 3290:(PDF) 3137:(PDF) 3031:(PDF) 3016:(3). 3006:(PDF) 2969:(2). 2957:(PDF) 2889:Knitr 2638:gamma 2635:-> 2632:alpha 2626:-> 2617:-> 2614:alpha 2608:-> 2602:gamma 2599:-> 2295:KaTeX 2246:ipynb 2212:Yes? 2173:Inweb 2085:Julia 2035:LaTeX 2023:Knitr 1959:Julia 1904:Julia 1826:is a 1801:nbdev 1785:nbdev 1734:ipynb 1563:noweb 1536:Emacs 1487:Molly 1455:pyWeb 1447:noweb 1437:LaTeX 1424:NuWEB 1413:Yes? 1343:troff 1331:LaTeX 1310:NoWEB 1208:Name 1138:Axiom 1124:game 841:break 835:empty 802:while 763:state 736:write 700:which 694:chunk 673:while 634:files 592:since 502:files 475:noweb 391:lines 376:files 346:words 340:lines 337:count 282:noweb 108:essay 39:is a 5075:CWEB 5023:MMIX 4532:and 4179:list 4054:CTAN 3948:ISBN 3929:ISBN 3903:ISBN 3878:2018 3848:2013 3820:See 3808:2015 3739:ISBN 3718:2012 3693:2012 3624:2017 3594:2017 3569:2015 3544:2018 3507:2014 3385:2009 3301:2018 3202:2009 3148:2019 3039:2020 2988:2009 2887:and 2792:comp 2691:code 2686:\end 2653:comp 2620:beta 2596:beta 2587:comp 2582:code 2560:code 2548:code 2527:code 2522:\end 2516:fact 2477:fact 2465:fact 2460:code 2443:.lhs 2441:and 2433:The 2421:The 2405:Yes 2374:JWEB 2299:HTML 2260:HTML 2242:JSON 2208:HTML 2199:CWEB 2165:Yes 2114:Yes 2097:Bash 2081:Rust 2047:HTML 1906:and 1880:and 1792:and 1777:Yes 1730:JSON 1648:2020 1519:Ruby 1500:HTML 1495:Perl 1472:Yes 1407:and 1405:HTML 1376:Yes 1347:Yes 1341:and 1339:HTML 1326:Icon 1300:and 1286:Yes 1270:and 1263:CWEB 1251:Yes 1183:and 1177:CWEB 1085:long 991:else 901:0177 898:< 886:> 853:file 820:Fill 796:file 793:Scan 784:word 778:ends 751:each 745:look 703:does 677:case 604:send 598:want 565:must 550:main 460:that 448:file 427:then 421:Here 412:more 400:file 370:list 274:CWEB 265:Unix 230:Java 223:Perl 83:and 5070:WEB 5018:MIX 5007:TeX 4437:DSL 4052:at 4043:at 3988:doi 3208:TeX 3062:doi 3018:doi 2975:doi 2855:TEI 2439:.hs 2408:No 2383:C++ 2325:Npm 2313:DAG 2297:), 2291:TeX 2264:PDF 2262:or 2204:TeX 2182:C++ 2162:No 2136:No 2132:PDF 2111:No 2043:LyX 2039:PDF 2010:PDF 1990:Yes 1987:No 1967:PDF 1938:Yes 1935:No 1915:PDF 1908:SQL 1833:Yes 1774:No 1741:Yes 1738:No 1623:XML 1543:Any 1491:Any 1459:Any 1432:C++ 1428:Any 1409:TeX 1396:Any 1363:Any 1335:TeX 1322:AWK 1314:Any 1302:C++ 1294:WEB 1292:Is 1282:TeX 1268:C++ 1247:TeX 1232:WEB 1189:PDF 1185:C++ 1155:TeX 1151:WEB 1056:web 868:ptr 847:end 757:and 727:the 721:one 715:was 706:the 688:The 675:or 619:and 571:the 547:The 472:the 445:the 382:The 352:and 319:The 228:or 201:TeX 170:in 147:WEB 110:. 59:of 28:by 5197:: 4801:, 4797:, 4793:, 4599:, 4595:, 4324:, 4315:, 4194:, 4190:, 4177:, 3982:. 3966:. 3923:. 3864:. 3683:. 3679:. 3654:, 3650:, 3632:^ 3610:. 3585:. 3560:. 3535:. 3469:. 3364:^ 3353:, 3328:. 3324:. 3309:^ 3292:. 3270:, 3233:, 3204:. 3182:^ 3171:, 3139:. 3105:— 3089:, 3056:. 3026:. 3014:46 3012:. 3008:. 2967:27 2965:. 2959:. 2909:^ 2725::: 2590::: 2568:}{ 2562:}{ 2389:, 2385:, 2381:, 2340:, 2284:, 2235:, 2206:, 2197:, 2188:, 2184:, 2180:, 2095:, 2091:, 2087:, 2083:, 2079:, 2053:, 2049:, 2045:, 2041:, 2037:, 1973:, 1969:, 1957:, 1953:, 1921:, 1917:, 1902:, 1898:, 1639:. 1583:, 1449:. 1386:) 1379:No 1350:No 1337:, 1333:, 1320:, 1304:. 1289:No 1254:No 1128:. 1117:wc 1015:!= 1003:!= 994:if 985:++ 973:== 964:if 934:++ 913:if 877:if 871:++ 850:of 844:at 832:is 829:it 826:if 775:or 769:it 766:if 748:at 742:We 733:to 724:of 681:wc 671:, 669:if 637:to 613:to 601:to 595:we 562:We 505:to 487:nw 481:wc 469:by 463:is 451:wc 442:of 436:an 433:is 403:is 394:in 388:of 373:of 364:in 358:or 334:to 331:is 328:wc 325:of 294:wc 269:wc 185:A 157:. 5025:) 4955:" 4951:" 4923:e 4916:t 4909:v 4805:) 4789:( 4773:) 4769:( 4738:) 4734:( 4660:) 4656:( 4628:, 4623:, 4603:) 4591:( 4471:) 4467:( 4461:) 4457:( 4403:) 4399:( 4355:) 4351:( 4264:) 4260:( 4246:) 4242:( 4181:) 4173:( 4096:) 4092:( 4082:e 4075:t 4068:v 4003:. 3994:. 3990:: 3970:. 3956:. 3937:. 3911:. 3880:. 3850:. 3810:. 3788:. 3769:. 3747:. 3720:. 3695:. 3685:2 3626:. 3596:. 3571:. 3546:. 3509:. 3487:. 3473:. 3455:. 3441:. 3416:. 3387:. 3303:. 3150:. 3068:. 3064:: 3041:. 3020:: 2990:. 2977:: 2822:) 2819:x 2816:f 2813:( 2810:g 2807:= 2804:x 2801:) 2798:f 2789:g 2786:( 2776:) 2764:( 2758:) 2746:( 2740:) 2728:( 2722:p 2719:m 2716:o 2713:c 2693:} 2689:{ 2683:) 2680:x 2677:f 2674:( 2671:g 2668:= 2665:x 2662:) 2659:f 2656:` 2650:` 2647:g 2644:( 2641:) 2629:( 2623:) 2611:( 2605:) 2593:( 2584:} 2580:{ 2574:} 2558:{ 2529:} 2525:{ 2519:n 2513:* 2510:) 2507:1 2504:+ 2501:n 2498:( 2495:= 2492:) 2489:1 2486:+ 2483:n 2480:( 2474:1 2471:= 2468:0 2462:} 2458:{ 2379:C 2293:( 2195:C 2178:C 2093:R 2028:R 2003:R 1951:R 1896:R 1650:. 1400:C 1367:D 1318:C 1298:C 1277:C 1272:C 1181:C 1106:@ 1097:, 1091:, 1076:+ 1048:@ 1045:} 1039:; 1036:0 1033:= 1027:; 1021:) 1012:c 1000:c 997:( 988:; 979:) 970:c 967:( 961:} 958:; 952:} 949:; 946:1 943:= 937:; 928:{ 925:) 919:! 916:( 907:{ 904:) 895:c 883:c 880:( 874:; 865:* 862:= 859:c 838:; 814:{ 811:) 808:1 805:( 787:. 781:a 739:. 712:, 697:, 652:@ 625:. 589:, 583:O 580:/ 577:I 559:@ 490:: 484:. 457:c 454:. 430:, 424:, 418:/ 409:/ 397:a 379:. 367:a 355:/ 349:, 343:, 303:@ 297:(

Index


Donald Knuth
programming paradigm
Donald Knuth
computer program
natural language
snippets
macros
source code
compilable
scientific computing
data science
reproducible research
open access
programmers
natural language
macros
source code
essay
documentation
computer language
language-agnostic
Stanford University
algorithms
typography
WEB
computational notebooks
data science
algorithms
pseudocode

Text is available under the Creative Commons Attribution-ShareAlike License. Additional terms may apply.

↑