Location via proxy:   [ UP ]  
[Report a bug]   [Manage cookies]                
skip to main content
article

Literate programming

Published: 29 May 1984 Publication History
  • Get Citation Alerts
  • Abstract

    No abstract available.

    Cited By

    View all
    • (2024)Cloud-Operated Open Literate Educational Resources: The Case of the MyBinderIEEE Transactions on Learning Technologies10.1109/TLT.2023.334369017(893-902)Online publication date: 1-Jan-2024
    • (2024)Grants4Companies: Applying Declarative Methods for Recommending and Reasoning About Business Grants in the Austrian Public Administration (System Description)Functional and Logic Programming10.1007/978-981-97-2300-3_9(151-164)Online publication date: 15-May-2024
    • (2023)On Normative Arrows and Comparing Tax Automation SystemsProceedings of the Nineteenth International Conference on Artificial Intelligence and Law10.1145/3594536.3595160(432-436)Online publication date: 19-Jun-2023
    • Show More Cited By

    Recommendations

    Reviews

    Olivier Louis Marie Lecarme

    Any paper authored by Knuth is worth reading, and often entertaining, even when somewhat irritating. This one is exactly in that mood, as exemplified by its provocative title. The paper describes and assesses, mainly by way a long example, a programming language and documentation system called WEB. Input text contains both a complete program and its documentation in a disciplined and systematic form. Depending upon the system component into which this text is fed, the output is a source PASCAL program, ready to be compiled into an executable program, or a source T EX text, ready to be compiled into a phototypesetter script. The sections are as follows: introduction, the WEB system, a complete example, how the example was specified, the tangled output (the PASCAL text), the woven output (the T EX text), additional bells and whistles, Occam's razor (WEB macros), portability, programs as webs, stylistic issues, econimic issues, related work, and retrospect and prospects. The paper is phototypeset using the WEB system (of course). It is very well presented, although somewhat too sumptuous in its use of various fonts, as is generally the case in texts typeset by programmers instead of typographers. Using at least ten different fonts in a 15:Upage text is really too much. However, the paper is very easy and pleasant to read, and almost free of typos. On the positive aide, I found the whole idea extremely interesting and fruitful. Since the program is hidden in its documentation, it becomes impossible to modify it without changing the documentation at the same time. (In fact, the program is a byporduct of the documentation.) More importantly, in my opinion the order in which the program is designed and written no longer needs to be related to the order in which it will be compiled. What is good for a compiler is not necessarily good for a programmer, and vice:Uversa. It is time to consider as abvious that the text by the compiler is the result of come preprocessing (collecting scattered pieces, reordering them, macroprocessing, etc.) Another very important point is that the WEB idea is entirely independent independent of the supporting languages: T EX and PASCAL in this case, but TROFF/NROFF and C in another experiment. On the negative side, most offensive is the lack of readability and writeability of the input text: to be forced to write character sequences like :02\def\]{$]\]]$\}” is really unbearable. The blame mainly lies with T EX, but TROFF/NROFF would not be better. As demonstrated by Knuth's unfortunate choice of MIX in his opus magnum, he is not really interested in the cosmetics of the support languages of his worke. Here the difficulty is incoreased by the extreme dissimilarity between input and output. In order to modify the output result, users must modify something unreadable and very far from the result they see. This is a customary problem in most text processing systems, although there exist at least three possibilities: the input text is the reference text, upon which all modifications are made; (2) the output text is the reference text, and modifications are made in terms of pages, columns, sections, paragraphs, sentences, words, etc.; and (3) input and output are very similar, the visible structure of the input text being the natural way to describe the final appearance of the output text. Solution 3 is extremely infrequent, although the easiest to use. Solution 2, equally infrequent, has at least the immense merit of uniformity. Solution 1 is presently the rule in text processing systems, simply because it is easier to implement and does not necessitate a specialized text editor; but this is really unfortunate. Another important shortcoming of WEB, which is in fact inherent in the idea, is that the graph structure of the program and of its documentation is hardly visible, although this structure would be the best tool for mastering program complexity. Maybe this is the major point where an improvement would be needed. Finally, it is regrettable that phototypeset output is so slow and expensive that the user normally does not work on an up:Uto:Udate version of the output text, or uses the unreadable input as the support of modifications. This inconvenience is strongly related to the criticism I made about the distance between input and output forms. Here too, much progress has to be done in text processing. It is time that designers take interest in less primitive input languages, and find idea other than interspersing unreadable code sequences among the material to be typeset.

    Access critical reviews of Computing literature here

    Become a reviewer for Computing Reviews.

    Comments

    Information & Contributors

    Information

    Published In

    cover image The Computer Journal
    The Computer Journal  Volume 27, Issue 2
    May 1984
    75 pages
    ISSN:0010-4620
    Issue’s Table of Contents

    Publisher

    Oxford University Press, Inc.

    United States

    Publication History

    Published: 29 May 1984

    Qualifiers

    • Article

    Contributors

    Other Metrics

    Bibliometrics & Citations

    Bibliometrics

    Article Metrics

    • Downloads (Last 12 months)0
    • Downloads (Last 6 weeks)0
    Reflects downloads up to 10 Aug 2024

    Other Metrics

    Citations

    Cited By

    View all
    • (2024)Cloud-Operated Open Literate Educational Resources: The Case of the MyBinderIEEE Transactions on Learning Technologies10.1109/TLT.2023.334369017(893-902)Online publication date: 1-Jan-2024
    • (2024)Grants4Companies: Applying Declarative Methods for Recommending and Reasoning About Business Grants in the Austrian Public Administration (System Description)Functional and Logic Programming10.1007/978-981-97-2300-3_9(151-164)Online publication date: 15-May-2024
    • (2023)On Normative Arrows and Comparing Tax Automation SystemsProceedings of the Nineteenth International Conference on Artificial Intelligence and Law10.1145/3594536.3595160(432-436)Online publication date: 19-Jun-2023
    • (2023)Refactoring in Computational NotebooksACM Transactions on Software Engineering and Methodology10.1145/357603632:3(1-24)Online publication date: 26-Apr-2023
    • (2023)Understanding the Needs of Enterprise Users in Collaborative Python NotebooksExtended Abstracts of the 2023 CHI Conference on Human Factors in Computing Systems10.1145/3544549.3573843(1-7)Online publication date: 19-Apr-2023
    • (2023)An Alternative to Cells for Selective Execution of Data Science PipelinesProceedings of the 45th International Conference on Software Engineering: New Ideas and Emerging Results10.1109/ICSE-NIER58687.2023.00029(129-134)Online publication date: 17-May-2023
    • (2023)Do names echo semantics? A large-scale study of identifiers used in C++’s named castsJournal of Systems and Software10.1016/j.jss.2023.111693202:COnline publication date: 1-Aug-2023
    • (2023)Comparing containerization-based approaches for reproducible computational modeling of environmental systemsEnvironmental Modelling & Software10.1016/j.envsoft.2023.105760167:COnline publication date: 1-Sep-2023
    • (2023)Software as storytellingComputer Science Review10.1016/j.cosrev.2022.10051747:COnline publication date: 1-Feb-2023
    • (2023)On Reproducible Implementations in Unsupervised Concept Drift Detection Algorithms ResearchArtificial Intelligence XL10.1007/978-3-031-47994-6_16(204-209)Online publication date: 12-Dec-2023
    • Show More Cited By

    View Options

    View options

    Get Access

    Login options

    Media

    Figures

    Other

    Tables

    Share

    Share

    Share this Publication link

    Share on social media