Corbi ABurgos DPérez A(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
Lellmann BMarek PTriska M(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
Meessen PAndrade FGrabmair M(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
OOPSLA '09: Proceedings of the 24th ACM SIGPLAN conference companion on Object oriented programming systems languages and applications
In this paper we describe Ginger, a new language with first class support for literate programming. Literate programming is a philosophy that argues computer programs should be written as literature with human readability and understanding of paramount ...
SAICSIT '04: Proceedings of the 2004 annual research conference of the South African institute of computer scientists and information technologists on IT research in developing countries
In this paper we discuss the characteristics of Literate Programming and the development of programming environments to support Literate Programming in the past two decades. We argue that recent technological developments allow Literate Programming to be ...
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
Corbi ABurgos DPérez A(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
Lellmann BMarek PTriska M(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
Meessen PAndrade FGrabmair M(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
Liu ELukes DGriswold W(2023)Refactoring in Computational NotebooksACM Transactions on Software Engineering and Methodology10.1145/357603632:3(1-24)Online publication date: 26-Apr-2023
Li CMassachi TEschler JHuang J(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
Reimann LKniesel-Wünsche GBavota GHao D(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
Petrescu CSmith SGiavrimis RDash S(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