Abstractions, their algorithms, and their compilers