This anthology of essays from the inventor of literate programming includes Knuth's early papers on related topics such as structured programming, as well as the Computer Journal article that launched literate programming itself.
Author: Donald Ervin Knuth
Publisher: Stanford Univ Center for the Study
This anthology of essays from Donald Knuth, the inventor of literate programming includes early essays on related topics such as structured programming, as well as The Computer Journal article that launched literate programming itself. Many examples are given, including excerpts from the programs for TeX and METAFONT. The final essay is an example of CWEB, a system for literate programming in C and related languages.Knuth feels that computer programs and books about computer programming should be interesting, entertaining, and literate. Thirteen of Knuth's most interesting essays are collected here, including the Computer Journal article that launched literate programming. Although most of the examples are in either Pascal or ALGOL 60, C programmers and others will still benefit from the material. The last essay describes CWEB, a system for literate programming in C and related languages. Highly recommended for all programmers and would-be programmers.
Literate programming is sort of like that for coding, except you write your
commentary down alongside the source code. Knuth did an experiment with
seven undergraduates one summer, teaching them literate programming; six of
them loved it ...
Author: Adam Barr
Publisher: MIT Press
An industry insider explains why there is so much bad software—and why academia doesn't teach programmers what industry wants them to know. Why is software so prone to bugs? So vulnerable to viruses? Why are software products so often delayed, or even canceled? Is software development really hard, or are software developers just not that good at it? In The Problem with Software, Adam Barr examines the proliferation of bad software, explains what causes it, and offers some suggestions on how to improve the situation. For one thing, Barr points out, academia doesn't teach programmers what they actually need to know to do their jobs: how to work in a team to create code that works reliably and can be maintained by somebody other than the original authors. As the size and complexity of commercial software have grown, the gap between academic computer science and industry has widened. It's an open secret that there is little engineering in software engineering, which continues to rely not on codified scientific knowledge but on intuition and experience. Barr, who worked as a programmer for more than twenty years, describes how the industry has evolved, from the era of mainframes and Fortran to today's embrace of the cloud. He explains bugs and why software has so many of them, and why today's interconnected computers offer fertile ground for viruses and worms. The difference between good and bad software can be a single line of code, and Barr includes code to illustrate the consequences of seemingly inconsequential choices by programmers. Looking to the future, Barr writes that the best prospect for improving software engineering is the move to the cloud. When software is a service and not a product, companies will have more incentive to make it good rather than “good enough to ship."
"We assess the "computer science" capabilities of our cP systems by solving a version of a famous programming pearl, originally posed by Jon Bentley (1984): printing the most common words in a text file, in their frequency order.
Author: Radu Nicolescu
"We assess the "computer science" capabilities of our cP systems by solving a version of a famous programming pearl, originally posed by Jon Bentley (1984): printing the most common words in a text file, in their frequency order. Several interesting solutions have been proposed by Knuth (an exquisite model of literate programming, 1986), McIlroy (an engineering example of combining a timeless set of tools, 1986), Hanson (an alternate efficient solution, 1987). Here we propose a concise efficient solution based on the fast parallel and associative capabilities of our cP systems. We also briefly check their sorting capabilities and propose a dynamic version of the classical pigeonhole algorithm.Keywords: Literate programming, sorting, parallel sorting, pigeonhole algorithm, dynamic pigeon-hole algorithm, associative data structures, membrane computing, P systems, cP systems, inter-cell parallelism, intra-cell parallelism, Prolog terms and unification, complex symbols, nested subcells, generic rules"--Page 1.
Please note that the content of this book primarily consists of articles available from Wikipedia or other free sources online.
Author: Source Wikipedia
Please note that the content of this book primarily consists of articles available from Wikipedia or other free sources online. Pages: 33. Chapters: TeX, Metafont, Literate programming, MMIX, Knuth-Morris-Pratt algorithm, Knuth's up-arrow notation, Quater-imaginary base, Knuth's Algorithm X, Knuth-Bendix completion algorithm, Trabb Pardo-Knuth algorithm, Dancing Links, Knuth reward check, Man or boy test, Computer Modern, -yllion, The Complexity of Songs, Knuth Prize, Concrete Roman. Excerpt: TeX ( as in Greek, but often pronounced in English) is a typesetting system designed and mostly written by Donald Knuth. Within the typesetting system, its name is formatted as X. Together with the METAFONT language for font description and the Computer Modern family of typefaces, TeX was designed with two main goals in mind: to allow anybody to produce high-quality books using a reasonable amount of effort, and to provide a system that would give exactly the same results on all computers, now and in the future. TeX is one popular means by which to typeset complex mathematical formulae; it has been noted as one of the most sophisticated digital typographical systems in the world. TeX is popular in academia, especially in mathematics, computer science, economics, engineering, physics, statistics, and quantitative psychology. It has largely displaced Unix troff, the other favored formatter, in many Unix installations, which use both for different purposes. It is now also being used for many other typesetting tasks, especially in the form of LaTeX and other template packages. The widely used MIME type for TeX is application/x-tex. TeX is free software. When the first volume of Knuth's The Art of Computer Programming was published in 1969, it was typeset using hot metal type set by a Monotype Corporation typecaster with a hot metal typesetting machine from the 19th century which produced a "good classic style" appreciated by Knuth. When the second edition of the second...
The use of such tools can aid debugging and make it simpler to compare different
versions of a program with a diff command. ... 5.18 Literate Programming In the
1980s Knuth championed the idea of literate programming, in which a document
Author: Nicholas J. Higham
Publisher: Princeton University Press
This is the most authoritative and accessible single-volume reference book on applied mathematics. Featuring numerous entries by leading experts and organized thematically, it introduces readers to applied mathematics and its uses; explains key concepts; describes important equations, laws, and functions; looks at exciting areas of research; covers modeling and simulation; explores areas of application; and more. Modeled on the popular Princeton Companion to Mathematics, this volume is an indispensable resource for undergraduate and graduate students, researchers, and practitioners in other disciplines seeking a user-friendly reference book on applied mathematics. Features nearly 200 entries organized thematically and written by an international team of distinguished contributors Presents the major ideas and branches of applied mathematics in a clear and accessible way Explains important mathematical concepts, methods, equations, and applications Introduces the language of applied mathematics and the goals of applied mathematical research Gives a wide range of examples of mathematical modeling Covers continuum mechanics, dynamical systems, numerical analysis, discrete and combinatorial mathematics, mathematical physics, and much more Explores the connections between applied mathematics and other disciplines Includes suggestions for further reading, cross-references, and a comprehensive index
Nuweb , A simple literate programming tool . Technical report , Rice University ,
Houston , TX , USA , 1993 . ( 2 ) M. E. Brown and B. Childs . An interactive
environment for literate programming . Structured Programming , 11 ( 1 ) : 1125 ,
This work contains the proceedings of the 8th International Workshop on Program Comprehension, 2000. Papers address: theories and models for software comprehension; cognitive processes in program comprehension; tools facilitating software comprehension; and more.
Programs of this kind are called literate programs and they assume the
appearance of documents that describe programs . ... 1 1.2 Literate Programming
Systems Systems that provide the tools needed for practicing literate programming are ...
The tool supports the concepts of literate programming and hypertext and can
also be used for documenting existing software systems . We have been using
the presented tool in various projects at our institute . Its usefulness has been
Introduction have one CWEB that could be used for writing literate programs in
English , Polish and many other languages . If this idea is feasible , it would make literate programming accessible to programmers who like to write and to explain
In their book, F.L. Bauer and H. Wossner1 described a formal approach to
programming language concepts and ... P. Pepper proposes "Literate Program
Derivation": he combines the ideas of Don Knuth's literate programming with the
Author: Manfred Broy
Publisher: Springer Science & Business Media
This volume is a collection of papers presenting work based on the ideas of the CIP project. The CIP project proposed a formal approach to programming language concepts and program development based on algebraic specifications and program transformations.
Author: Electrochemical Society. Industrial Electrolysis and Electrochemical Engineering DivisionPublish On: 1998
Literate Programming for Mathematical Modeling of Battery Systems R . M .
Spotnitz , ( a ) G . S . Nagarajan , ( 2 ) J . W . Van ... Literate programming is
shown to allow tight coupling of high - level conceptual views of algorithms with
Author: Electrochemical Society. Industrial Electrolysis and Electrochemical Engineering Division
1.3 Literate Programming for Z and Code WEB was originally designed with
Pascal in mind . However , versions for different languages and platforms have
been developed . There are some that support different languages
3 Literate Programming for Z and Code WEB was originally designed with Pascal
in mind . However , versions for different languages and platforms have been
developed . There are some that support different languages simultaneously .
Use literate programming. Another method of making sense of undocumented
legacy code is literate programming, invented by Donald Knuth. I use literate programming extensively when I have to fix orphaned code. Literate programming is ...
Author: Scott W. Ambler
Publisher: CRC Press
Is the Unified Process the be all and end all standard for developing object-oriented component-based software? This book is the final in a four volume series that presents a critical review of the Unified Process. The authors present a survey of the alte
This book introduces graph algorithms on an intuitive basis followed by a detailed exposition in a literate programming style, with correctness proofs as well as worst-case analyses.
Author: Gabriel Valiente
Publisher: Springer Science & Business Media
Graph algorithms is a well-established subject in mathematics and computer science. Beyond classical application fields, such as approximation, combinatorial optimization, graphics, and operations research, graph algorithms have recently attracted increased attention from computational molecular biology and computational chemistry. Centered around the fundamental issue of graph isomorphism, this text goes beyond classical graph problems of shortest paths, spanning trees, flows in networks, and matchings in bipartite graphs. Advanced algorithmic results and techniques of practical relevance are presented in a coherent and consolidated way. This book introduces graph algorithms on an intuitive basis followed by a detailed exposition in a literate programming style, with correctness proofs as well as worst-case analyses. Furthermore, full C++ implementations of all algorithms presented are given using the LEDA library of efficient data structures and algorithms.
CNEST AND CSCOPE : TOOLS FOR THE LITERATE PROGRAMMING
ENVIRONMENT Eduardo Kortright David ... In comparing a literate program with
its non - literate equivaThe literate programming paradigm , originally developed
by lent ...
Expanding the Role of Tools in a Literate Programming Environment Kent Beck
Ward Cunningham Tektronix , Inc. 1. The Expanded Role of Programmers
Traditionally , the programmer's role has been to understand a problem and
This is the latest volume in the 'Workshops in Computing' series, and contains papers from the International Workshop on Hpyermedia Design, held in Montpellier, France, from 1 - 2 June 1995.
Author: Sylvain Fraisse
Publisher: Springer Science & Business Media
This is the latest volume in the 'Workshops in Computing' series, and contains papers from the International Workshop on Hpyermedia Design, held in Montpellier, France, from 1 - 2 June 1995. The workshop aimed to provide a forum for researchers and practitioners from a variety of backgrounds to discuss the many facets of hypermedia design. Among the specific topics covered by the papers are: design methods, multimedia modelling, higher structures in hypermedia design spaces, user-interface design for hypermedia, building distributed web applications, and hyperdialogs. The resulting volume provides a comprehensive overview of the state of the art in this important field. It will be of interest to researchers, practitioners and students involved in any aspect of hypermedia design.