BY EXPLICITLY INDICATING WHICH ALGORITHMS THEY USE AND ENCAPSULATING THESE ALGORITHMS WITHIN SOFTWARE COMPONENTS, PROGRAMMERS MAKE IT POSSIBLE FOR AN ALGORITHM-AWARE COMPILER TO REPLACE THEIR ORIGINAL ALGORITHM IMPLEMENTATIONS WITH COMPATIBLE PARALLEL IMPLEMENTATIONS, OR WITH THE PARALLEL IMPLEMENTATIONS OF COMPATIBLE ALGORITHMS, USING THE SO-CALLED SPECIFICATION COMPATIBILITY GRAPH (SCG). ALONG WITH THE SCG, A SOFTWARE ENVIRONMENT IS INTRODUCED FOR PERFORMING ALGORITHM-AWARE COMPILATION.