Programming pearls: a literate program

@article{Bentley1986ProgrammingPA,
  title={Programming pearls: a literate program},
  author={Jon Louis Bentley},
  journal={Commun. ACM},
  year={1986},
  volume={29},
  pages={471-483}
}
  • J. Bentley
  • Published 1 June 1986
  • Linguistics
  • Commun. ACM
Common Words Section Introduction.. . . . . , . . . . . . . , , . . . . . , . , . . . . . , , . . 1 Strategic considerations . . . . . . . . . . . . . . . . . . . . . . , a Basic input routines . . . . , , . . . . . . . . . . . . . . . . . . . . 9 Dictionary lookup . , . . . . . . . . . . . . . . . . . , . . . . . . , .17 The frequency counts . . . . . . . . . . . . . . . . . . . . . . . .32 Sortingatrie . . . . . . . . . . . . . . . . . . . . . . . . . . . . . ...36 Theendgame… 

Figures from this paper

A Literate Programming Pearl in cP Systems
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
Most Common Words - A cP Systems Solution
  • R. Nicolescu
  • Computer Science
    Int. Conf. on Membrane Computing
  • 2017
TLDR
A concise efficient solution based on the fast parallel and associative capabilities of cP systems is proposed and a dynamic version of the classical pigeonhole algorithm is proposed.
Bringing Arbitrary Compute to Authoritative Data
TLDR
’big data’ refers to a corpus of data large enough to benefit significantly from parallel computation across a fleet of systems, where the efficient orchestration of the computation is itself a considerable challenge.
Automatic synthesis of parallel unix commands and pipelines with KumQuat
TLDR
KumQuat automatically synthesizes the combine operators, with a domain-specific combiner language acting as a strong regularizer that promotes efficient inference of correct combiners and enables the effective parallelization of the authors' benchmark scripts.
Terminals All the Way Down
TLDR
This work proposes using inter-connected windowed terminal emulators as the foundation for a new type of distributed and language-agnostic development environment that aims at complementing existing visual tools and leveraging the large body of existing command-line and terminal-based development tools.
An order-aware dataflow model for parallel Unix pipelines
TLDR
A dataflow model for modelling parallel Unix shell pipelines is presented, and the semantics of transformations that exploit data parallelism available in Unix shell computations are captured and proved to be correctness.
POPL: G: Data-Parallel Shell Scripting
TLDR
PaSh is a new shell that exposes data parallelism in POSIX shell scripts and proposes an order-aware dataflow model that captures a fragment of the shell, a set of dataflow transformations that extract parallelism and have been proven to be correct, and a just-in-time compilation framework that allows for effective compilation despite the dynamic nature of theshell.
PaSh: light-touch data-parallel shell processing
TLDR
PaSh is presented, a system for parallelizing POSIX shell scripts that adds POSIX constructs to explicitly guide parallelism coupled with PaSh-provided Unix-aware runtime primitives for addressing performance- and correctness-related issues.
The Once and Future Shell
TLDR
Improving the UNIX shell holds much promise for development, ops, and data processing; several avenues of research building on recent advances are outlined.
Unix shell programming: the next 50 years
TLDR
This paper aims to help manage the shell's essential shortcomings (dynamism, power, and abstruseness) and address its inessential ones.
...
1
2
3
4
5
...

References

Biomedical Computing) SIGGRAPH Computer Graphics (Computer Graphics) SIGIR Forum (Information Retrieval) SIGCAPH Newsletter (Computers and the Physically Handicapped) Print Edition SIGCAPH Newsletter
  • NEWS (Automata and Computability Theory) SIGCOMM Computer Communication Review (Data Communication) SlGAda Letters (Ada) SIGCPR NewsletterArtificial Intelligence) SIGDA Newsletter (Design Automation) SIGBDP DATABASE (Business Data Processing) SIGDOC Asterisk (Systems Documentation) SIGBIO Newsletter