Example: make
Dependences between parts of a larger program are described declaratively
- Technically, it needn’t be a program, of course
Actions to take when a simple temporal relation holds between two dependent parts are described imperatively
- The description of these actions is outside the scope of make itself
Domain details like file modification time and file suffixes are handled easily