Pipe-calculus: Difference between revisions

Line 5: Line 5:
=== Motivation and brief story ===
=== Motivation and brief story ===


Development of pipe-calculus stemmed from the author's conviction that syntax should be a first class element of programming languages the same way as formation rules are integral part of logical systems. A language that complies with this principle is able to recognize the syntax of input data without using a parser library. Pipe-calculus is a very minimal language with this property.
Development of pipe-calculus stemmed from the author's conviction that syntax should be a first class element of programming languages the same way as formation rules are integral part of logical systems. A language that complies with this principle is able to recognize the syntax of input data without using a parser library. Pipe-calculus is a very minimal language with this capability.


The first attempt to implement this idea resulted in a logical system which is referred to as ''well-typed parsing''. The author's interest in interpreters and process calculus led him to the realization that well-typed parsing can be translated to a calculus that uses combinators instead of introduction and elimination rules. Indeed the idea of the ''pipe'' combinator comes from shell scripting.  
The first attempt to implement this idea resulted in a logical system which is referred to as ''well-typed parsing''. The author's interest in process calculus led him to the realization that well-typed parsing can be translated to a calculus that uses combinators and rewriting rules instead of inference rules.
 
=== Connection to other fields ===
 
Pipe-calculus is inspired by logical programming, substructural logic, process calculus, formal grammars, automata theory, type theory (up to the lambda-cube) and the study of algebraic effects. Its early version was considered a process calculus. However it has since diverged in subtle details, it is still very close to process calculi and its presentation style maintains that heritage.
 
On the practical side pipe-calculus is motivated by shell programming and streams. Indeed the idea of the ''pipe'' combinator comes from shell scripting.


=== Variants ===
=== Variants ===
283

edits