|
Unix Programming - Unix Interface Design Patterns - The Compiler Pattern
The Compiler Pattern
Compiler-like programs use neither standard output nor standard
input; they may issue error messages to standard error, however.
Instead, a compiler-like program takes file or resource names from
the command line, transforms the names of those resources in some
way, and emits output under the transformed names. Like cantrips,
compiler-like programs do not require user interaction after
startup time.
This pattern is so named because its paradigm is the
C compiler,
cc(1)
(or, under Linux and many other modern Unixes,
gcc(1)). But
it is also widely used for programs that do (for example) graphics
file conversions or compression/decompression.
A good example of the former is the
gif2png(1)
program used to convert GIF (Graphic Interchange Format) to PNG
(Portable Network
Graphics).[108] Good examples of the latter are
the
gzip(1)
and
gunzip(1)
GNU compression utilities, almost certainly shipped with your Unix
system.
In general, the compiler interface design pattern is a good
model when your program often needs to operate on multiple named
resources and can be written to have low interactivity (with its
control information supplied at startup time). Compiler-like
programs are readily scriptable.
The term “compiler-like interface” for this pattern
is well-understood in the Unix community.
[an error occurred while processing this directive]
|