- Also called executable specification languages.
- May sacrifice speed for generality (``slow is beautiful'').
- ``Very high level'' components include sets, tuples, maps, history.
- Abstraction: sets or constraints
- Selection: select appropriate VHLL, language constructs.
- Specialization: replace high-level constructs with implementations.
If human-guided, can provide good performance.
- Integration: functional (side-effect-free) languages simplify
- Cognitive distance: low if the problem fits the abstractions provided.