Pipe and Filter

Learned in SE464.

An architectural style where data flows through a series of processing steps (filters) connected by pipes.

  • Filters do not share state with other filters
  • Filters do not know the identity of their upstream or downstream filters

Examples

  • Unix shell scripts: processes are connected via pipes:
    cat file | grep Erroll | wc -l
    
  • Compilers that do things in stages (lex → parse → typecheck → codegen → optimize)