Initial Algebra Semantics and Continuous Algebras
Journal of the ACM (JACM)
Communications of the ACM
The next 700 programming languages
Communications of the ACM
Software Tools
A semantic model of types for applicative languages
LFP '82 Proceedings of the 1982 ACM symposium on LISP and functional programming
HOPE: An experimental applicative language
LFP '80 Proceedings of the 1980 ACM conference on LISP and functional programming
Transformations of FP program schemes
FPCA '81 Proceedings of the 1981 conference on Functional programming languages and computer architecture
Hierarchical semantics, reasoning, and translation
Hierarchical semantics, reasoning, and translation
The SNOBOL 4 programming language
The SNOBOL 4 programming language
Hi-index | 0.00 |
One of the best features of the standard UNIX shell is the use of pipes to compose programs. A C language derivative is used for more complex program combinations involving looping or branching. This paper presents an alternative shell language based on natural extensions of the pipe concept. “Structured data streams” are introduced as a means of expressing potentially concurrent processing, and “labelled data streams” serve to route data to one of a pool of programs. These complex data streams are hooked together with functional operators much as simple data streams are hooked together with pipes. A generalized notion of “powers” provides for repetition of programs and also for systems that take an arbitrary number of input streams. This provides a uniform way of building complex tools from simple ones, as advocated by Kernighan and Plauger [8]. A major advantage of this new shell language is its program algebra, which facilitates system verification and analysis.